La boucle ARTICLES

Une boucle d’articles se code en plaçant entre parenthèses ARTICLES (avec un « s ») :

<BOUCLEn(ARTICLES){critères...}>

Les éléments contenus dans une telle boucle sont des articles.

Les critères de sélection

On utilisera l’un ou autre des critères suivants pour indiquer comment on sélectionne les éléments.

{branche} sélectionne l’ensemble des articles de la rubrique ET de ses sous-rubriques.

C’est une sorte d’extension du critère {id_secteur}.

Cherche l’identifiant de la rubrique en premier paramètre du critère {branche XX} s’il est renseigné, sinon, sans paramètre ({branche} tout court) dans les boucles parentes. On calcule avec lui la liste des identifiants de rubrique de toute la branche.

La boucle qui possède ce critère cherche une liaison possible avec la colonne id_rubrique, et tentera de trouver une jointure avec une autre table si c’est nécessaire pour l’obtenir.

Ce critère est à utiliser avec parcimonie : si votre site est bien structuré, vous ne devriez pas en avoir besoin, sauf dans des cas très particuliers.

-  Les critères {date} (ou {date=...} ou {date==...}, ou code>{date<..}, etc.) permettent de sélectionner un article en fonction de la date passée dans l’URL ou du contexte.

Il est possible d’utiliser les opérateurs de comparaison : == ; != ;< ; <= ; > ; >= ; l’élèment situé à droite peut être une balise ou bien une date au format international : YYYY-MM-DD hh:mm:ss.

-  {id_article} sélectionne l’article dont l’identifiant est id_article. Comme l’identifiant de chaque article est unique, ce critère ne retourne qu’une ou zéro réponse.

-  {id_auteur} sélectionne les articles correspondant à cet identifiant d’auteur (utile pour indiquer la liste des articles écrits par un auteur).

-  {id_groupe=zzzz} permet de sélectionner les articles liés à un groupe de mots-clés ; principe identique au {type_mot} précédent, mais puisque l’on travaille avec un identifiant (numéro du groupe), la syntaxe sera plus « propre ».

Nota : Ce critère n’est pas (en l’état actuel du développement de SPIP) cumulable avec le précédent {type_mot=yyyy}

-  {id_mot} sélectionne les articles correspondant à cet identifiant de mot-clé (utile pour indiquer la liste des articles traitant d’un sujet donné).

-  {id_rubrique} sélectionne les articles contenus dans la rubrique dont l’identifiant est id_rubrique.

-  {id_secteur} sélectionne les articles dans ce secteur (un secteur est une rubrique qui ne dépend d’aucune autre rubrique, c’est-à-dire située à la racine du site).

-  {lang} sélectionne les articles de la langue demandée dans l’adresse de la page.

-  {origine_traduction} sélectionne les articles qui servent de base à des versions traduites (les articles "originaux").

Voir sur programmer.spip.org pour des exemples

-  {pagination} Lorsqu’une boucle renvoie plusieurs dizaines d’articles (ou, pour une pétition, plusieurs milliers de signatures), il n’est pas souhaitable, voire impossible, de tout afficher sur une seule page.

-  {recherche} sélectionne les articles correspondant aux mots indiqués dans l’interface de recherche (moteur de recherche incorporé à SPIP).

Le critère {si ...} permet de conditionner l’exécution d’une boucle à la condition exprimée en argument dans le critère.

-  {titre_mot=xxxx}, ou {type_mot=yyyy} sélectionne respectivement les articles liés au mot-clé dont le nom est « xxxx », ou liés à des mots-clés du groupe de mots-clés « yyyy ». Si l’on donne plusieurs critères {titre_mot=xxxx} (ou plusieurs {type_mot=yyyy}), on sélectionnera ceux qui auront tous ces mots à la fois.

Le critère {tout} permet de sélectionner les données d’une table comme si aucun critère restrictif, même implicite, n’était appliqué.

-  {traduction} sélectionne toutes les traductions de l’article courant, en incluant ce dernier.
Pour exclure l’article courant, ajouter le filtre filtre {exclus} dans la boucle.

Ce critère est aussi valable pour tous les objets éditoriaux qui utilisent les liens de traduction.
On pourra donc écrire :

<BOUCLE_don(DONS){id_don}>
...
<BOUCLE_traduction(DONS){traduction}>
 #TITRE
</BOUCLE_traduction>
...
</BOUCLE_don>

Le statut de l’article

