Comprendre le fonctionnement du plugin

  un survol introductif au source d’un plugin


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.

Néanmoins, 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 comprendre, voire modifier [1] son comportement..

 
 
 
 
 
 
 
 

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

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 [3] 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 [4] 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à une bonne part du premier fichier à regarder, qui est paquet-xml (en SPIP 2, c’était plugin.xml, 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, ..)

 Personnaliser un plugin

Cette facette -implicite dans SPIP- est sans doute le point le plus important, caché et original dans la structure de développement et d’utilisation de SPIP.
L’architecture modulaire du CMS propose un modèle de développement en programmation multi-couches, très facilement surchargeable à tous niveaux, exactement de la meme façon que le core de SPIP.

 Les ajouts à l’interface privée

SPIP est un CMS géré.... en SPIP : toute l’interface de SPIP est donc gérée en squelettes et formulaires SPIP, qui sont accessibles :
- soit par écrans supplémentaires, correspondant à des boutons d’appel nouveaux dans les menus
- soit par insertion directe (par l’intermédiaire de pipelines), dans les écrans du privé déjà existants


Merci de nous signaler les coquilles ou erreurs qui figureraient dans cette page.

[1Chez vous d’abord ! voir les notions de surcharge des fonctions.

[2Comme souvent tout developpeur, ladoc n’est pas encore faite avant de coder, mais ne sera jamais faite après les tests..

[3Visible en ligne, voir ci-dessous !

[4son prefixe plus précisément, nom normalisé qui servira aussi aux noms de fonctions utilisées, comme au dossier de chargement sous votre ./plugins ..

[5Chez vous d’abord ! voir les notions de surcharge des fonctions.


Liens visibles seulement pour les inscrits.

Article publié le 11 mars 2014, et actualisé en avril 2016 .

Répondre à cet article