Sous SPIP, forcer le calcul d’une balise et l’afficher plus tard

S

Découvrez comment j’ai résolu un problème d’affichage en double des notes dans SPIP, tout en gardant un ordre logique dans mon squelette. Une astuce simple qui change tout !

Solution propre pour éviter l’affichage des notes en double.

Récemment, j’ai rencontré un petit casse-tête dans SPIP en ajoutant un champ personnalisé #ABSTRACT à l’objet éditorial article. Tout fonctionnait à merveille, sauf lorsque ce champ comportait un appel de note. À ma grande surprise, la note apparaissait deux fois en bas de la page dans mon squelette article.html ! 😲

Après quelques recherches, j’ai compris que cette anomalie ne venait pas d’un double appel à #NOTES, mais du mécanisme interne de collecte des notes dans SPIP.

Dans SPIP, la collecte des notes est cumulative pour toute la page en cours de calcul. Chaque fois qu’un champ est traité typographiquement (passage par le filtre interne « propre »), les notes qu’il contient sont ajoutées à une pile globale. Cette pile n’est pas réinitialisée entre les champs.

Si un même contenu est traité deux fois au cours du calcul de la page, ses notes peuvent donc être collectées deux fois.

Dans mon cas, l’ordre des balises était :

#TEXTE
#ABSTRACT
#NOTES

Première parade (ancienne configuration)

Il y a deux ans, dans une configuration plus simple de mon squelette, j’avais résolu le problème en forçant un premier calcul silencieux des notes grâce au filtre :

[(#NOTES|couper0)]

Ce filtre déclenche le calcul des notes sans les afficher. Le squelette devenait :

#TEXTE
[(#NOTES|couper0)]
#ABSTRACT
#NOTES

Et cela suffisait.

Mais dans ma configuration actuelle de article.html, cette parade ne fonctionnait plus correctement. Le problème ne venait plus seulement de l’ordre des balises.

Seconde parade (configuration actuelle)

En analysant plus finement le squelette, j’ai constaté qu’un autre champ, affiché en amont, pouvait lui aussi déclencher un traitement typographique. Même vide, #DESCRIPTIF était susceptible d’être traité et donc de participer à la mécanique de collecte.

Or dans SPIP, ce n’est pas #NOTES qui analyse le texte : il affiche simplement ce qui a été collecté (et cumulé) lors des traitements précédents.

La solution structurelle a donc consisté à empêcher #DESCRIPTIF de passer par le traitement typographique automatique :

(#DESCRIPTIF*|textebrut)

L’étoile empêche le traitement standard, et |textebrut affiche le contenu sans typographie. Ainsi, aucun recensement parasite des notes ne peut se produire à ce stade.

Résultat

Les notes ne sont plus collectées deux fois. L’ordre logique des balises est respecté. Et le squelette reste propre.

Deux configurations différentes, deux parades … et une meilleure compréhension des entrailles de SPIP au passage [1].

__________

[1À preuve le fait que ces notes ne sont plus affichées en double  !

En résumé

Découvrez comment forcer le calcul des notes dans SPIP sans les afficher immédiatement, grâce à un filtre simple et efficace. Une solution qui évite les notes en double tout en conservant l’ordre logique d’affichage.[[ Résumé rédigé avec l’aide d’une IA.]] — Résumé généré par l’IA.


À propos de l' auteur

Olivier Delhaye

Professionnel de l’enseignement supérieur avec plus de 35 ans d’expérience en linguistique, expert en méthodologie d’enseignement des langues et évaluation des compétences. Co-fondateur du Méthodal OpenLab, auteur et consultant en éducation linguistique.

Lien vers Page perso

Pour citer ce billet aux normes APA7 :

Delhaye, O. (2026). Sous SPIP, forcer le calcul d’une balise et l’afficher plus tard.  Gallika.net. https://gallika.net/?article979.

Envoyer un commentaire

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Par Olivier Delhaye
Aucun commentaire
Un blog désormais conçu pour la lecture et la réflexion : peu d’images, un maximum d’idées.
Try Typology theme now for free! Just enter your email and get access to your test website immediately.

* Do not worry, we won't spam.

-->