{si ...}

Le critère {si ...} permet de conditionner l’exécution d’une boucle à la condition exprimée en argument dans le critère.

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ésormait 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}}>
...

Voir aussi

La boucle CONDITION

Auteur denisb, Teddy Publié le : Mis à jour : 07/06/18

Traductions : français, Nederlands