Pourquoi réaliser un plugin ?

Adapter SPIP à ses propres besoins

SPIP met en place tout un formalisme pour permettre une modification et une extension harmonieuse du code. La principale avancée se situe dans la possibilité de "greffer" (et de retirer la greffe quand on le souhaite sans avoir touché le code de notre SPIP tout neuf) des améliorations et des modifications aussi diverses que variées. Les possibilités sont tellement vastes que toute la question est maintenant de savoir comment faciliter l’installation, tant pour soi-même que pour une distribution publique, de toutes ces personnalisations.

Techniquement, l’introduction des plugins a permis d’ouvrir les possibilités suivantes :
-  tous les fichiers du noyau sont surchargeables [1] et toutes les fonctions appelables systématiquement [2],
-  une interface d’application (API) est maintenue par la définition d’un certain nombre de points d’entrée dans le code.

On a besoin de réaliser un plugin dans quatre cas :

-  Fonctions et options : réaliser son premier plugin, migrer et rendre portables ses fonctions et ses options pour soi ou pour les autres.

-  Les points d’entrée : injecter, le temps d’activation d’un plugin, du code au coeur de SPIP et modifier profondément son fonctionnement.

-  Modifier les fichiers natifs : en l’absence de point d’entrée, modifier des parties du code de SPIP sans intervenir concrètement sur le noyau.

-  Réecrire son propre code : inventer son propre script que l’on greffera sur SPIP.

Si vous n’avez aucun de ces objectifs en tête, ne vous bilez pas avec les pages suivantes :) Cependant, vous serez probablement intéressé par ce que peuvent vous fournir des plugins distribuées librement.

Notes

[1Surcharger un fichier consiste à multiplier la lecture d’un fichier afin de lui faire prendre la dernière valeur lue. De façon très schématique, si vous surcharger un fichier qui a pour valeur "Bonjour" avec un fichier qui a pour valeur "Bonsoir", l’écran affichera "Bonsoir" et non "Bonjour".

[2Vous pouvez appeler à partir de n’importe quel fichier une fonction déjà existante, pour autant que vous ayez inclus en début de fichier le fichier qui contient la fonction que vous voulez utiliser. Ceci est particulièrement puissant, car les concepteurs de SPIP ont réalisé beaucoup de fonctions qui sont autant de routines que vous n’aurez pas à reprogrammer. On peut citer en exemple lire_fichier (qui lit un fichier), ecrire_fichier (qui écrit un fichier), preg_files (qui cherche un fichier), toutes les requetes sql et des dizaines de fonctions qui sont simplifiées au possible grâce à des routines contenues dans le code source de SPIP. Voir la doc du code pour en savoir plus.

On trouvera une liste conséquente de plugins disponibles (dont il sera possible d’étudier le code)

Auteur James Publié le : Mis à jour : 21/10/22

Traductions : català, corsu, English, Español, français, italiano, Nederlands