Itérateur de liste
L’itérateur de liste permet de parcourir les éléments d’une liste. Les éléments peuvent être des mots, des chiffres ou des petits morceaux de texte. Il s’appelle sous la forme d’un critère liste
de la boucle DATA
auquel on passe la liste des éléments devant être parcourus :
Cette boucle présente une liste des premiers nombres premiers :
<ul>
<BOUCLE_premiers(DATA){liste 2, 3, 5, 7, 11, 13}>
<li>#VALEUR</li>
</BOUCLE_premiers>
</ul>
Il est possible d’utiliser tous les critères communs à toutes les boucles.
Spécifier le séparateur :
<BOUCLE_mois(DATA){liste janvier, février, mars, avril}{" ; "}>
#VALEUR ([(#VALEUR|couper{3})])
</BOUCLE_mois>
Affichera : janvier (jan) ; février (fév) ; mars (mar) ; avril (avr)
Inverser l’ordre de parcours de la boucle :
<BOUCLE_mois(DATA){liste 1, 10, 100, 1000}{", "}{inverse #ENV{envers}}>
#VALEUR
</BOUCLE_mois>
Produira : "1, 10, 100, 100, 1000" ou "1000, 100, 10, 1" selon la valeur de ’envers’ dans l’environnement.
Ne boucler que sur un sous-ensemble de la liste :
<BOUCLE_mois(DATA){liste janvier, février, mars, avril, mai, juin, juillet}{", "}{3,2}>
#VALEUR
</BOUCLE_mois>
sautera 3 mois et en présentera 2, soit : "avril, mai".
Les valeurs des bornes peuvent être calculées :
<BOUCLE_couleurs(DATA){liste #GET{couleurpreferee}, #ENV{couleurchoisie}}{", "}>
#VALEUR
</BOUCLE_couleurs>
Itérateur énumération
L’itérateur d’énumération est une boucle très simple.
Son utilisation la plus générale est de la forme
<BOUCLE_enumere(DATA){enum val1, val2}>
#VALEUR
</BOUCLE_enumere>
ou
<BOUCLE_enumere(DATA){enum val1, val2, pas}>
#VALEUR
</BOUCLE_enumere>
val1
et val2
sont 2 valeurs numériques, ou bien 2 caractères. SPIP déterminant laquelle des 2 valeurs est la plus petite, cette boucle va énumérer les valeurs entre val1
et val2
. Dans la première forme, le pas n’est pas précisé : il vaut 1 par défaut.
Entiers, pas de 1 :
<BOUCLE_enum(DATA){enum 10,15}{", "}>#VALEUR</BOUCLE_enum>
Boucle sur les valeurs en commençant à 10 et en s’arrêtant à 15 et renvoie donc "10, 11, 12, 13, 14, 15".
Décimaux, pas de 1 :
<BOUCLE_enum(DATA){enum 15.5,10.3}{", "}>#VALEUR</BOUCLE_enum>
Boucle sur les valeurs en commençant à 15 et en s’arrêtant avant 10 et renvoie donc "15.5, 14.5, 13.5, 12.5, 11.5, 10.5".
Entiers, pas de 2 :
<BOUCLE_enum(DATA){enum 10, 15, 2}{", "}>#VALEUR</BOUCLE_enum>
Boucle sur les valeurs de 10 à 15, par pas de 2, et renvoie donc "10, 12, 14".
Lettres :
<BOUCLE_enum(DATA){enum g,m}{", "}>#VALEUR</BOUCLE_enum>
Boucle sur les caractères de "g" jusqu’à "m" et renvoie donc "g, h, i, j, k, l, m".