{foreach},{foreachelse} Nom attribut Type Requis Defaut Description from tableau oui n/a Le tableau à parcourir item chaîne de caractère Oui n/a Le nom de la variable "élément courant" key chaîne de caractère Non n/a Le nom de la variable représentant la clef courante. name chaîne de caractère Non n/a Le nom de la boucle foreach, qui nous permettra d'accéder à ses propriétés. Les boucles {foreach} sont une alternative aux boucles section. Les boucles {foreach} sont utilisées pour parcourir des tableaux associatifs simples. La syntaxe des boucles {foreach} est bien plus simple que celle des boucles {section}, mais en contrepartie, elles ne peuvent être utilisées que pour des tableaux associatifs simples. La balise {foreach} doit toujours être accompagnée de la balise {/foreach}. Les paramètres requis sont from et item. Le nom des boucles {foreach} doit être composés exclusivement de lettres, chiffres et underscores, selon vos préférences. Les boucles {foreach} peuvent être imbriquées. La variable from (généralement le tableau à parcourir) détermine le nombre de fois que {foreach} sera exécuté. {foreachelse} est exécuté si aucune valeur n'est présente dans la variable donnée à l'attribut from. foreach assign('custid', $arr); ?> ]]> {/foreach} ]]> L'exemple ci-dessus affichera : id: 1001
id: 1002
]]>
foreach key assign('contacts', array( array('phone' => '1', 'fax' => '2', 'cell' => '3'), array('phone' => '555-4444', 'fax' => '555-3333', 'cell' => '760-1234')) ); ?> ]]> {foreach key=key item=item from=$contact} {$key}: {$item}
{/foreach} {/foreach} ]]>
L'exemple ci-dessus affichera : phone: 1
fax: 2
cell: 3

phone: 555-4444
fax: 555-3333
cell: 760-1234
]]>
{foreach} - Exemple avec une base de données (eg PEAR ou ADODB) assign("contacts", $db->getAssoc($sql)); ?> ]]> {$con.name} - {$con.nick}
{/foreach} ]]>
Les boucles {foreach} ont également leurs propres variables qui gèrent les propriétés de {foreach}. Elles sont indiquées par : {$smarty.foreach.foreachname.varname} où foreachname est le nom spécifié par l'attribut name de foreach. Voir {section} pour des exemples avec les proriétés ci-dessus. iteration iteration est utilisé pour afficher l'itération de la boucle courante. iteration commence toujours par 1 et est incrémenté à chaque itération. first first est défini à true si l'itération courante de foreach est la première. last last est défini à true si l'itération courante de foreach est la dernière. show show est utilisé en tant que paramètre de foreach. show est un booléen (true ou false). S'il vaut false, foreach ne sera pas affiché. Si foreachelse est présent, il sera affiché alternativement. total total est utilisé pour afficher le nombre d'itérations bouclées par ce foreach. Il peut être utilisé dans ou après le foreach. Voir aussi {section} et $smarty.foreach.