Une boucle, c’est (pour)quoi ?
On parle de boucle en informatique pour répéter une opération de traitement quasiment à l’identique, parfois jusqu’à l’infini.
- 1. Donc la première question est de synthétiser le quoi , la cible informationnelle de notre boucle, ou son objectif [1]
cela vous identifiera donc l’objet de la boucle, une bonne façon de la nommer :en effet, vous pouvez avoir plusieurs balises de boucles dans un squelette, et leur donner des noms facilite de s’y retrouver entre toutes les balises appairées, en couple pour un meme nom [2] qui sera unnique dans un squelette.
Plus spécifiquement, SPIP utilise la structure de boucle dans un squelette pour obtenir une liste d’informations, d’occurrences d’objets éditoriaux correspondant à une sélection. Un cas particulier —très utilisé— est d’obtenir une occurrence, un seul élément [3] pour pouvoir en afficher le détail dans un squelette...
- 2. Donc la question suivante porte sur le qui , celui qui détient les informations voulues, quel individu-type, ou table d’objet éditorial, représente le sujet principal demandé (on parle d’une occurrence de table_objet éditorial), et ’porte’ le type d’informations recherchées, en utilisant optionnellement d’autres tables liées.
il convient donc de répondre à la question : quel est la table principale contenant les informations représentatives de ma cible ?
On verra ensuite comment utiliser si besoin, et donc relier d’autres tables par des jointures, ce que SPIP opère bien plus facilement que SQL.
Pour lesquels (d’objets), la sélection !
Votre objectif n’est sans doute pas d’afficher toutes les lignes, mais plutôt d’introduire des conditions de sélection, qu’on appelle des critères de filtrage.
Il y a plusieurs cas envisageables, entre :
- la sélection directe d’un individu unique
_—> identifié par son nom, titre, numéro-clé ou autre, - la sélection comparative, opérée sur une ou des sélection conjuguées,
chaque condition comparant le contenu d’un champ de l’individu cible de la boucle par rapport à des valeurs prédéfinies.
Nota : on ne considèrera d’abord que des conditions cumulées conjointement, qui doivent toutes ensemble être respectées pour retenir l’occurrence concernée ;
pour des conditions alternatives, enchainer deux boucles distinctes..
- 3. Reformuler successivement chaque condition exigée pour retenir l’individues quoi afficher, quelles sont les informations voulues, pour chaque individu traité dans la boucle.
chaque condition s’exprime alors dans un critère , d’un contenu de nom de champ "comparé" à une valeur fixe.
L’affichage des informations
Entre les deux balises de début et fin de boucle, c’est le bloc de traitement-informations, répétitif ; il s’agira essentiellement du source d’affichage HTML des informations voulues.
- 4. Décrire ensuite les quoi afficher, quelles sont les informations voulues, pour chaque individu traité dans la boucle.
Lister toutes les informations voulues, puis pour chacune retrouver le nom de balise de champ associé dans la table objet ciblée [4] Pas la peine de s’encombrer l’écriture d’attributs de mise en forme à ce stade, une écriture brute suffira fort bien.
Passer à la syntaxe de boucle
Nous avons donc les réponses suivantes :
- un but (le quoi)
- un nom de table ciblée (le qui)
et donc aussi une liste de champs utilisables - une liste de comparaisons sur ces champs (on peut s’en passer en début)
- une liste d’informations à afficher, également choisie parmi les champs,
(et peut-être d’autres à afficher, mais pas encore disponibles =>nouvelles cibles)
Reprenons alors la syntaxe Architecture de boucle :
Nous devons donc remplir un canevas de boucle qui est sur le modèle suivant
#CHAMP1 #CHAMP2 #CHAMP3...
Remplacez chaque mot-symbolique du canevas ci-dessus par le fruit de vos réflexions correspondantes, et.... testez !
Quelques éléments de syntaxe :
tout s’écrit en ’minuscules’ sauf :
- le nom de
TABLE(toujours au pluriel),- les
#BALISESde champs(débutant par un#),
-* et lesBALISES SPIP
Évidemment, il faudra avoir rempli au préalable quelques lignes dans la table cible, cf. [art816], ce qu’on appelle alimenter un jeu de tests ; vous commencerez souvent par boucler sur la table ARTICLES .

Article publié le 30 décembre 2021, et actualisé en décembre 2021 introduction .
Répondre à cet article