Syntaxe complète d’une boucle

  encadrer et traiter des cas d’exception


La boucle permet de répeter l’extraction/affichage de tous les enregistrement correspondants aux critères de sélection, au sein d’un squelette.

Mais dans certains cas, le contexte peut imposer d’autres traitements, en particulier avant et après le corps de la boucle, voire quand aucun contenu n’a pu être trouvé.

 
 
 
 
 
 
 
 
 
 

 Le Corps de la boucle

Comme vu précédemment, l’Architecture de boucle encadre et répète l’exécution d’un bloc HTML (affichant les textes trouvés par balise de champ) encadré par les tags <BOUCLE_..> et </BOUCLE_..>, pour tous les enregistrements correspondants ; chaque boucle SPIP doit porter un nom unique dans le squelette, suffixe indiqué en minuscules après le BOUCLE_ !

Sauf dans le cas des squelettes "unitaires" -n’affichant qu’un seul élément- la traduction et l’affichage HTML correspondant (en particulier pour la gestion CSS des menus) privilégieront un format de listes HTML.

Et votre navigateur aux normes du W3C vous fera peut-etre observer qu’une liste doit en HTML être typée, introduite et fermée par la paire <ul> ...  </ul>ou <on> ...  </on>.

Vous pourriez donc écrire quelque chose comme :

  1. <div class="menu auteurs">
  2. <ul class="menu-liste">
  3. <BOUCLE_menuaut(AUTEURS){id_auteur>1}>
  4. <li>#NOM #EMAIL</li>
  5. </BOUCLE_menuaut>
  6. <p>Il y a #TOTAL_BOUCLE Auteurs.</p>
  7. </ul>
  8. </div>

Télécharger

Oui mais !
Si vous n’aviez qu’un seul auteur, votre boucle -n’affichant que les auteurs au-delà du premier-le webmestre-, voir la condition- ne doit rien afficher, même pas de titre ! Comment faire, pour n’afficher qu’optionnellement des textes et informations encadrant la structure principale du corps de boucle ?

 Les options de début et fin

La structure de boucle, délimitée par les deux tags <BOUCLE_..> et </BOUCLE_..>, peut être complétée par deux parties optionnelles Avant et Après ; ces deux parties sont logiquement présentées au-dessus et en-dessous du corps de la boucle, et marquées respectivement par les tags dérivés/abrégés <B_..> et </B_..>, également suffixés par le nom de boucle.

Ainsi vous rajouterez :
- <B_menuaut> avant (ou après) le <div class="menu auteurs">
et semblablement
- </B_menuaut> après(ou avant) le

</div> de fin...

{{{Et une partie alternative}}}
Mais si vous n'avez qu'un seul Webmestre, ou qu'il est le seul à avoir publié des articles.... et que vous avez inséré vos tags <code><B_..>

à l’interieur du bloc <div..>, cela ne sera pas très joli : il y a O auteur... ?

Rajoutez alors en toute fin, un bloc alternatif, qui ne sera utilisé que dans le cas où la boucle n’a renvoyé aucun élément :

  1. <p>Aucun rédacteur public n'a encore d'articles publiés !
  2. <//B_menuaut>

Télécharger

A vous d’imaginer tous les usages, vous avez la solution.

Noter également -en particulier pour les adeptes du SQL- les options complémentaires de fusion (regroupement de lignes) et de doublons (mémorisations intermédiaires), qui seront évoquées dans un autre article.


Merci de nous signaler les coquilles ou erreurs qui figureraient dans cette page.


Liens visibles seulement pour les inscrits.

Article publié le 13 juillet 2014, et actualisé en mars 2017 .

Répondre à cet article