Exemple :
<BOUCLE_art(ARTICLES) {si #ID_RUBRIQUE|=={8}} {par date}>
<a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_art>
La boucle s’exécutera uniquement si, dans l’environnement d’exécution de la boucle, #ID_RUBRIQUE
est égal à "8".
La partie conditionnelle de la boucle, celle inscrite entre </B_art>
et <//B_art>
, sera quant à elle exécutée dans les deux cas où :
- soit #ID_RUBRIQUE n’existe pas dans l’environnement ou n’est pas égal à 8 (prise en compte du critère
{si ...}
; - soit #ID_RUBRIQUE est bien égal à 8 mais la boucle ne retourne aucun résultat.
Ce nouveau critère {si ...}
, disponible depuis SPIP 3.0, permet de s’affranchir enfin de l’impossibilité d’utiliser une boucle dans la partie conditionnelle d’une balise.
Par exemple, là où il était nécessaire d’écrire
[(#SESSION{statut}|=={1comite}|oui) <INCLURE{fond=mapage, ...}> ... ]
parce que mapage.html
contenait une boucle, il est désormais possible d’écrire directement dans le squelette appelant (sans INCLURE donc) :
<BOUCLE_xy(AUTEURS) {si #SESSION{statut}|=={1comite}}> ...
Bien sûr, le critère {si ...}
peut porter sur tout type de variables (#ENV, #GET,...)
Par exemple, une boucle dont l’exécution sera conditionnée par le résultat d’un calcul faisant intervenir une variable de l’environnement #ENV{var}
(récupérée depuis l’url) et une variable #GET{val}
(préalablement définie dans le squelette) :
#SET{val, 2}
<BOUCLE_a(ARTICLES) {si #ENV{var}|plus{#GET{val}}|=={5}}>
...