Deux itérateurs simples : les listes et les énumérations

Parmis les nombreux et puissants itérateurs intégrés dans SPIP 3, il y en a 2 qui se distinguent par leur simplicité : les listes et les énumérations.

  • Apparu en : SPIP 3.0

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".

Auteur JLuc Publié le : Mis à jour : 21/03/23

Traductions : English, français, Nederlands