SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

290 Plugins, 198 contribs sur SPIP-Zone, 93 visiteurs en ce moment

Accueil > Outils pour plugins > Tutoriaux pour Plugins > SystemeDePlugin

SystemeDePlugin

24 octobre 2006

0 vote

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Le système de plugin a été réintroduit dans la version 1.9alpha Il remplace l’ancien système de plugins qui avait été testé pendant la phase de dévelopement de la 1.8 puis enlevé (voir OldSystemDePlugin)

Installer les plugins

La description du fonctionnement du systeme de plugin est applicable a partir de la release 5616

Activer la gestion des Plugins
La gestion est active a partir du moment ou un repertoire ’plugins’ existe a la racine du site (a cote de ecrire, IMG, dist ...)
Le bouton d’administration des plugins est dans le menu Configuration, et n’apparait que lorsque l’interface complète est selectionnée, pour les administrateurs uniquement.

Installer un plugin
Les plugins sont pour le moment disponibles sur spip-zone dans le repertoire _plugins_
Avec svn vous pouvez faire un checkout de _plugins_ sur votre repertoire local plugins pour installer tout les plugins disponibles, ou copier simplement les dossiers de plugins qui vous interessent dans votre dossier plugins
L’installation dans le dossier n’active pas le plugin.

Activer un plugin
Dans le menu Configuration, Administration des Plugin
SPIP detecte alors tous les plugins installes et en affiche la liste.
Sur chaque plugin, un > basculant permet de faire apparaitre les details concernant le plugin en question (version, repertoire, auteur, description, lien vers la home page du plugin )
Cocher la case ’Activer le plugin’ pour activer un plugin et valider.
Quand plusieurs plugins sont actifs, ils apparaisent dans l’ordre de chargement. Il est possible de modifier cet ordre avec les fleches monter et descendre. Le changement concerne toutes les fonctions des plugins.
Quand plusieurs plugins interviennent sur le meme traitement (ajouter des icones, formatage du texte ...) ils sont appliques dans l’ordre indique par le tableau.
Dans certains cas il peut donc etre utile de modifier cet ordre. Ceci n’est pas gere automatiquement a ce jour.

Quand tout est plante
L’activation des plugins passe par une phase de verification minimale de conformite (declarations suffisantes, presence des fichiers a inclure ...) mais tout n’est pas verifiable simplement. Il est donc possible qu’un plugin indelicat (surtout dans cette periode de developpement ou les seuls plugins dispo sont en pleine evolution) genere une erreur definitive.
Pour recuperer la main (desactiver manuellement un plugin malgre l’interface plantee), il suffit de renommer le dossier du plugin, ou de supprimer les scripts charger_plugin_xxx.php du repertoire data, puis de retourner dans le panneau de configuration des plugins.

Creer son plugin

Comment créer son plugin :
Creer un dossier ’monplugin’ dans le repertoire plugins.
Le plugin sera reconnu par SPIP a l’aide de son fichier de description plugin.xml :

<plugin>
        <nom> <!-- Nom du plugin -->
        Rien
        </nom>
        <auteur>        <!-- Auteur du plugin -->
        _fil_
        </auteur>
        <version>
        0.1
        </version>
        <etat>
        test
        </etat>
        <description>
        Le seul plugin spip au monde qui ne fait rien, mais qui le fait bien !
        </description>
        <options> <!-- fichier charge a chaque hit -->
        mes_options.php
        </options>
        <fonctions> <!-- fichier charge a chaque recalul de page -->
        mes_fonctions.php
        </fonctions>
        <!-- classe d'implementation : espace de nommage qui prefixera les appels de fonction
        sur le mode Rien::
        ainsi les fonctions hors espace de nommage ne peuvent etre appelees
        ce parametre est obligatoire et doit etre non vide
        -->
        <prefix>
        Rien
        </prefix>
        <!-- Definitions des fonctions qui s'inserent dans les pipelines -->
        <pipeline>
                <nom>post_propre</nom>
                <action>leFiltre</action>
        </pipeline>
        <pipeline>
                <nom>ajouter_boutons</nom>
                <action>ajouterBoutons</action>
                <inclure>Rien.php</inclure>
        </pipeline>
        <pipeline>
                <nom>ajouter_onglets</nom>
                <action>ajouterOnglets</action>
                <inclure>Rien.php</inclure>
        </pipeline>
        <!-- Le parametre action est facultatif : en son absence la methode de la classe portant le nom du pipeline est appelee. Le parametre inclure est facultatif.        -->
</plugin>

