Une rubrique

ou comment faire des listes du contenu de la base

La leçon précédente nous a appris à afficher des éléments en fonction du contexte. Nous allons ici voir comment ce contexte varie au fur et à mesure des BOUCLES rencontrées.

Modifions notre squelette « tutoriel.html » de la manière suivante :

<BOUCLE_article(ARTICLES)>
	#TITRE
</BOUCLE_article>

Là, on supprime carrément la condition {id_article}. Attention : cette BOUCLE peut générer une page énorme si votre base contient déjà pas mal d’articles : mieux vaut prendre nos précautions et ajouter tout de suite {0,10} pour limiter aux 10 premiers articles...

<BOUCLE_article(ARTICLES){0,10}>

Résultat : en appelant simplement http://votresite.net/spip.php?page=tutoriel (plus besoin d’id_article désormais, puisque cette condition a été supprimée) les titres des 10 premiers articles publiés s’affichent, séparés chacun par un saut de ligne. À partir de là, on voit comment on peut produire le sommaire d’une rubrique : affichons les 10 articles les plus récents appartenant à cette rubrique.

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

Prenons dans l’ordre :

  • id_rubrique : ne prend que les articles appartenant à la rubrique id_rubrique (cf. ci-dessous pour que cette variable soit définie dans le contexte de notre BOUCLE_article) ;
  • {!par date} : trie par date dans l’ordre chronologique décroissant...
  • {0,10} : ... et prend les 10 premiers résultats.
  • Enfin, <a href="#URL_ARTICLE">#TITRE</a> va afficher non seulement le titre de l’article mais en plus créer un lien vers cet article.

Reste à invoquer le squelette, en lui passant le contexte id_rubrique=1 :

http://votresite.net/spip.php?page=tutoriel&id_rubrique=1

La magie de SPIP tient dans la combinaison de ce type de fonctionnalités. Si vous êtes arrivé jusqu’ici, c’est gagné !

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

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