2010-01-21 4 views
0

ai-je raison de penser que vous ne pouvez pas accéder à une variable depuis l'extérieur de la boucle en boucle?Dwoo - pouvez-vous accéder à d'autres variables en boucle?

Par exemple:

{boucle $ nav_header}
<li><a href="{$link}"><img src="{$template.imagefolder}/{$icon}" width="48" height="48" border="0" alt="{$title}" /><br />{$title}</a></li>
{/} boucle

où je suis en train d'utiliser $ template.imagefolder (à titre d'exemple) de en dehors de la boucle?

vôtre,
Chris

Répondre

2

(Copie ma réponse de http://forum.dwoo.org/viewtopic.php?id=617 pour référence future)

Eh bien, vous pouvez, mais vous avez à savoir ce que vous voulez exactement ..

$ nav_header est un tableau de sorte que vous pouvez y accéder à partir de en dehors de la boucle en faisant {$ nav_header.0.template.imagefolder} par exemple, cela vous donnera ce que vous voulez pour le premier élément du tableau. Si vous voulez accéder à une variable de niveau supérieur de dans la boucle, c'est-à-dire si vous avez $ path et $ nav_header dans votre noeud de données principal, vous feriez {$ _. Path}, ce qui est l'équivalent de {$ _parent.path}

L'autre approche, si vous ne savez pas où chercher exactement dans votre tableau, est d'enregistrer une variable pendant que vous faites une boucle, et vous pouvez y accéder depuis l'extérieur , mais vous ne pouvez pas attribuer à la portée des parents au moment, vous devez donc utiliser foreach pour cela, car il ne se déplace pas la portée, à savoir:

{foreach $nav_header elem} 
    <li><a href="{$elem.link}"><img src="{$elem.template.imagefolder}/{$elem.icon}" width="48" height="48" border="0" alt="{$elem.title}" /><br />{$elem.title}</a></li> 
    {if $elem.title == "foo"}{$folder = $elem.template.imagefolder}{/if} 
{/foreach} 

{$folder} 

J'espère que cela aide.

Questions connexes