Balises de description :

  • <nom> permet de definir le nom du plugin tel qu’apparaissant dans le panneau de configuration
  • <version> permet de donner le numero de version du plugin
  • <etat> permet de definir l’etat du plugin, parmi dev (developpement), experimental, test, stable
  • <auteur> permet de renseigner le ou les auteurs du plugin. Vous pouvez utiliser les raccourcis typo et chaine de langue dans ce champ
  • <description> permet de decrire ce que fait le plugin. Vous pouvez utiliser les raccourcis typo et chaine de langue dans ce champ
  • <lien> permet de donner un lien html vers la homepage du plugin qui donne plus d’information sur son fonctionnement

Balises d’implementation :

  • <options> permet de definir un fichier qui sera charge a chaque hit, comme l’etait le fichier mes_options.php
  • <fonctions> permet de definir un fichier qui sera charge a chaque recalcul de page, comme l’etait le fichier mes_fonctions.php
  • <prefix> permet de definir le nom des prefixes de fonction definies par le plugin. Pour des raisons de cohabitation saine avec ses petits copains plugins, toutes les fonctions propres a votre plugin devront commencer par ce prefixe. Regardez les exemples du plugin Rien pour voir comment faire. La seule contrainte est de prefixer les declarations de fonction et d’ecrire vos appels de fonction sur le mode $truc = Rien_ma_fonction($val);.
  • <pipeline> permet de definir un point d’insertion du plugin dans un pipeline de traitement. Pour cela on utilise les tags suivants :
    • <nom> donne le nom du pipeline ou inserer l’appel au plugin
    • <action> donne le nom de la fonction a appeler (sans le prefixe qui sera ajoute automatiquement par SPIP)
    • <inclure> donne le nom d’un fichier a inclure pour que la fonction soit disponible

Les tags <nom>, <version> et <prefix> sont obligatoires. Les autres sont facultatifs.
Il n’est pas autorise d’utiliser un nom de fonction identique au nom de prefixe (La fonction Rien_rien() sera refusee parce que c’est comme ca - pour les curieux je peux raconter l’histoire... -), ni d’utiliser noms les fonctions install, uninstall et configure qui sont reserves pour des evolutions que vous devinez deja.

Pour des raisons de performance, il est conseille de decouper proprement les fonctions de son plugin dans des fichiers separes, afin que seules les fonctions requises soient chargees lors des include.

Et pour plus de reponses a vos questions n’hesitez pas a regarder tous les exemples disponibles sur la zone.

Pour plus d’information, voir :

Listes des pipelines

Cf. Tuto : Se servir des points d’entrée pour modifier un comportement de spip sur le site de doc

  • delete_tables ???
  • ajouter_boutons ajoute un bouton dans la barre de bouton. Prend en paramètre un tableau qu’il modifie et retourne :
  • ajouter_onglets ajoute un onglet sur une page. prend un tableau de paramètre en entré :
    • ’data’=> le tableau d’onglets,
    • ’args’=> le nom de la page depuis laquelle se fait l’appel
  • pre_indexation ??
  • pre_syndication ??
  • post_syndication ??
  • pre_typo voir PointsEntreeIncTexte
  • post_typo voir PointsEntreeIncTexte
  • pre_propre voir PointsEntreeIncTexte
  • post_propre voir PointsEntreeIncTexte
  • yen manque

Dernière modification de cette page le 5 mars 2007

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • PHANTOM (HTML5UP)

    18 juillet – commentaires

    Squelette SPIP pour intégrer le modèle Phantom de HTML5UP. https://html5up.net/phantom Installation A l’activation, le plugin installe aussi les plugins suivants : crayons, favicon, metasplus+, Couleur d’objet, champs extras, SPIP reset centre (...)

  • Galleria (fr)

    16 novembre 2011 – 192 commentaires

    Une galerie d’image qui utilise la librairie javascript Galleria. Description Ce plugin vous permet d’ajouter des galeries d’images à vos articles. La galerie créée utilise la librairie javascript Galleria. Le plugin propose un modèle nommé (...)

  • ScolaSPIP 4

    19 janvier 2016 – 371 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • Newsletters

    16 janvier 2013 – 474 commentaires

    Ce plugin permet de composer des Info-lettres. Par info-lettre, on désigne ici le contenu éditorial qui va être composé et envoyé par courriel à une liste d’inscrits. Le plugin permet de composer une info-lettre à partir d’un modèle pré-composé, (...)

  • SPIP 3.2, Agenda et FullCalendar

    6 juin – 16 commentaires

    Nous avions publié un article sur la manière d’utiliser FullCalendar avec SPIP 3.0 afin d’afficher des évènements sous forme d’Agenda. La version de FullCalendar a changé avec SPIP 3.2. Le présent article est donc un tutoriel adapté à SPIP 3.2. Pour (...)