dadidee Posted January 19, 2015 Share Posted January 19, 2015 (edited) Bonjour tous, Je souhaiterais modifier la présentation de product-list.tpl via l'appel d'un plugin JQuery mais j'ignore où et comment appeler le Js dans les templates sources. Pour prendre en main Prestashop (je suis en 1.6), j'ai commencé par créer un module qui ne me pose aucun souci et fonctionne tout bien comme je veux. Ô Joie, poney et confettis. Là où je coince, c'est sur le fichier product-list.tpl (qui n'a pas de lien avec mon module). J'y ai apporté quelques modifs pour y mettre mon Js/Jquery, mais j'ai beau placer mon <script> soit directement dans product-list.tpl, soit directement dans header.tpl juste après {$HOOK_HEADER}, avec le chemin validé de phpStorm (le chemin que je tape correspond bien au rangement de mes fichiers). Parce que en fait le seul endroit où mon Js est appelé et donc fait sa tâche, c'est lorsque que je le rajoute à ma fonction hookDisplayHeader de mon module (ou de n'importe quel module greffer dans le hook header - tested) et en le rajoutant au dossier js du module. J'en conclus donc que mes modifs fonctionnent, et que le problème se situe sur le chemin d'appel de mon fichier Js. Je n'ai pas vu de topic similaire à ma question, j'aimerais en fait savoir où exactement placer mon <script Js> et où ranger ledit fichier dans l'arborescence de Presta ? Alors oui, j'ai l'option garder le module qui contient mon fichier Js en ne le greffant qu'au hook header, mon bon ... niveau rangement pour la suite c'est pas top :/ +1 karma à ceux qui répondent - recommandé by Earl Merci d'avance, paix et arc en ciel sur vous Edited January 19, 2015 by dadidee (see edit history) Link to comment Share on other sites More sharing options...
Alexandre Carette Posted January 21, 2015 Share Posted January 21, 2015 si tu modifie ton header.tpl, en y ajoutant dans tes balises <head></head> avec une condition, {if $page_name == category}<script type="text/javascript" src="http://www.monsite.com/monscript.js"></script>{/if} , ca donne quoi ? Link to comment Share on other sites More sharing options...
dadidee Posted January 21, 2015 Author Share Posted January 21, 2015 Toi, t'es un magicien toi ... Alors que j'étais en train de remonter la piste vers le FrontController et la classe Media pour voir si un override de tout ça allait améliorer la situation (ou comment chasser les mouches avec bazooka) ; t'arrive et en une ligne de code c'est reglé. Merci beaucoup monsieur. Pourrais-tu m'expliquer pourquoi mon script est correctement appelé lorsque je fais ta méthode (avec ou sans le if) en passant par l'url ? Prestashop n'accepte pas les liens directs de l'arbo dans son head ? Actuellement je suis en local, existe-il un raccourci path qui remplacerait le début d'adresse ? Merci merci ! 1 Link to comment Share on other sites More sharing options...
Alexandre Carette Posted January 21, 2015 Share Posted January 21, 2015 (edited) pour du css:<link rel="stylesheet" type="text/css" href="{$css_dir}mon-css.css" />pour du js:<script src="{$js_dir}mon-js.js"></script>Si veux faire les choses bien, crée un module qui va te faire l'affichage dans le header, ca permettra aussi la concatenation du script et css (PS 1.6): public function hookDisplayHeader() { global $cookie; if ($this->page_name == 'category') { $this->context->controller->addCSS($this->_path.'css/mon-css.css', 'all'); $this->context->controller->addJS($this->_path.'js/mon-js.js'); } } Edited January 21, 2015 by Alexandre-KM (see edit history) Link to comment Share on other sites More sharing options...
dadidee Posted January 21, 2015 Author Share Posted January 21, 2015 Merci pour ces infos, elles vont bien m'être utiles. Comme je me suis déjà amusée à créer un module, là je voulais garder l'arborescence de Presta et apporter mes modifications directement sur les fichiers de mon thème en ajoutant qql lignes de code dans le product-list.css et un Js dans son template, afin de ne modifier que l'affichage des produits mais en gardant le même fonctionnement natif du fichier. Et je crains que créer un module juste pour le greffer au head, fasse prendre le risque de se retrouver avec un module degreffé (les erreurs arrivent) et un bug inutile. Après si cela optimise le site et améliore son temps de chargement, je fais ! 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