SPIP : Créer de nouvelles syntaxes

SPIP

Au départ lorsque j’ai utilisé SPIP, j’ai trouvé ça plutôt sommaire, approximatif et pas trés sophistiqué pour tout dire.

En réalité, plus ça va plus je pense qu’il y a du génie dans les choses simples et qui font vraiment ce qu’on attend. Le système de typos SPIP est excellent à mon point de vue parcequ’il permet à un utilisateur lamda de faire des pages propres (trés important) sans avoir à se poser trop de questions.

Ceci-dit il arrive un point où il faut pouvoir faire un peu plus que des intertitres, du gras, du souligné, etc. Dans ce cas, il est possible de créer de nouvelles syntaxes sans même devoir modifier le noyau SPIP.

L’objectif : nous voulons que SPIP interprète la syntaxe {{{{mon titre de paragraphe}}}} et qu’il soit affiché de cette manière : <h4>mon titre de paragraphe</h4>.

SPIP prévoit un fichier qui permet d’ajouter ses propres fonctions pour créer des filtres sur mesure, “mes_fonctions.php“, situé dans le répertoire qui contient les squelettes (dist). Si le fichier mes_fonctions.php n’existe pas, il suffit de le créer.

Dans ce fichier nous allons créer une fonction “avant_propre” qui sera appellée par SPIP avant d’interpréter le texte des articles. SPIP passe en paramètre à cette fonction le texte des articles, nous allons ainsi pouvoir grâce à une expression régulière interpréter notre syntaxe pour la transformer en un titre de niveau 4.

function avant_propre($texte) { 
  $texte = preg_replace('/[{]{4}([^}]+)[}]{4}/i', '<h4>$1</h4>', $texte); 
  return  $texte; 
}

Le code de la fonction ci-dessus interprète simmplement un texte entre 2 groupes de 4 accolades {{{{mon texte}}}} comme un titre de niveau 4.

L’exemple est assez sommaire mais ça peut donner des idées. Les possibilités de personnalisation deviennent infinies. Dernière remarque au sujet des expressions régulières, pour ce genre de choses et tout un tas d’autres trucs c’est l’outil incontournable (je connais des gens qui vivent trés heureux sans mais ils ne sont pas développeurs) !

2 réponses à “SPIP : Créer de nouvelles syntaxes”

  1. Réflexe - le blog » Blog Archive » Le site web de la ville de Tours respecte les standards dit :

    […] Créer des syntaxe complémentaires […]

  2. Réflexe - le blog » Blog Archive » SPIP : Créer des filtres dit :

    […] Créer des syntaxe complémentaires […]

Laisser un commentaire

Enter the following characters/numbers into the box below, please!
Sample verification