arousseau Posted September 9, 2016 Share Posted September 9, 2016 Bonjour à tous, Pour le compte d'un client, je dois reprendre un "module" (ce n'est pas réellement conçu comme un module mais plutôt un ensemble de fichiers dans l'arbo de Prestashop) développé sous Prestashop 1.5 et l'adapter sur un nouveau site (en Presta 1.6.1.4). Le module appel un fichier .tpl qui contient en fin de fichier : <script> $cfg.setLayoutCallback({Configure::step_product}, $cfg.initStepProduct); </script> La fonction est contenu dans un fichier configurateur.js qui lui est bien chargé. Or cette fonction ne semble pas s'exécuter au chargement du fichier tpl. J'ai essayé de placer un alert() juste au dessus de la fonction mais il ne se passe rien. Comme vu sur d'autres forums j'ai tenté d'entourer le tout avec des {literal}{/literal} mais rien à faire, ni l'alert ni la fonction ne s’exécute. Je bloque totalement sur la question, est ce que l'un de vous aurez une idée qui pourrais expliquer que cette fonction ne se charge pas ? Merci d'avance à tous Link to comment Share on other sites More sharing options...
Christophe Boix Posted September 13, 2016 Share Posted September 13, 2016 Bonjour, -essaye avec <script type="text/javascript"> -essaye de faire un simple texte "TEST" juste au dessus de <script , car si l'alerte ne fonctionne pas, et si tu ne vois pas le mot "TEST", c'est que ton fichier TPL est planté et non compilé par prestashop.-as-tu affiché les erreurs smarty dans define.inc.php ? Si tjrs bugué, puis-je voir l'url du site stp (en privé) ? Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 14, 2016 Share Posted September 14, 2016 Bonjour Pour Christophe Boix, le typage est optionnel en html5 et pour être plus précis, est optionnel depuis html4 et netscape 2 (pour ceux qui ont connu). Pour arousseau : le configure, est normalement destiné à générer un code php pour action ou réaction via js, en tout cas, c'est une config de callback une fois la page chargée. donc ce code entre {} devrait me semble t-il être géénré dans un controlleur... Il te dit quoi le controlleur ? As tu fais un code source de la page pour voir ce qui est généré et as tu ouvert l'observateur d'événements de ton navigateur préféré pour voir les éventuelles erreurs javascript ? Link to comment Share on other sites More sharing options...
arousseau Posted September 15, 2016 Author Share Posted September 15, 2016 Bonjour, Merci pour vos réponse. Pour Christophe Boix, j'ai testé en ajoutant le TEST au dessus et il s'affiche bien dans ma fenêtre. J'avais activé les erreurs smarty mais rien ne s'affiche en erreur. Pour Arnaud_69, effectivement le code est généré via des override. J'ai deux fichiers en override Configure.php et ConfigureController.php. Au niveau du code source c'est là ou ça devient très bizarre, c'est que la balise <script> n'apparait pas du tout dans le code source, comme si elle était supprimer par Prestashop. Au niveau de l'observateur d'évènement je n'ai aucune erreur Javascript (assez logique finalement puisque je n'ai pas du tout de code js). Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 15, 2016 Share Posted September 15, 2016 Alors s'il n'apparait pas : - soit il est imbriqué dans une condition qui n'est pas (ou jamais) remplie, chercher un {if ...} plus haut - soit c'est un cache d'une version antérieure qui s'affiche (mais j'ai un doute...) - soit ton script est déporté vachement plus bas dans la page et tu n'as trouvé le code correspondant. Bref, ce que je t'invite à éventuellement faire, tu changes ton bout de script par : <script> var toto='tata'; $(document).ready(function() { alert(toto); }); //$cfg.setLayoutCallback({Configure::step_product}, $cfg.initStepProduct); </script> Tu nettoies ton cache(vidage cache serveur), tu fais un CTRL+F5 pour forcer le rechargement de la page (vidage cache navigateur). Si tu n'as pas le alerte de tata, alors tu enlèves le ";" après tata, même manip de rechargement, et tu recharges ta page avec observateur d'événements. Tu devrais avoir une erreur JS. Si tu n'as pas d'erreur, c'est la confirmation que ton code n'est pas appelé, donc un if qui traîne en amont. A te lire ! 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