mbar Posted March 15, 2016 Share Posted March 15, 2016 Bonjour, je suis novice sur Prestashop, j'ai encore un peu de mal à réaliser exactement ce que je veux. J'ai créé un module qui me permet d'afficher sur une page que j'ai créé un formulaire. J'ai donc créé le controller de ma page, le template, j'ai activé l'url etc... ça pas de problème. Pour la mise en page, de cette fameuse page, je veux linker mon fichier CSS. J'ai donc ajouté à mon module dans la fonction install() $this->registerHook('header') et créé la fonction public function hookDisplayHeader() { $this->context->controller->addCSS($this->_path.'views/css/display.css', 'all'); } Problème, le fichier CSS est link sur toutes les pages du site. Comment pourrais je faire pour qu'il ne soit link que sur la page que j'ai créé ? Merci Crdlt Link to comment Share on other sites More sharing options...
mbar Posted March 15, 2016 Author Share Posted March 15, 2016 (edited) Il s'agit d'un petit fichier CSS. Mais c'était + par sécurité, pour être sur que je ne créé pas une class css qui existe déjà, et donc modifier le style d'un truc que je ne voulais pas. Merci pour le lien Edited March 15, 2016 by mbar (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted March 15, 2016 Share Posted March 15, 2016 mais je comprends pas Si tu as créé un controller, rien à voir avec le hook d'un module Dans ton controller setMedia() pour injecter le css, juste quand ce controller se lance Link to comment Share on other sites More sharing options...
mbar Posted March 15, 2016 Author Share Posted March 15, 2016 mais je comprends pas Si tu as créé un controller, rien à voir avec le hook d'un module Dans ton controller setMedia() pour injecter le css, juste quand ce controller se lance Tu as tout à fait compris, c'est juste que je débute, j'ai pas encore toutes les connaissances. Merci ça m'a l'air tout à fait ce que je cherchais public function setMedia() { parent::setMedia() Tools::addCSS(_PS_MODULE_DIR_ .'monmodule/page.css'); } On l'utilise comme ça ? Link to comment Share on other sites More sharing options...
doekia Posted March 15, 2016 Share Posted March 15, 2016 Tools::addCss() est deprecated $this->addCss() devrait faire l'affaire. Link to comment Share on other sites More sharing options...
mbar Posted March 16, 2016 Author Share Posted March 16, 2016 public function setMedia() { parent::setMedia(); /* $this->context->controller->addCSS($this->_path.'views/css/display.css'); */ $this->addCSS('view/css/display.css'); } Dans mon controller j'ai rajouté ça. ça ne marche pas... $this->addCSS ne s'utilise pas comme ça ? J'ai essayé plein de path différent rien n'y fait. Dois-je appeler setMedia dans la fonction initContent de mon controller ? ou autre part dans le controller ? Link to comment Share on other sites More sharing options...
doekia Posted March 16, 2016 Share Posted March 16, 2016 (edited) Juste pour être sûr, tu es bien dans un fichier modules/mymodule/controllers/front/XXXXController.php qui a cette tête en gros class XXXXXXXController extends ModuleFrontController { /// Something public function setMedia() { parent::setMedia(); $this->addCSS(__PS_BASE_URI__.'modules/'.$this->module->name.'/mycss.css'); // ^^ -> modules/mymodule/mycss.css override themes/yyy/css/modules/mymodule/mycss.css } //Something } J'écris un rien de tête donc fais pas un copier coller de ça Edité pour corriger justement une typo Edited March 17, 2016 by doekia (see edit history) Link to comment Share on other sites More sharing options...
mbar Posted March 17, 2016 Author Share Posted March 17, 2016 modules/myform/controllers/front/display.php display.php <?php class myformdisplayModuleFrontController extends ModuleFrontController { public function initContent() { parent::initContent(); $this->setTemplate('display.tpl'); } public function postProcess() { if (Tools::isSubmit('submit')) { if (Tools::getValue('1') == 'maison') $this->context->smarty->assign(array('test' => 'maison')); else if (Tools::getValue('1') == 'appartement') $this->context->smarty->assign(array('test' => 'appartement')); else header('Location: index.php'); } } public function setMedia() { parent::setMedia(); $this->addCSS('modules/myform/view/css/display.css', 'all'); } } ?> le css est dans modules/myform/views/css/display.css Link to comment Share on other sites More sharing options...
doekia Posted March 17, 2016 Share Posted March 17, 2016 Ta question c'est quel chemin mettre dans addCSS, je te dis de mettre $this->addCSS(__PS_BASE_URI__. ... et tu réponds en mettant $this->addCSS( ... Ben il en manque un bout, regarde ligne 1301 de classes/controller/FrontController.php Link to comment Share on other sites More sharing options...
mbar Posted March 17, 2016 Author Share Posted March 17, 2016 (edited) J'ai copié mon fichier ici, avant d'essayer ce que tu m'as dit, ça va je suis pas abruti. Et ça ne marche pas de toute façon. Je débute sur Prestashop, pas besoin d'être aussi hautain. Je suis développeur, je suis pas un gamin de 12ans. J'ai pas l'habitude de crier au secours comme ça, mais je ne trouve aucune doc officiel sur Prestashop, donc comment connaître les Class et les méthodes qui existent... J'en ai aucune idée, comment connaître leur prototype aucune idée non plus. Donc je viens ici pour apprendre des autres, pas pour me faire traiter de "abruti tu fais pas ce que je te dis". Bref, sinon je bosse avec prestashop 1.6, on sait jamais. C'est bon merci, maintenant je sais où aller voir pour avoir le prototype des méthodes. Merci Edited March 17, 2016 by mbar (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted March 17, 2016 Share Posted March 17, 2016 hautain ... ?!? ça ne marche pas de toute façon ??!!?? Quand à lire ce que j'écris tu y mets le ton que tu veux, mais ce n'est pas le ton avec lequel je l'écris. Si je remets en gros et gras et que je répète c'est pour être sûr que ce ne soit pas justement un lecture un peu rapide qui t'amène à misérer pour une inattention. la doc officielle technique c'est lire le code avec PrestaShop, c'est pas ma faute quand même 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