Carnet Wiki

Comprendre le fonctionnement d’un plugin

Version 2 — Mars 2014 YannX

Les plugins fournissent « clés en mains » des fonctionnalités complémentaires, souvent paramétrables, spécifiques à des usages particuliers, ou étendant les possibilités du core, prêtes à l’emploi et sans nécessiter de développement ou de codage de la part du Webmestre.

Neanmoins, c’est du SPIP (squelettes et pipelines essentiellement), donc modifiable, si on sait par où regarder : voici quelques pistes pour découvrir (entre la zone, plugins et Contrib) les entrailles d’un plugin que vous utilisez déjà, mais vous voudriez modifier [1] ..

Le premier principe est toujours vrai : RTFM (en bon français : « va lire cette foutue documentation » si elle existe !)

Pour la trouver, ce doit être un article, souvent à Rechercher sur Contrib, en général le lien <documentation> est défini dans le code source [2] du plugin, et référencé sur la page de présentation de http://plugins.spip.net/.

Mais si la page de documentation explique souvent l’usage courant, le fonctionnement interne (en particulier les tables et meta ajoutées -pour la sauvegarde-, ou les droits d’accès -pour les autorisations par statuts d’auteurs-..) sont rarement explicitées, même si la lecture du forum des commentaires apporte souvent des éléments intéressants...

Si vous voulez aller plus loin, il va falloir Lire le source du plugin, objectif de cette information !

Accéder au source d’un plugin

Produit libre et ouvert, le source de SPIP est totalement lisible, en ligne et avec une interface Web simpliste, bienvenue sur la Zone.

Pour le plugin [3] Pour le < code>plugin</code > qui nous intéresse, allons directement au lien correspondant à la racine : http://zone.spip.org/trac/spip-zone/browser/_plugins_/nom_du_plugin/.
Normalement vous devriez même immédiatement rajouter le qualificatif trunk pour rentrer dans le dossier contenant la version active, mais tous les plugins ne sont pas (encore) rangés selon cette norme...

Comme vous avez utilisé (et donc installé) ce plugin, vous connaissez déjà dejà une bonne part du premier fichier à regarder, qui est [paquet-xml->http://plugins http://plugins .spip.net/redaction-du-paquet-xml.html] html (en SPIP 2, c’etait [plugin.xml->html" class="spip_url spip_out auto" rel="nofollow external">http://plugins.spip.net/redaction-du-plugin-xml.html], avec une syntaxe légèrement différente) : vous y noterez le prefixe, puis vous étudierez :
-  les boutons (quand un plugin ajoute des fonctionnalités en espace privé)
-  la configuration (désormais un simple formulaire en HTML) avec les casier métas de destination
-  la déclaration d’objets en base de données
-  les autorisations d’utilisation en fonction de l’auteur connecté
-  les formulaires CVT éventuels pour comprendre les écrans,
-  les pipelines magiciens qui surchargent les écrans ou l’exécution
-  les dépendances à des plugins utilisés ou nécessaires,
car certains traitements sont en fait décrits par un autre plugin (typiquement Facteur, Cextras, ..
), avec une syntaxe légerement différente) :