Boucles en boucles

plusieurs niveaux de lecture

Affichons sur une même page des éléments en provenance de plusieurs endroits.

Nous savons générer une liste de titres dans une rubrique. Maintenant, nous allons afficher, sur la même page, les éléments de la rubrique elle-même : son titre, son texte de présentation, etc.

Essayez !

Et voici une solution :

<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
	<h1>#TITRE</h1>
	<BOUCLE_article(ARTICLES){id_rubrique}{!par date}{0,10}>
		<a href="#URL_ARTICLE">#TITRE</a><br>
	</BOUCLE_article>
	#TEXTE
</BOUCLE_rubrique>

On appelle la page avec http://votresite.net/spip.php?page=tutoriel&id_rubrique=1.
Que s’est-il passé ici ?

Notre boucle ARTICLES est intégrée dans une boucle RUBRIQUES. Le contexte de la boucle ARTICLES est l’id_rubrique donné par la boucle RUBRIQUES, qui elle-même va chercher le contexte donné par l’URL (id_rubrique=1). Donc nous sommes bien, au niveau des ARTICLES, avec l’id_rubrique demandé. De ce point de vue rien ne change.

En revanche, la boucle RUBRIQUES a permis à SPIP de sélectionner les valeurs des champs de la rubrique en question : on peut donc afficher le #TITRE
et le #TEXTE de cette rubrique. Notez bien que ce #TEXTE serait celui de la rubrique même si on appelait aussi #TEXTE dans la boucle ARTICLES. Le fonctionnement arborescent de SPIP garantit que le #TEXTE d’un article ne déborde pas de la boucle ARTICLES...

Auteur L’équipe de SPIP Publié le : Mis à jour : 16/06/23

Traductions : عربي, català, corsu, Deutsch, English, Español, français, italiano, Nederlands, polski, Português, русский, slovenčina, Türkçe, українська