Spiponoscope - Mise en plugin

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

Trouvant la contribution de Mailou : http://www.spip-contrib.net/Le-Spiponoscope , pour la création d’un modèle permettant l’affichage d’un trombinoscope des auteurs du site intéressante et utile, j’ai donc mis en plugin le Spiponoscope, cela permet d’utiliser plus facilement le modèle de Mailou et de montrer également la démarche pour la réalisation d’un plugin simple.

Avant de commencer vous pouvez lire cet article qui permet de saisir les bases de création de plugin :
http://www.spip.net/fr_article3448.html

Le plugin Spiponoscope comporte 4 répertoires ( entre accolades )et 6 fichiers.

{{spiponoscope}}
|-- {{contenu}}
|   <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+LS0gcGFnZS1zcGlwb25vc2NvcGUuaHRtbA0KfC0tIHt7Y3NzfX0NCnw8L2NvZGU+"></span>-- spiponoscope.css
|-- {{images}}
|   <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+LS0gc3BpcG9ub3Njb3BlLnBuZw0KfC0tIHt7bW9kZWxlc319DQp8PC9jb2RlPg=="></span>-- auteurstous.html
|-- plugin.xml
`-- spiponoscope_pipelines.php

D’abord la création du fichier plugin.xml à la racine du répertoire du plugin.

<plugin>
	<nom>Spiponoscope</nom>
	<auteur>mailou</auteur>
	<version>0.5</version>
	<etat>test</etat>
	<icon>images/spiponoscope.png</icon>
	<description>Permet d'obtenir un trombinoscope des auteurs du site</description>
	<lien>http://www.spip-contrib.net/Le-Spiponoscope</lien>
	<licence>GPL 3.0</licence>
	<prefix>spiponoscope</prefix>
	<options></options>
	<fonctions></fonctions>
	<pipeline>
		<nom>insert_head</nom>
		<inclure>spiponoscope_pipelines.php</inclure>
	</pipeline>
</plugin>

Pour avoir des informations sur les balises de ce fichier :
http://doc.spip.org/@Plugin-xml

Toute les balises sont compréhensibles mise à part la balise nom et inclure contenu dans <pipeline>, les balises pipelines permettent d’insérer des fonctions et fichiers à certains endroits du code de SPIP, voir cette documentation pour de plus amples informations :
http://doc.spip.org/@Les-points-d-entree-pipelines

Donc ce plugin insère le fichier spiponoscope_pipelines.php qui se trouve aussi à la racine du plugin.

<?php

	function spiponoscope_insert_head($flux){
		$flux .= '<link rel="stylesheet" href="' .find_in_path( 'css/spiponoscope.css'). '" type="text/css" />'  . "\n";
		return $flux;
}

?>

La fonction spiponoscope_insert_head contenu dans ce fichier, insert donc dans l’entête du site public du code (la ligne permettant de prendre en compte la feuille de style CSS du spiponoscope pour la mise en page du modèle ).

Les répertoires du plugin :

css :

La feuille de style spiponoscope.css citée plus haut dans le code du pipeline est rangée dans un répertoire CSS.

contenu(facultatif) :

le fichier page-spiponoscope.html :
afin d’avoir un compatibilité avec un squelette Zpip permettant de faire un lien vers le trombinoscope grâce à un lien de ce genre :

http://adresse_du_site.org/spip.php?page=spiponoscope

images(facultatif) :

Contient l’icône spiponoscope.png pour le plugin, facultatif donc.

modeles :

Le fichier auteurstous.html
Contient le code de Mailou récupérant les auteurs, leur biographie et leurs photos (logo de l’auteur en fait).

<B_auteurs_tous>
<ul class="liste auteurs auteurtous">
<BOUCLE_auteurs_tous(AUTEURS){tous}>
<li class="item auteur [(#COMPTEUR_BOUCLE|alterner{'first','', ''})]">
  <h1 class="#EDIT{qui} fn"><a href="#URL_AUTEUR">#NOM</a></h1>
  [(#LOGO_AUTEUR||image_reduire{80,80})]
  [<div class="#EDIT{bio} texte note">(#BIO)</div>]
</li></BOUCLE_auteurs_tous>
</ul>
</B_auteurs_tous>

Une fois les répertoires et fichiers crées, vous pouvez zipper l’ensemble et le mettre à disposition de la communauté SPIP par exemple sur spip-contrib, créer un compte, grâce à ce compte vous pourrez faire une fiche concernant votre plugin et lié votre zip du plugin en document joint.

Si vous souhaitez en plus faire participez des personnes au développement de votre plugin, vous pouvez utilisez un des outils mis à disposition des développeurs SPIP, il s’agit de Subversion (SVN), pour cela demandez un compte sur la liste spip-zone ( http://listes.rezo.net/mailman/listinfo/spip-zone ) et suivez ce tutoriel :
http://www.spip-contrib.net/Publier-son-projet-via-SVN

Discussion

4 discussions

  • 2

    Bonjour,
    Je viens d’installer un spip2.1.8 tout neuf, et le plugin ne fonctionne pas, il semble en désaccord avec la dernière version de spip, y a-t-il quelque chose à faire ?
    Merci

    • Salut Mailou,

      Effectivement il y a de la mise à jour à faire, en faites il faut installer Zpip pour pouvoir avoir la page spip.php ?page=spiponoscope en non plus spip.php ?page=page-spiponoscope , c’est ça qui a changé.

      Bonne soirée.
      Nicolas.

    • Bonjour Boyquotes,
      Toujours la même série d’erreur, si tu pouvais modifier le plugin ce serait mieux, y a quand même un truc que je ne comprends pas, pourquoi sur mon site perso la mise à jour du site de 2.1.2 en 2.1.8 n’a pas affecté le fonctionnement et l’installation directe en 2.1.8 empêche le fonctionnement.
      Merci
      @+

    Répondre à ce message

  • Metalrod11

    Salut,

    Quelqu’un a essayé de faire ma même chose en prenant en compte les champs du plugin Inscription2 ?

    A +

    Répondre à ce message

  • Bonjour à tous,
    Je suis vraiment heureux d’avoir contribué à quelque chose d’utile, je l’utilise désormais, bien mieux que ma contribution et si ce plugin était intégré au couteau suisse, est-ce possible ?
    Bien sûr, mon niveau ne me permet pas ça.
    @+

    Répondre à ce message

  • Félicitation, très pratique, j’ai fais un essai et ça marche bien.

    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