Hilz Posted July 27, 2011 Share Posted July 27, 2011 Bonjour, J'ai installé récemment un module développé par une personne tierce. J'ai un problème car le CSS a été lié un peu à "la barbare". De cette façon, directement dans le fichier tpl : - <link rel="stylesheet" type="text/css" href="{$css_dir}modules/moduleX/moduleX.css" /> D'où ma question : comment lier proprement un module à une feuille de style ? Merci d'avance ! Link to comment Share on other sites More sharing options...
xavier31 Posted July 27, 2011 Share Posted July 27, 2011 Bonjour, J'ai installé récemment un module développé par une personne tierce. J'ai un problème car le CSS a été lié un peu à "la barbare". De cette façon, directement dans le fichier tpl : - <link rel="stylesheet" type="text/css" href="{$css_dir}modules/moduleX/moduleX.css" /> D'où ma question : comment lier proprement un module à une feuille de style ? Merci d'avance ! public function hookHeader($params) { Tools::addCSS(($this->_path).'moduleX.css', 'all'); } Ce code placé dans le module, mais il faut prévoir dans la fonction install du module public function install() { if (!parent::install()) return false; if (!$this->registerHook('header')) return false; return true; } Link to comment Share on other sites More sharing options...
Hilz Posted July 27, 2011 Author Share Posted July 27, 2011 Bonjour, Merci pour votre réponse. J'ai bien ajouté le code que vous m'indiquiez : function hookHome($params) { Tools::addCSS(($this->_path).'moduleX.css', 'all'); global $smarty; return $this->display(__FILE__, 'moduleX.tpl'); } Cependant, cela n'ajoute pas la directive d'ajout du CSS dans le head d'index.php Qu'ai-je loupé ? PS : ma fonction install ressemble trait pour trait à la vôtre. 1 Link to comment Share on other sites More sharing options...
xavier31 Posted July 27, 2011 Share Posted July 27, 2011 Bonjour, Merci pour votre réponse. J'ai bien ajouté le code que vous m'indiquiez : function hookHome($params) { Tools::addCSS(($this->_path).'moduleX.css', 'all'); global $smarty; return $this->display(__FILE__, 'moduleX.tpl'); } Cependant, cela n'ajoute pas la directive d'ajout du CSS dans le head d'index.php Qu'ai-je loupé ? PS : ma fonction install ressemble trait pour trait à la vôtre. hookHome ne correspond pas à hookHeader. Link to comment Share on other sites More sharing options...
Hilz Posted July 27, 2011 Author Share Posted July 27, 2011 Pour ceux que cela intéresse : Voici les étapes à suivre : Il fallait insérer le code dans la directive hookHeader et non HookHome Après, il est nécessaire de "greffer" le module dans header_of_pages Par contre, comment le gréfer uniquement au header de la page d'accueil ? (sans avoir à exclure toutes les autres ? Link to comment Share on other sites More sharing options...
Broceliande Posted July 27, 2011 Share Posted July 27, 2011 Pour ceux que cela intéresse : Voici les étapes à suivre : Il fallait insérer le code dans la directive hookHeader et non HookHome Après, il est nécessaire de "greffer" le module dans header_of_pages Par contre, comment le gréfer uniquement au header de la page d'accueil ? (sans avoir à exclure toutes les autres ? C'est sympa mais tu peux nous relire la réponse de xavier ci dessus genre autour de http://www.prestashop.com/forums/topic/121434-lier-css-et-module/page__view__findpost__p__596096 ... Pour autant que je sache la réponse , il te la donnait Alors un ptit merci à xavier ça coulerait sous le sens hein 1 Link to comment Share on other sites More sharing options...
Hilz Posted July 28, 2011 Author Share Posted July 28, 2011 C'est sympa mais tu peux nous relire la réponse de xavier ci dessus genre autour de http://www.prestashop.com/forums/topic/121434-lier-css-et-module/page__view__findpost__p__596096 ... Pour autant que je sache la réponse , il te la donnait Alors un ptit merci à xavier ça coulerait sous le sens hein Bien-entendu, c'est très gentil de sa part et je l'en remercie. Cependant, il manquait tout de même la partie Greffe et, à ce que je sache, cela reste capital pour que cette manipulation marche. Pour finir : beaucoup de personnes ouvrent des "sujets" sans jamais poster la solution qu'ils ont, plus ou moins, eux-même trouvés. Enfin... bref. Il me reste tout de même ma question précédente. Si une âme charitable (que je remercierai) pourrait m'aider : - comment greffer un HookHeader uniquement au header de la page d'accueil ? (sans avoir à exclure toutes les autres pages ?) Merci d'avance, Hilz ! PS : Ah oué, il y avait un "Merci d'avance" aussi PS1 : Le ton de l'ironie hein, pas se méprendre Link to comment Share on other sites More sharing options...
xavier31 Posted July 29, 2011 Share Posted July 29, 2011 C'est sympa mais tu peux nous relire la réponse de xavier ci dessus genre autour de http://www.prestashop.com/forums/topic/121434-lier-css-et-module/page__view__findpost__p__596096 ... Pour autant que je sache la réponse , il te la donnait Alors un ptit merci à xavier ça coulerait sous le sens hein Bien-entendu, c'est très gentil de sa part et je l'en remercie. Cependant, il manquait tout de même la partie Greffe et, à ce que je sache, cela reste capital pour que cette manipulation marche. Pour finir : beaucoup de personnes ouvrent des "sujets" sans jamais poster la solution qu'ils ont, plus ou moins, eux-même trouvés. Enfin... bref. Il me reste tout de même ma question précédente. Si une âme charitable (que je remercierai) pourrait m'aider : - comment greffer un HookHeader uniquement au header de la page d'accueil ? (sans avoir à exclure toutes les autres pages ?) Merci d'avance, Hilz ! PS : Ah oué, il y avait un "Merci d'avance" aussi PS1 : Le ton de l'ironie hein, pas se méprendre Salut, En effet, je n'ai pas précisé pour le greffer dans l'admin parce qu'il me semble que celui-ci se greffe automatiquement justement avec le $this->registerHook('header') :-) As-tu fait réinitialiser ton module ou mieux désinstaller / réinstaller. PS : attention cela supprime tout les paramètres de ton module. Pour faire que ton css s'affiche uniquement dans ton hookheader de ta homepage il faut que dans ton fichier .tpl de ton module tu fasse un petit test comme celui-ci: {if $page_name == "index"} <style type="text/css" media="all"> @import url( /modules/nommodule/moduleX.css); </style> {/if} Mais dans ce cas il faudrait supprimer le Tools::addCSS(($this->_path).'moduleX.css', 'all'); de ton module dans le hookheader. a+ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now