Jump to content

script qui ne s'execute pas dans un tpl


 Share

Recommended Posts

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

Share this post


Link to post
Share on other sites

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é) ?

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More