Utiliser des fonctions PHP pour filtrer une balise SPIP

jeudi 20 septembre 2007

SPIP / PHP / filtres

Sur la page de documentation des filtres de SPIP, il est indiqué que :

« Les filtres de SPIP sont des fonctions PHP qui reçoivent la balise sur laquelle ils sont appliqués en premier paramètre et retournent le texte à afficher. Vous pouvez utiliser directement les fonctions habituelles de PHP, mais également créer les vôtres. »

On peut donc faire ce qui suit pour afficher le nombre de caractères renvoyés par la balise #TEXTE :

[(#TEXTE|textebrut|strlen)]

Ce code applique d’abord le filtre textebrut à la balise pour supprimer les balises HTML du texte. Puis on applique la fonction PHP strlen qui permet de renvoyer le nombre de caractères d’une chaîne.

Ce genre de code est pratique si vous n’avez pas besoin d’appliquer de fonctions complexes sous formes de filtre. Une autre solution est de se fabriquer un filtre "maison" dans un fichier mes_fonctions.php à placer dans le dossier squelettes.

Merci Fil ;)

Vos commentaires

  • bruno d’istanbul

    Mais peut-on utiliser des fonctions dans les conditions d’une boucle spip (je veux par exemple ne garder que les articles dont le titre commence par ’fiche’, puis-je écrire entre accolades substr(titre,0,5)="fiche" ???)

    merci

    Bruno

    1er novembre 2007, 18:41

  • bb

    Bonjour Bruno,

    Tu peux sélectionner les articles dont le titre commence par "fiche" en te servant d’une expression régulière comme ceci :

    {titre==^[fiche]}

    Sur la page de documentation de spip.net on peut lire ceci :

    le terme de comparaison « == » introduit une comparaison selon une expression régulière

    Bon courage ++

    3 novembre 2007, 16:58

Répondre à cet article

Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.