2010-08-25 3 views
0

J'essaie de générer des couleurs d'arrière-plan pour plusieurs tables contenues dans un bloc {section} ... {/section}, mais si je ne donne pas de noms aux fonctions {cycle}, le cycle se poursuit, pas redémarré la prochaine fois qu'il est rencontré. Le même problème se produit lorsque j'utilise des cycles nommés et les mêmes répétitions de cycles nommés dans une section.Smarty: Redémarrer {cycle} en utilisant {sections} imbriquées

Exemple:

{section name=i loop=$tables} 
    <table> 
     {section name=j loop=$tables[i].data} 
      <tr class="{cycle name=bgcolor values='odd_row,even_row'}"> 
       .. 
       .. 
       .. 
      </tr> 
     {/section} 
    </table> 
{/section} 

Comment puis-je obtenir le {cycle} pour réinitialiser son auto à chaque itération de {section name=j}? Est-il possible de composer des noms dans Smarty? (Utiliser quelque chose comme {cycle name=bgcolor.$i})

Note: J'ai le même problème sur une autre page qui est inclus plusieurs fois dans un seul tpl et chaque fois qu'il montre une table, le cycle de couleur de fond continue d'où il a quitté la place de se réinitialiser soi-même. Je comprends que c'est un comportement normal (puisque Smarty n'a aucun moyen de savoir où commence mon cycle), mais je voudrais le changer.

Répondre

3

Utilisé reset=true comme ceci:

{section name=i loop=$tables} 
    <table> 
     {cycle name=bgcolor print=false reset=true values='odd_row,even_row'} 
     {section name=j loop=$tables[i].data} 
      <tr class="{cycle name=bgcolor values='odd_row,even_row'}"> 
       .. 
       .. 
       .. 
      </tr> 
     {/section} 
    </table> 
{/section} 
Questions connexes