Jump to content

[RESOLU] INCLUDE d’un fichier TPL dans un autre TPL ne marche pas


Thierryh

Recommended Posts

Bonjour

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

Merci
Thierry

Link to comment
Share on other sites

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"}



Merci
Thierry

Link to comment
Share on other sites

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 ?

Merci
Thierry

Link to comment
Share on other sites

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 à DevNet
Thierry

  • Like 1
Link to comment
Share on other sites

  • 7 years later...
  • Oron locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...