Manuel Smarty
{foreach},{foreachelse}
{foreach} est utilisé pour parcourir un simple tableau associatif, contrairement à {section} qui effectue une boucle sur les tableaux de données. La synthaxe pour {foreach} est plus simple que {section}, mais ne peut être utilisé que pour des tableau simple. Chaque {foreach} doit aller de paire avec une balise fermante {/foreach}.
| 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. |
-
Required attributes are from and item.
-
The name of the {foreach} loop can be anything you like, made up of letters, numbers and underscores, like PHP variables.
-
{foreach} loops can be nested, and the nested {foreach} names must be unique from each other.
-
The from attribute, usually an array of values, determines the number of times {foreach} will loop.
-
{foreachelse} is executed when there are no values in the from variable.
-
{foreach} loops also have their own variables that handle properties. These are accessed with: {$smarty.foreach.name.property} with << name >> being the name attribute.
Note : The name attribute is only required when you want to access a {foreach} property, unlike {section}. Accessing a {foreach} property with name undefined does not throw an error, but leads to unpredictable results instead.
-
{foreach} properties are index, iteration, first, last, show, total.
|
Exemple 7-6. Utilisation des attributs item et key
Le template affiche le tableau $myArray comme paire clé/valeur, comme la fonction PHP foreach.
L'exemple ci-dessus affichera :
|
|
Exemple 7-7. {foreach} avec un attribut associatif item
Le template affiche $items avec $myId dans l'URL.
L'exemple ci-dessus affichera :
|
|
Exemple 7-8. {foreach} avec item et key Assigne un tableau à Smarty, la clé contient la clé pour chaque valeur de la boucle.
Le template affiche $contact.
L'exemple ci-dessus affichera :
|
|
Exemple 7-9. Exemple d'une base de données avec {foreachelse} Exemple d'un script de recherche dans une base de données (e.g. PEAR ou ADODB), le résultat de la requête est assigné à Smarty.
Le template qui affiche << None found >> si aucun résultat avec {foreachelse}.
|
.index
index contient l'index courant du tableau, en commançant par zéro.
.iteration
iteration contient l'itération courante de la boucle et commence toujours à 1, contrairement à index. Il est incrémenté d'un, à chaque itération.
.first
first vaut TRUE si l'itération courante de {foreach} est l'initial.
.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 à {foreach}. show est une valeur booléenne. S'il vaut FALSE, {foreach} ne sera pas affiché. S'il y a un {foreachelse}, il sera affiché alternativement.
.total
total contient le nombre d'itérations que cette boucle {foreach} effectuera. Il peut être utilisé dans ou après un {foreach}.
Voir aussi {section} et $smarty.foreach.
Remonter 
