Syntaxe des filtres

Les filtres s’appliquent sur les balises en utilisant le caractère « | » (pipe). En pratique, ils correspondent à l’appel d’une fonction PHP existante ou déclarée dans SPIP.

[(#BALISE|filtre)]
[(#BALISE|filtre{argument2, argument3, ...})]

Lorsqu’un filtre « x » est demandé, SPIP cherche une fonction nommée « filtre_x ». Si elle n’existe pas, il cherche « filtre_x_dist », puis « x ». Il exécute alors la fonction qu’il a trouvée avec les arguments transmis. Il est important de comprendre que le premier argument transmis au filtre (à la fonction PHP donc) est le résultat de l’élément à gauche du filtre.

Exemple

Insérer un élément title sur un lien. Pour cela, on utilise les filtres |couper, qui permet de couper un texte à la taille voulue, et |attribut_html, qui permet d’échapper les apostrophes qui pourraient gêner le code HTML généré (exemple : title='à tire d'ailes' poserait problème à cause de cette apostrophe.).

<a href="#URL_ARTICLE"[ title="(#TITRE|couper{80}|attribut_html)"]>Article suivant</a>

Le filtre |couper s’applique sur le résultat de la balise #TITRE, le filtre |attribut_html sur le résultat du filtre |couper. On peut donc chaîner les filtres.

[(#BALISE|filtre1|filtre2|filtre3)]

Auteur Matthieu Marcillaud Publié le : Mis à jour : 07/06/23

Traductions : English, français, Nederlands