Comme toutes les boucles de SPIP, une boucle ARTICLES ne retourne que des articles publiés ; dans le cas où le site est réglé de manière à ne pas publier les articles « post-datés », un autre test est fait sur la date de l’article. Le critère {statut} permet d’autres sélections :

  • {statut IN prop,prepa,publie,refuse,poubelle} sélectionne les articles en fonction de leur statut de publication :
  • {statut=prepa} sélectionne les articles en cours de rédaction dans l’espace privé ;
  • {statut=prop} sélectionne les articles proposés à la publication ;
  • {statut=publie} sélectionne les articles publiés sur le site, y compris les articles « post-datés » ;
  • {statut=refuse} sélectionne les articles qui ont été refusés à la publication ;
  • {statut=poubelle} sélectionne les articles qui ont été mis à la poubelle.

Les critères d’affichage

Une fois fixé l’un des critères ci-dessus, on pourra ajouter les critères suivants pour restreindre le nombre d’éléments affichés.

Les critères communs à toutes les boucles s’appliquent évidemment.

Les balises de cette boucle

Les balises tirées de la base de données

Les balises suivantes correspondent aux éléments directement tirés de la base de données. Vous pouvez les utiliser également en tant que critère de classement (par exemple : {par date} ou {par titre}).

-  #CHAPO affiche le texte d’introduction (chapeau).

-  Les balises de dates : #DATE, #DATE_REDAC, #DATE_MODIF sont explicitées dans la documentation sur « La gestion des dates ».

-  #DESCRIPTIF affiche le champ descriptif.

-  #ID_ARTICLE affiche l’identifiant unique de l’article. Utile pour fabriquer des liens hypertextes non prévus (par exemple vers une page « Afficher au format impression »).

-  #ID_RUBRIQUE affiche l’identifiant de la rubrique dont dépend l’article.

-  #ID_SECTEUR affiche l’identifiant du secteur dont dépend l’article (le secteur étant la rubrique parente située à la racine du site).

-  #LANG affiche la langue de cet article.

-  #POPULARITE affiche le pourcentage de popularité de cet article ; voir la documentation : La « popularité » des articles.

-  #PS affiche le post-scriptum d’un article.

-  #SOUSTITRE affiche le soustitre.

-  #SURTITRE affiche le surtitre.

-  #TEXTE affiche le texte principal de l’article.

-  #TITRE affiche le titre de l’article.

Les balises #NOM_SITE et #URL_SITE affichent le nom et l’url du « lien hypertexte » associé à l’objet concerné.

-  #VISITES affiche le nombre total de visites sur cet article.

Les balises calculées par SPIP

Les éléments suivants sont calculés par SPIP (Ils ne peuvent pas être utilisés comme critère de classement).

-  #URL_ARTICLE affiche l’URL de la page de l’article.

-  #NOTES affiche les notes de bas de page (calculées à partir de l’analyse du texte).

-  #INTRODUCTION affiche le descriptif de l’article, sinon affiche les 600 premiers caractères du début de l’article (chapeau puis texte).

-  #LESAUTEURS affiche les auteurs de cet article, avec lien vers leur propre page publique (afin de pouvoir directement leur écrire ou de consulter la liste des articles qu’ils ont publié). Cela évite de créer une boucle AUTEURS pour obtenir le même résultat.

-  #PETITION affiche le texte de la pétition si elle existe.
Si elle existe mais que le texte est vide, retourne un espace (une chaîne non vide sans incidence dans une page html).

-  #FORMULAIRE_SIGNATURE fabrique et affiche le formulaire permettant de signer la pétition associée à cet article.

-  #FORMULAIRE_FORUM fabrique et affiche le formulaire permettant de poster un message répondant à cet article. Pour en savoir plus, voir aussi « Les formulaires ».

-  #PARAMETRES_FORUM fabrique et affiche la liste des variables exploitées par le formulaire permettant de répondre à cet article. Par exemple :

[<a href="spip.php?page=forum&(#PARAMETRES_FORUM)">Répondre à cet article</a>]

On peut aussi ajouter un paramètre supplémentaire pour spécifier l’adresse de retour après avoir posté le message.

[<a href="spip.php?page=forum&(#PARAMETRES_FORUM{#SELF})">Répondre à cet article</a>]

renverra le visiteur sur la page actuelle une fois que le message a été validé.

Les logos

-  #LOGO_ARTICLE affiche le logo de l’article, éventuellement avec la gestion du survol.
-  #LOGO_RUBRIQUE affiche le logo de la rubrique de l’article.
-  #LOGO_ARTICLE_RUBRIQUE affiche le logo de l’article, éventuellement remplacé par le logo de la rubrique s’il n’existe pas de logo spécifique à l’article.

Par ailleurs deux balises permettent de récupérer un seul des deux logos :
-  #LOGO_ARTICLE_NORMAL affiche le logo sans survol ;
-  #LOGO_ARTICLE_SURVOL affiche le logo de survol.

Voir aussi : syntaxe complète les balises #LOGO_XXX

Auteur L’équipe de SPIP Publié le : Mis à jour : 18/04/23

Traductions : عربي, català, Deutsch, English, Español, français, italiano, Nederlands, русский, українська