Jump to content

Edit History

Aggie1

Aggie1

Bonjour,

Il y a quelque chose qui m'échappe avec les variables smarty. J'avais cru comprendre qu'une fois assignée on pouvait la réutiliser d'un fichier tpl à l'autre. Un peu comme une variable mis en session avec php.

Voici un exemple:

Dans mon fichier product.tpl qui affiche les miniatures des produits sur mes pages catégories, le fichier product-flags.tpl (qui affiche les réductions, rupture de stock) est appelé via:

{include file='catalog/_partials/product-flags.tpl'}

Dans product-flags.tpl j'ai une boucle qui créé une liste. Je souhaite abandonner la liste car je ne souhaite pas faire apparaitre la réduction d'un produit à coté du texte rupture de stock.

Du coup je voulais conserver la boucle et assigner des variables smarty que j'aurai traiter dans le fichier product.tpl avec un if pour afficher mes réductions ou mes rupture de stock à des endroits différents de ma page.

J'ai donc modifié la boucle du fichier product-flags.tpl comme ceci:

 {block name='product_flags'} 
{foreach from=$product.flags item=flag}	 
   {if $page.page_name != 'product' AND $flag.type == 'discount'} {assign var='montant' value=$flag.label}{/if}
   {if $page.page_name != 'product' AND $flag.type == 'out_of_stock'} {assign var='stock-hs' value=$flag.label}{/if}
 {/foreach}
{/block}

Quand j'appel l'une ou l'autre des 2 variables (après l'include) que j'ai assigné ($montant ou $stock_hs) depuis la page product.pl en faisant un:

<div class"test">{$montant}</div>

C'est vide. Rien ne s'affiche. Si je place le même bloc après la boucle dans le fichier product-flags.tpl ca fonctionne.

Du coup ma question est donc la suivante. Est ce qu'une variable smarty une fois assigné peut être appelé depuis n'importe quelle page tpl?

Merci d'avance pour votre aide

 

 

 

Aggie1

Aggie1

Bonjour,

Il y a quelque chose qui m'échappe avec les variables smarty. J'avais cru comprendre qu'une fois assignée on pouvait la réutiliser d'un fichier tpl à l'autre. Un peu comme une variable mis en session avec php.

Voici un exemple:

Dans mon fichier product.tpl qui affiche les miniatures des produits sur mes pages catégories, le fichier product-flags.tpl (qui affiche les réductions, rupture de stock) est appelé via:

{include file='catalog/_partials/product-flags.tpl'}

product-flags.tpl j'ai une boucle qui créé une liste. Je souhaite abandonner la liste car je ne souhaite pas faire apparaitre la réduction d'un produit à coté du texte rupture de stock.

Du coup je voulais conserver la boucle et assigner des variables smarty que j'aurai traiter dans le fichier product.tpl avec un if pour afficher mes réductions ou mes rupture de stock à des endroits différents de ma page.

J'ai donc modifié la boucle du fichier product-flags.tpl comme ceci:

 {block name='product_flags'} 
{foreach from=$product.flags item=flag}	 
   {if $page.page_name != 'product' AND $flag.type == 'discount'} {assign var='montant' value=$flag.label}{/if}
   {if $page.page_name != 'product' AND $flag.type == 'out_of_stock'} {assign var='stock-hs' value=$flag.label}{/if}
 {/foreach}
{/block}

Quand j'appel l'une ou l'autre des 2 variables (après l'include) que j'ai assigné ($montant ou $stock_hs) depuis la page product.pl en faisant un:

<div class"test">{$montant}</div>

C'est vide. Rien ne s'affiche. Si je place le même bloc après la boucle dans le fichier product-flags.tpl ca fonctionne.

Du coup ma question est donc la suivante. Est ce qu'une variable smarty une fois assigné peut être appelé depuis n'importe quelle page tpl?

Merci d'avance pour votre aide

 

 

 

Aggie1

Aggie1

Bonjour,

Il y a quelque chose qui m'échappe avec les variables smarty. J'avais cru comprendre qu'une fois assignée on pouvait la réutiliser d'un fichier tpl à l'autre. Un peu comme une variable mis en session avec php.

Voici un exemple:

Dans mon fichier product.tpl qui affiche les miniatures des produits sur mes page catégorie le fichier product-flags.tpl (affiche les réductions, rupture, etc) est appelé via:

{include file='catalog/_partials/product-flags.tpl'}

product-flags.tpl j'ai une boucle qui créé une liste. Je souhaite abandonner la liste car je ne souhaite pas faire apparaitre la réduction d'un produit à coté du texte rupture de stock.

Du coup je voulais conserver la boucle et assigner des variables smarty que j'aurai traiter dans le fichier product.tpl avec un if pour afficher mes réductions ou mes rupture de stock à des endroits différents de ma page.

J'ai donc modifié la boucle du fichier product-flags.tpl comme ceci:

 {block name='product_flags'} 
{foreach from=$product.flags item=flag}	 
   {if $page.page_name != 'product' AND $flag.type == 'discount'} {assign var='montant' value=$flag.label}{/if}
   {if $page.page_name != 'product' AND $flag.type == 'out_of_stock'} {assign var='stock-hs' value=$flag.label}{/if}
 {/foreach}
{/block}

Quand j'appel l'une ou l'autre des 2 variables (après l'include) que j'ai assigné ($montant ou $stock_hs) depuis la page product.pl en faisant un:

<div class"test">{$montant}</div>

C'est vide. Rien ne s'affiche. Si je place le même bloc après la boucle dans le fichier product-flags.tpl ca fonctionne.

Du coup ma question est donc la suivante. Est ce qu'une variable smarty une fois assigné peut être appelé depuis n'importe quelle page tpl?

Merci d'avance pour votre aide

 

 

 

×
×
  • Create New...