SPIP-Contrib

SPIP-Contrib

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

290 Plugins, 198 contribs sur SPIP-Zone, 86 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 ?
  • [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 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

  • Menu animé déroulant

    16 août 2015 – 60 commentaires

    Barre de menu dynamique multi niveaux - adaptation aisée (?) des couleurs et dimensions - convient aussi aux petits écrans (mobiles).

  • Réservations multiples

    4 juillet – commentaires

    Permettre aux utilisateurs d’effectuer de réservations multiples (réserver pour plusieurs personnes à la fois ou réserver un événement plusieurs fois) Dépendances Saisies Réservation d’événements Introduction Il y a deux manières de multiplier les (...)

  • PHANTOM (HTML5UP)

    18 juillet – 32 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 (...)

  • SPIPer Ipsum, l’évangile au quotidien

    28 décembre 2009 – 89 commentaires

    Ce plugin permet d’afficher les différentes lectures de l’évangile du jour et le saint du jour selon le calendrier fixé par l’Eglise catholique. Ce service est proposé par le site de L’Evangile au Quotidien dans plusieurs langues. Description Le (...)

  • ciparam : plugin « Configurateur de squelettes »

    29 novembre 2010 – 15 commentaires

    Ce plugin offre un mécanisme de sélection de forme de rubrique ou d’article, un mécanisme de variantes de chartes graphiques, la possibilité de choisir l’ordre de tri des articles dans les rubriques, un mécanisme de paramétrage de la page d’accueil, (...)