Jump to content

Inclure une variable PHP dans un fichier TPL d'un module


Recommended Posts

Bonjour,

 

J'essaie depuis ce matin, en vain de faire passer une variable que j'ai défini en PHP dans un fichier TPL d'un module. Je suis sous Prestashop 1.6

 

Mon fichier PHP (toto.php) :

global $smarty;

$html = '';
$valeur = 1000;
$html .= '<li>5</li>';
$this->context->smarty->assign('html',$html);

return $this->display(__FILE__, 'template_5.tpl');

Mon fichier TPL (template_5.tpl) :

</div>
	{for $foo=1 to 3}
   		<li>{$foo}</li>
	{/for}
	{$html}
</div>

Mais dans mon résultat final, j'obtiens la chose suivante :

<div>
  <li>1</li>
  <li>2</li>
  <li>3</li>
</div>

Mes deux fichiers sont tous les deux placés dans le même dossier modules/MonModule/views/templates/admin

Est-ce là mon erreur ?

J'ai tenté de mettre mon fichier PHP à la base de mon module dans modules/MonModule , mais ça ne fonctionne pas mieux.

 

Si vous pouviez m'aider à comprendre mon erreur et pourquoi mon <li>5</li> ne s'affiche pas, je vous serai mille fois reconnaissant :)

Edited by Majimo (see edit history)
Link to comment
Share on other sites

Eh bien c'est justement là que je me demande si je ne fais pas une erreur.

Je pensais qu'il était appelé par le code smarty {$html}, mais je n'obtiens pas mon $html de mon fichier PHP assigné par mon $this->context->smarty->assign('html',$html);

Faut-il appeler le fichier PHP dans mon TPL pour l'utiliser ? Ce n'est pas déjà le cas grâce au return $this->display(__FILE__, 'template_5.tpl'); de mon fichier PHP ?

 

J'avoue être un peu perdu avec ce système de TPL

Link to comment
Share on other sites

il serait peut être bon de regarder comment fonctionne les autres modules pour comprendre le bon fonctionnement, après vous avez la doc officielle pour vous aider.

Oui, j'ai cherché ma réponse dans la doc officielle. Mais il propose le cas pour un module en Front, alors que je veux influencer sur la partie Admin de mon module.

Mais je vais jeter un oeil à la structure des autres modules. J'y trouverai peut être ma réponse...

Link to comment
Share on other sites

Up !

S'il vous plaît, j'ai vraiment besoin que l'on m'oriente un peu sur mon souci... :/

Est-ce que cette manip de "smarty->assign" n'est disponible que pour les modules Front et pas les modules Admin ?
Est-ce qu'il faut mettre le fichier Php dans un controller ?

Link to comment
Share on other sites

Je pars d'un module qui a déjà été monté au niveau de mon agence. (Je suis en stage au sein d'une entreprise et on m'a mis dessus sans que je connaisse tout au départ, j'apprends donc sur le tas)

 

Mais j'ai ma solution.

En fait, la façon de déclarer était bonne, c'est juste que je déclarai pas dans le bon fichier Php. Il faut déclarer les variables dans le Php principal du module.
Voilà voilà :)

Merci pour l'aide en tous cas :):)

Link to comment
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
×
×
  • Create New...