Jump to content

Impossible d'assigner variable à smarty


Recommended Posts

Bonjour,


Je suis sous prestashop 1.6

J'ai un fichier PHP où j'ai assigné une URL à une variable $newUrl

J'ai ensuite voulu assigner cette variable à  Smarty de cette façon

$this->context->smarty->assign('newUrl', $newUrl);

J'ai également ajouté cette ligne : 


 return $this->module->display($this->file, 'displayPayment.tpl');

 

Dans mon fichier tpl, j'ai ajouté un {debug}, mais je ne trouve pas ma variable dans le debug, du coup impossible de l'appeler.

Quelqu'un pourrait m'aider s'il vous plait ? 

 

Share this post


Link to post
Share on other sites

Bonjour !

Commençons par le commencement, as-tu vidé ton cache smarty ?

Ensuite il n'y a pas beaucoup de visibilité sur ton code, ou as-tu appliqué ton smarty->assign() un controller custom ou un existant ?

Share this post


Link to post
Share on other sites

Merci pour ta réponse,

Je n'avais pas vidé le cache, je viens de le faire mais ca n'a pas résolu le problème

C'est un controller custom si je me trompe pas ( vraiment désolé, je débute,  c'est le premier module que je fais et mes notions en programmation sont un peu approximatives .... )

 

Je suis en train de créer un payment gateway, je dois appeler  une API en lui envoyant mon panier , et l'API me renvoi un lien. 

J'ai donc créer un controller "displayPayment.php" où je fais mes appels, ca me retourne alors une URL que j'ai assigné à $newUrl

Mais impossible d'assigner cette variable à Smarty, en tout cas je pense que c'est ça le problème.

 

Le fichier displayPayment.php se trouve dans le dossier /monMondule/controllers/hook/displayPayment.php
Le fichier displayPayment.tpl se trouve dans le dossier /monModule/views/templates/hook/displayPayment.tpl

 

 

 

 

 

Share this post


Link to post
Share on other sites

as-tu déjà tenté de voir si ton template était bien appelé ? Je veux dire par là est-ce-que tu as ton controller qui s'active bien lors de l'appel du hook sur lequel tu l'as assigné ?

Est-ce-que tu as fait un simple die() dans ton controller pour voir si il s'exécutais bien en général ? Si ton controller ne s'exécute pas tu ne pourras dans tous les cas pas voir tes envois.

Share this post


Link to post
Share on other sites

Bon, la c'est le moment où je suis perdu 😭

Effectivement, je ne suis pas sûr que mon controller s'active bien

Comment puis-je faire mon die() ? Est ce que je dois créer une condition et si rien ne se passe -> die() ? 

J'ai essayé googler, mais je pense que j'aurai ma réponse plus rapidement si je te le demande 

 

Share this post


Link to post
Share on other sites

Alors tout simplement je te propose de mettre ton die() au debut de ton controller sans condition préalable.

Si ton controller est bien appelé tu ne verra que les echo/var_dump présent avant ton die() sinon ben ton controller n'est même pas appelé et il faudra faire en sorte qu'il soit appelé sur le hook que tu souhaite.

Je vois bien que tu as l'air un peu perdu et tu ne trouvera que peu d'info sur comment construire un module proprement donc je te recommande la doc officiel qui vaut ce qu'elle vaut mais c'est toujours ça : 
https://devdocs.prestashop.com/1.7/modules/ c'est du 1.7 par contre attention tout ne marchera pas en 1.6

Sinon la meilleure école reste de prendre des modules existants et de les décortiquer pour comprendre leur fonctionnement voici un petit kdo :

https://validator.prestashop.com/generator

Cet outil te permet de générer un "squelette" de module selon le type de module que tu veux développer. Crée toi un "payment module" et décortique son fonctionnement, dans mes souvenirs le code est plutôt bien commenté.

Je te souhaite bonne chance !

Share this post


Link to post
Share on other sites

Posted (edited)

Merci pour ta réponse !

J'avais commencé mon module avec le validator et en regardant la doc de Prestashop. Mais je me suis quand même retrouvé perdu 😆

Alors si j'ai bien fais mon die(), effectivement mon controller n'est pas bien activé... 

En tout cas, c'est cool, je peux arrêter de chercher pourquoi les variables ne s'assignent pas 😅

Maintenant, pourquoi mon controller ne s'active pas ?

Je vais faire des recherches mais si tu as une idée, je suis preneur 

edit: est ce que je peux laisser mon controller dans le dossier /hook/ ? Ne devrais-je pas le mettre dans le /front/ ? 

Edited by Falcaol (see edit history)

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