Accueil du site - Spip

Le Plugin "Chercher squelette"

Publié le vendredi 3 mars 2006.


ATTENTION : Cet article est mis à jour sur SPIP-contrib

A partir de la version 1.9 il est possible d’enrichir Spip gràce à des "Plugins". Cet article illustre ce principe avec l’exemple du Plugin "chercher squelette" de Pierre Andrews, qui fonctionne déjà avec Spip 1.9 version alpha.

La fonction de ce Plugin est de sélectionner le "bon" squelette quand il y a plusieurs possibilités. Par exemple quand il existe un squelette d’article album et un squelette d’article ordinaire. Cette fonction existe déjà dans Spip avec des numéros de rubriques mais pas avec des mot-clés. Le plugin va ajouter cette nouveauté en se substituant à Spip pour la partie recherche de squelette.

La sélection de squelette par mot-clé peut toujours se faire avec une boucle (voir ici comment), mais le Plugin est plus performant. D’un point de vue mise en place, il faut troquer la boucle traditionnelle contre une approche intallation et configuration du Plugin.

Le Plugin en action lors d’un appel de page

Lorsqu’un article, par exemple, est demandé , le plugin fonctionne comme ceci ;

- 1) s’il existe un fichier "article=10.html" et que l’article demandé se trouve dans la rubrique N° 10, alors ce fichier sera retenu comme squelette

- 2) s’il existe un fichier "article-10.html" et que l’article demandé se trouve dans la rubrique N° 10 ou encore dans une de ses sous-rubriques sans limitation de profondeur, alors ce fichier sera retenu comme squelette

- 3) s’il existe un fichier "article-album.html" et que l’article demandé est lié à un mot-clé album reconnu comme sélecteur de squelette, alors ce fichier sera retenu comme squelette

- 4) s’il existe un fichier "article-album.html" et que l’article demandé se trouve dans une rubrique ou encore dans une de ses sous-rubriques sans limitation de profondeur, qui est liée à un mot-clé album reconnu comme sélecteur de squelette, alors ce fichier sera retenu comme squelette

- 5) si rien n’a été retenu jusqu’ici, "article.html" sera l’élu

La recherche s’effectue dans l’ordre précédent en respectant la logique qui a toujours prévalu avant 1.9 : le plugin ajoute simplement les étapes 3 et 4, avec une même notation qui évite les duplications ou renommages de fichiers squelette.

De plus, le Plugin prend en considération la langue du site ; ainsi pour le Français, il retiendra article-album.fr.html de préférence à article-album.html suivant la notation habituelle de Spip pour les suffixes de langue.

La mise en oeuvre du Plugin par le Webmestre

On suppose que notre squelette d’album est en place (/squelettes/article-album.html), et que le mot clé album a été créé avec possibilité d’être associé à des articles ou à des rubriques.

Au départ, le Plugin se présente sous la forme d’un répertoire que l’on devra placer dans le dossier plugins à la racine du site Spip : /plugins/chercher_squelettes_mots Ici, sur Spip.zone, le dernier zip (celui ci contient d’autres Plugins).

L’étape suivante consiste à activer le Plugin, ce qui est fait au moyen du bouton de gestion de Plugin qu’on trouve dans la partie privée de Spip (à partir de 1.9).

Page de configuration

Le premier effet de cette activation est que l’on voit apparaître un nouvel onglet dans la page de configuration du site. C’est par lui qu’on va pouvoir déclarer les mot-clé reconnus par le Plugin [1]. Tant que rien n’est configuré le Plugin passera de l’étape 2 à l’étape 5, comme le ferait la fonction "chercher squelette" du noyau, puisque le Plugin a pris la main sur Spip pour la recherche du bon squelette (second effet de l’activation).

Il est temps d’entrer une "règle" dans le configurateur du Plugin. Celle-ci permet de déclarer "album" comme mot-clé sélecteur de squelette en lui associant un "type", ici article [2]. En fait une règle associe un groupe de mot à un type. L’exemple qui suit montre que le Plugin détecte 2 mots-clés dans le groupe : album et toto par affichage des fichiers correspondants en vert ou en rouge pour ceux qui n’existent pas.

JPEG - 24.8 ko
Les règles dans la page de configuration

On pourra ajouter autant de régles qu’on veut à supposer qu’on a créé les squelettes et mot-clés correspondants. Le reste relève alors des rédacteurs qui n’ont plus qu’à ajouter le mot-clé album aux articles ou aux rubriques qu’ils souhaitent.

On a vu que le mot-clé est associé à un article (le type) dans une règle, alors qu’il peut être ajouté indifféremment à des rubriques ou à des articles. Bien que le rédacteur n’ait aucune visibilité sur le configurateur, il doit comprendre qu’un mot-clé sélecteur appliqué sur une rubrique aura un effet sur la présentation de ses articles car, comme Mr. Jourdain, il manipule des squelettes sans le savoir. Si cette logique est trop déroutante, l’administrateur peut toujours restreindre le champ d’application du mot-clé aux seuls articles. [3]

Raffinement supplémentaire, l’administrateur peut préciser le "fond" (préfixe du squelette) dans une règle. Pour article-album.html c’est "article" mais on pourrait mettre "rubrique", ce qui serait inutilement trompeur pour une règle d’article, mais pourrait marcher car le Plugin sait bien, par la règle, quel est le type. Ce raffinement peut être vu comme une complication, mais cela à l’avantage de faire accepter les règles pour des squelettes d’inclusion (des bouts de squelette donc) et pas seulement sur des squelettes complets.

Le Plugin est developpé et maintenu sur Spip.zone. On accède aux sources par svn ou via cette adresse

On peut aussi récupérer le "zip du jour" qui contient tous les plugins de Spip-zone.

[1] Le Plugin mémorise les informations de configuration dans la base SQL (table meta déjà utilisée par Spip)

[2] Cette information de type indique au Plugin quelle est la table de mot visée . Le Plugin connait 4 types : article, rubrique, brèves et sites.

[3] Cette problématique n’est d’ailleurs pas propre au plugin puisqu’elle existait déjà avec les notations article=xx.html et article-xx.html.


Répondre à cet article