Thierryh Posted December 28, 2010 Share Posted December 28, 2010 BonjourDans un module que je suis en train de personnalisé, j'ai un fichier TPL qui fait un INCLUDE d'un autre fichier TPL.Problème : Lors de l'affichage de la page, tout est bien affiché... excepté que le contenu du 2eme TPL n'est pas présent à l'écran, ni dans le code HTML de la page. C'est comme si l'instruction include ne marchait pas.Le 1er fichier TPL est le suivant : Debut {include file=deux.tpl} Fin Le contenu du 2eme TPL (deux.tpl) est le suivant: milieu Le résultat à l'écran devrait être Debut Milieu Fin tandis que malheureusement je n'ai que Debut Fin Cependant j'ai noté que si le fichier DEUX.TPL est dans le dossier des thèmes et que l'instruction INCLUDE est {include file=$tpl_dir./deux.tpl} au lieu de {include file=deux.tpl} alors le résultat attendu est bon (c'est à dire que les 3 lignes Debut, Milieu et Fin sont affichés).Savez-vous ce qui cloche dans mon code ?Pour information, les 2 fichiers TPL sont dans le dossier /modules/monmodule/ (avec bien entendu le code PHP requis, monmodule.php).MerciThierry Link to comment Share on other sites More sharing options...
DevNet Posted December 28, 2010 Share Posted December 28, 2010 Bonjour, Debut {include file=./modules/monmodule/deux.tpl} Fin Ça ne marche pas ? Link to comment Share on other sites More sharing options...
Thierryh Posted December 29, 2010 Author Share Posted December 29, 2010 Bonjour et merci pour votre suggestion.Malheureusement, cela ne marche toujours pas.J'ai aussi utilisé les syntaxes suivantes (avec guillemet simple et double, chemin complet avec ou sans le point devant...) et le problème est toujours présent . {include file='./modules/monmodule/deux.tpl'} {include file="./modules/monmodule/deux.tpl"} {include file=./modules/monmodule/deux.tpl} {include file=deux.tpl} {include file="deux.tpl"} {include file='deux.tpl'} {include file=/modules/monmodule/deux.tpl} {include file='/modules/monmodule/deux.tpl'} {include file="/modules/monmodule/deux.tpl"} MerciThierry Link to comment Share on other sites More sharing options...
DevNet Posted December 29, 2010 Share Posted December 29, 2010 Bonjour,Essayez de passer dans smarty la variable suivante juste avant le $this->display() : $smarty->assign('path_deux', _PS_MODULE_DIR_.'monmodule/deux.tpl'); ensuite dans votre tpl : {include file=$path_deux} Bonne continuation Link to comment Share on other sites More sharing options...
Thierryh Posted December 29, 2010 Author Share Posted December 29, 2010 DevNet, merci ! ca marche !Cependant ce n'est pas aussi flexible que je le souhaiterais.Je souhaite pouvoir modifier mes TPL facilement (par exemple en changeant leur nom ou en gérant plusieurs TPL), sans avoir à modifier à nouveau le fichier PHP...En continuant mes tests, à partir de la suggestion de devNet, en affichant dans mon 1er TPL la valeur de path_deux je me suis apercu que le chemin complet du fichier est alors /home/portai/sd/www/modules/monmodule/deux.tpl. Donc dans mon 1er TPL, en appliquant ce chemin complet dans mon include {include file=/home/portai/sd/www/modules/monmodule/deux.tpl} cela marche très bien... sans avoir à ajouter le smarty->assign() dans le fichier PHP.La question maintenant est : quelle variable PrestaShop permet d'obtenir ce chemin complet /home/portai/sd/www/modules/monmodule ?MerciThierry Link to comment Share on other sites More sharing options...
Thierryh Posted December 29, 2010 Author Share Posted December 29, 2010 J'ai trouvé. C'est _PS_ROOT_DIR_MerciThierry Link to comment Share on other sites More sharing options...
Thierryh Posted December 29, 2010 Author Share Posted December 29, 2010 Pour être plus précis : dans le fichier PHP j'ai ajouté $smarty->assign(array('path_deux' =>_PS_ROOT_DIR_.'/modules'.$this->module_dir.'/'.$this->name)); et dans le 1er fichier TPL j'ai {include file="$path_deux/deux.tpl"} Merci à DevNetThierry 1 Link to comment Share on other sites More sharing options...
MacMame Posted April 26, 2018 Share Posted April 26, 2018 Bonjour Thierry H Tu indique avoir ajouté ta variable dans ton fichier php ? mais c'est quel fichier exactement ? (pour la 1.7) Car je cherche à faire la même chose. merci Link to comment Share on other sites More sharing options...
Recommended Posts