La Boucle AUTEURS et ses critères

  Un peu de recul sur la structure de boucle


Bien que généralement peu utilisée en affichage sur le site, la boucle AUTEUR peut vous donner une vue intéressante des utilisateurs inscrits ; et comme elle est assez simple, vous comprendrez mieux les divers aspects de syntaxe générale de lArchitecture de boucle de SPIP, avant d’en voir la Syntaxe complète d’une boucle.

 
 
 
 
 
 
 
 

De la même façon que La boucle ARTICLES et ses balises de champs permettait l’affichage du contenu des Articles, la boucle Auteurs opère sur la table de données de même nom, et plus généralement une boucle porte sur la table nommée entre parenthèses dans l’instruction de début [1] !

 Une syntaxe balisée

Et comme on peut vouloir emboiter des boucles, chaque boucle doit être nommée : le mot-clé BOUCLE_ [2] doit être suivi d’un nom unique dans le squelette, qui permet d’apparier ensemble toutes les instructions qui composent la structure d’une boucle.

Entre cette instruction de début, initiée par le code <BOUCLE_...>, et l’instruction de fin </BOUCLE_...> qui marque le corps de boucle, vous indiquerez les balises au nom des champs que vous voulez afficher :
#NOM, #ID_AUTEUR, #BIO, #EMAIL...

En effet, le squelette d’affichage d’une table dans une page type HTML en SPIP, est un fichier HTML [3] ; il doit donc respecter la syntaxe du HTML, qui justement est un langage de balises, dont les éléments de commande sont présentés entre ces chevrons que sont < et >...

Ce qui vous donnera par exemple :

  1. <BOUCLE_init(AUTEURS) {id_auteur > 1}>
  2. #ID_AUTEUR = #NOM / #EMAIL <br />
  3. </BOUCLE_init>

Télécharger


Ici notre corps de boucle affichera sur une ligne à chaque fois [4], pour chaque enregistrement trouvé dans la table, avec le numéro et le nom de l’auteur, suivi de son e-mail...

 Des critères de sélection

Mais que vient faire cette comparaison, écrite entre accolades après le nom de table ?
- D’abord c’est effectivement une comparaison -et il pourrait y en avoir plusieurs- qui donne une condition pour que le corps de la boucle soit traité, donc pour cette exécution de la boucle en utilisant un enregistrement de la table ciblée soit affichée par interprétation des valeurs correspondantes aux balises de champs SPIP...
- Cette condition met en relation d’ordre la valeur du champ étudié pour chaque ligne traitée, -ici le numéro identifiant de chaque ligne auteur- avec une valeur de seuil -le 1° auteur créé est forcément le webmestre créateur initial avec tous les droits- : c’est la façon de ne pas afficher cet auteur spécial, une bonne attitude de prudence et de sécurité.
- Vous aurez remarqué qu’à contrario des champs utilisés dans le corps -et en majuscules préfixés du # (dièse)- le nom de champ est utilisé ici en minuscules et sans préfixe : il va servir au calcul des conditions de la boucle.

Par exemple, on va rajouter une autre condition de sécurité : ne jamais afficher les webmestre : ce statut particulier est codé dans un champ éponyme, et on va simplement l’indiquer dans un second critère, écrit juste derrière le premier, et donc avant le > fermant de l’ouverture de la boucle :

  1. <BOUCLE_init(AUTEURS) {id_auteur > 1} {webmestre} >

.
Non, on ne veut pas les webmestres, il faut donc inverser ce critère = il vous suffit de préfixer la condition du point d’exclamation !, ce qui donne :

  1. <BOUCLE_init(AUTEURS) {id_auteur > 1} { ! webmestre} >
  2. <li>#ID_AUTEUR = #NOM / #EMAIL </li>
  3. </BOUCLE_init>

Télécharger

 Corps de Boucle : HTML, boucle SPIP et champs

Retenez que l’instruction d’entrée de boucle accepte, après le nom de la table cible (entre parenthèses), une liste de sélection par critère mis entre accolades ; vous trouverez dans des documentations complémentaires les diverses formes et conditions utilisables.

Vous avez remarqué que cette liste est mise aux normes du HTML ; son corps -contenant les balises de #CHAMPS à afficher- est encadré à chaque ligne dans une paire de balises <li> ...  </li> bien connue : sans difficultés, elle a été ajoutée ci-dessus autour du corps de boucle...
Et vous pouvez bien sûr insérer des balises HTML [5] partout où elles seront nécessaires à votre présentation dans le corps de la boucle, dans le fichier HTML de squelette que vous visualiserez immédiatement dans votre navigateur..


Maintenant, un conseil : essayez, sur Une installation locale !
- Téléchargez des exemples de boucles
et placez les dans votre dossier squelette.
- Exécutez-les (ce sera plus simple avec ZPIP)
en précisant dans l’URL : ../spip.php?page=test&id_article=3par exemple..


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

[1Nous reviendrons sur la syntaxe de ce nom de table..traditionnellement en majuscules.

[2et sa forme B_ abrégée, que vous verrez plus bas, selon les utilisations..

[3Vous pouvez l’afficher directement dans votre navigateur favori, et seules les balises SPIP de champs seront affichées sans interprétation...

[4La balise HTML <br /> force un saut à la ligne dans l’affichage résultant sur le navigateur.

[5Les balises <p class=... > ...  </p> et <span> ...  </span> sont souvent utilisées pour l’habillage du texte : voir une explication en HTML / CSS !


Liens visibles seulement pour les inscrits.

Article publié le 10 novembre 2012, et actualisé en juillet 2016 .

Répondre à cet article