Mise en oeuvre de la balise #PIPELINE

Permet, d’insérer du code à-peu-près là où on le souhaite dans un squelette.

La balise #PIPELINE, qui existe depuis plus d’un an est restée plutôt discrète. Elle permet, d’insérer du code à-peu-près là où on le souhaite dans un squelette.

Les pipelines

Tout d’abord il est bon de se remémorer le principe des pipelines. Il a été introduit un système de points d’entrée, aussi appelé « pipeline », permettant de glisser un calcul supplémentaire, ou une information différente à l’endroit désiré dans le code de SPIP.

Le point d’entrée est donc le moyen d’indiquer à SPIP quel est ce calcul et où il entre en ligne de compte [1]

Voir : http://doc.spip.org/@Tuto-Se-servir...

Il existe donc une liste de points d’entrées prédéfinis, mais il peut arriver que l’on ait besoin d’en créer de supplémentaires.

Voir : http://www.spip-blog.net/Balise-PIP...

Un exemple d’implémentation

Je vous présente un exemple d’implémentation d’un nouveau pipeline. Celui-ci permettra d’afficher la boussole de SPIP, cf. http://www.spip-contrib.net

Pour plus d’explications sur la création d’un plugin, cf. : Création d’un plugin

le fichier plugin.xml à créer

<plugin>
    <nom>Boussole</nom>
    <auteur></auteur>
    <version>0.2</version>
    <etat>dev</etat>
    <description>
    Rajoute la boussole Spip dans le code de Spip
    </description>    <prefix>boussole</prefix>
    <pipeline>
			<nom>insert_head</nom>
			<action>insert_head</action>
			<inclure>boussole.php</inclure>
    </pipeline>
    <pipeline>
			<nom>insert_boussole</nom>
			<action>insert_boussole</action>
			<inclure>boussole.php</inclure>
    </pipeline>
	
</plugin>

Il est fait usage ici de deux pipelines :

-  # insert_head : qui permet de rajouter du code entre les balises html <head> et </head> qui ici appellera le fichier css nécessaire.
-  # insert_boussole : ce pipeline est donc créé par ce plugin. Il permettra d’insérer dans le code de SPIP le code permettant d’afficher la boussole.

Dans le fichier boussole.php, on trouvera le code suivant :
function boussole_insert_boussole($flux)

Le nom de la fonction est composé ainsi :
-  boussole, qui est le préfixe du plugin
-  insert_boussole, le nom du nouveau pipeline

Il ne reste maintenant qu’à rajouter l’appel de ce nouveau pipeline dans le code de SPIP à l’endroit où l’on désire. Pour cela il suffit de rajouter #PIPELINE{insert_boussole} insert_boussole étant le nom du nouveau pipeline.

Le plugin : http://spip.jermer.fr/?La-boussole-...

Notes

[1Nota SPIP_Contrib :
-  voir cet article pour plus d’explications SPIP 1.9 - Les Plugins
-  cette liste de pipelines est évolutive aussi regardez dans « inc_version.php » et cherchez $spip_pipeline et vous trouverez une liste à jour.

Discussion

Une discussion

  • 3

    En fait si je comprend, la philosophie est la même que la notion de modèle, mais au lieu d’un modèle, c’est un plugin ...
    Tout dépend des besoins ;
    si un modèle est suffisant, pas besoin d’un plugin pour enserrer quelques chose dans un article par exemple

    • Non, il ne s’agit pas ici de comparer modèle et plugin, mais de montrer comment, si le besoin s’en fait sentir, utiliser la possibilité de création d’un nouveau pipeline.

      Un modèle lui, peut s’utiliser en insertion dans un article ou bien appelé depuis un squelette. Je te renvoie à la lecture de spip.net
      -  si tu ne veux plus l’utiliser, il te faudra ou modifier tes (ton) squelettes, ou modifier tes (ton) articles.
      -  l’utilisation de #PIPELINE{ton_pipeline} se gère depuis l’interface de gestion des plugins. (on/off). Une case à cocher/décocher.

      La souplesse de spip est en effet les différentes possibilités qui sont offertes pour effectuer parfois la même action. L’imagination ders utilisateurs fait le reste.

    • dans le debut de ton article, tu dis bien que tu inserre ta balise Spip dans un article ;
      donc comme je le disais, c’est comme un modele ou une balise simple de spip ou que tu as créé.

      C’est vrai que si tu retire le plugin dans l’administration, on a pas besoin de retoucher au squelette, alors qu’avec un modele il faudra le faire

      Cordialement

    • Jacques J.

      Effectivement il y a une petite confusion de ta part. Je cite « Permet, d’insérer du code à-peu-près là où on le souhaite dans un squelette ».

      Dans un article, un modèle suffirait, sachant quand même qu’un modèle peut bien évidemment se gérer avec un plugin.

      L’utilité d’un tel pipeline est peut-être discutable, mais ce n’est pas l’objet de cet article, qui se veut juste de vulgarisation. La discussion sur ce thème est à faire auprès des créateurs de la balise #PIPELINE

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom