Jump to content

Petite Question Smarty 3 et module


Recommended Posts

Bonjour,

Je vais essayer de faire simple. :)

lorsque l'on veut ajouter un élément de template dans un autre template on utilise la syntaxe suivante

{include file="$tpl_dir./product-sort.tpl"}

Dans mon module j'utilise plusieurs élément de template et j'ai modifier tpl_dir pour qui pointe sur l'élément présent dans mon module et pas le dossier template de base de prestashop.

Le problème c'est que rien ne s'affiche et tout fonctionne avec smarty 2

Ma question est donc de savoir comment l'on peut appeler un autre élément de template dans un module

Exemple :

Le fichier new-product.tpl
Appel 1 autre fichier de template product-sort.tpl qui est dans le même répertoire

J'espère que c'est compréhensible,

Merci de votre aide. :)

Link to comment
Share on other sites

Merci pour ta réponse, je pense avoir essayer presque toutes les combinaisons et je ne comprend pas pourquoi ça ne fonctionne pas. Je dois passé a coté d'un détails tout c..

{include file="/product-sort.tpl"}
{include file="product-sort.tpl"}
{include file="/themes/default/product-sort.tpl"}
{include file="/home/chottaba/www/modules/module123/themes/default/product-sort.tpl"}

Je penses que le problème doit être ailleurs, l'on a peut être pas le droit de modifier le dossier template défini dans smarty 3 ou il y a une sécurité, enfin il y a un petit truc qui block.

Au pire des cas il y a 2 solutions, certe pas élégant mais qui fonctionne,

- Copier le contenu des fichiers include dans le fichier parent et ne plus appeler de template externe
- Appeler les fichiers depuis PHP avec $smarty->display

Mais j'aimerais bien trouvé ce qui block, je penses que c'est important pour construire des modules le plus propre possible.

Merci de votre aide

Link to comment
Share on other sites

Dans le fichier product.tpl il y a : {include file="$tpl_dir./product-list.tpl" products=$packItems}
donc si ça ne fonctionne pas chez vous c'est que $tpl_dir n'est peut être pas bon, essayez de l'afficher pour voir ce qu'il contient.

Link to comment
Share on other sites

Bonjour,

Voici ce que me retourne {$tpl_dir} : /home/chottaba/www/modules/module123/themes/default/
Il s'agit bien du bon chemin absolu du fichier template

Lorsque je passe en smart 2 dans le backoffice ça fonctionne, c'est pourquoi je pense qu'il doit s'agir d'un problème de règle ou configuration a effectué avec smart 3, mais laquelle…

A note que lorsque je ne redéfinie pas $tpl_dir dans mon module il affiche bien le template mais ce n'est évidament pas le bon et il affiche les fichier du template d'origine /home/chottaba/www/themes/prestashop/

J'ai essayer de créer une nouvelle variable $tpl_dir2 mais ça ce change rien.

Du coup je regarde les fichiers config de smarty mais je commence a être un peu a court d'idée…

Avez vous réussi a appeler un autre fichier de template dans un module avec smart 3 ?

Link to comment
Share on other sites

idéalement tu assigne le path complet directement dans ton module

$smarty->assign('product_sort_path',$this->_path.'themes/default/product-sort.tpl');




ensuite dans le tpl :

{include file="$product_sort_path"}




Pour info dans smarty 3 , les includes sont un peu plus capricieux niveau syntaxe...

Link to comment
Share on other sites

Merci de votre aide,

J'ai trouvé le problème, il y avait une erreur de syntaxe smarty 3 dans l'un des fichiers template enfants, ce qui faisait planté les templates suivant.

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