Nous voici maintenant dans l’étape numéro 2 de la création d’un plugin pour Spip.
Dans cet article, nous allons voir qu’est ce qu’un pipeline, comment fonctionne-t-il et quand l’utiliser.
Un pipeline se définit dans le fichier plugin.xml du plugin, et est un point d’entrée dans le labyrinthe de code de Spip. Les développeurs de Spip ont choisi de créer ces points d’entrées, pour que le développeur de plugins n’ait pas à aller gratter partout. Ces points d’entrées permettent d’insérer du code, des fonctions à des endroits précis.
Il se définit comme cela :
<pipeline>
<nom>point_entree</nom>
<action>fonction</action>
<inclure>fichier.php</inclure>
</pipeline>
<pipeline> : est une balise qui contient elle-même les 3 balises suivantes et dont on se sert pour insérer du code php dans l’un des points d’entrée de spip , par exemple, pour ajouter un élément graphique dans l’interface privée, ou un traitement du texte via l’application d’un raccourci.
<nom> : contient le nom du point d’entrée au niveau duquel le plugin agira.
<action> : contient le nom de la fonction (sans son préfixe !)
<inclure> : contient le nom du fichier dans lequel sera défini la fonction qui devra, elle, avoir strictement pour nom : préfixe_action.
En fait, la fonction php appelée par le pipeline, va recevoir comme argument un flux. Elle peut suivant les besoins le traiter, y ajouter des informations et le renvoyer modifié.
Dans la suite de cet article, je vais reprendre un tableau trouvé sur le site doc.spip.org
| affichage_final |
Site Public |
effectuer des calculs supplémentaires sur le contenu de la page calculée, juste avant son affichage. Hors cache, donc. |
| affiche_droite |
Espace privé |
| affiche_gauche |
Espace privé |
| affiche_milieu |
Espace privé |
| ajouter_boutons |
Espace privé |
Ce sont les boutons qui sont tout en haut du site, (A suivre, édition, forum, ...) |
| ajouter_onglets |
Espace privé |
Ce sont les sous menus des boutons, par exemple tous vos articles et mots clés pour le bouton édition |
| header_prive |
Espace privé |
ajoute une ou des lignes de votre choix à l’intérieur de la balise html head des pages de l’espace privé |
| nettoyer_raccourcis_typo |
Texte traiter une chaine avant d’être envoyé à la fonction couper() ??? |
| pre_enregistre_contenu |
Tache de fond |
| pre_indexation |
Tache de fond |
| pre_syndication |
Tache de fond |
| post_syndication |
Tache de fond |
| taches_generales_cron |
Tache de fond |
| traiter_raccourci_lien |
Texte |
- Les points d’entrées de Typographie
- Ce sont les plus simples à mettre en œuvre. Ils sont les successeurs des fonctions avant_propre(), apres_typo() etc...
- Les points d’entrées de Tache de fond
- Description, conditions particulières.
- Les points d’entrées du Site Public
- Description, conditions particulières.
- Les points d’entrées de l’Espace privé
- Description, conditions particulières.