Pourquoi et quand faire un plugin ?

Il est nécessaire de faire un plugin lorsque :
  • l'on désire gérer des objets d'inventaire supplémentaires ou des champs supplémentaires sur des objets existants
  • l'on veut modifier certains comportements standards de GLPI (bloquer la modification de certains champs, chercher des données dans une source externe, etc)

Quelles sont les fonctionnalités apportées par un plugin ?

Comment développer un plugin ?

Comment rendre disponible son plugin ?

Il suffit de demander l'ouverture d'un projet sur la forge des plugins en envoyant un email sur la mailing list glpi-dev AT gna.org (en précisant un nom court de 20 caracrtères maximum sans espace).
Une fois celui-ci créé, vous aurez tout loisir de gérer son évolution comme vous le souhaitez :
  • svn propre au projet (plugin)
  • wiki
  • annonces
  • publication de fichiers
  • ajout de personnes dans l'équipe du projet

Comment voir son plugin publié sur le catalogue ?

Il suffit :
  • de rajouter à la racine du svn du plugin un fichier XML (voir plus bas)
  • de rajouter à la racine du svn du plugin un logo en png 100*100 max et avec fond transparent.
  • d'envoyer un email sur la mailing list glpi-dev AT gna.org afin de demander l'ajout du plugin au catalogue
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <name>Plugin name </name>
   <key>uniquekeyduplugin</key>
   <state>stable</state>
    <logo>https://forge.indepnet.net/svn/pluginname/logo_pluginname.png</logo>
   <description>
      <short>
         <fr><![CDATA[texte court décrivant le plugin ]]></fr>
         <en></en>
      </short>
      <long>
         <fr><![CDATA[texte long décrivant le plugin ]]></fr>
         <en></en>
      </long>
   </description>
   <homepage>https://forge.indepnet.net/projects/show/pluginname/</homepage>
   <download>https://forge.indepnet.net/projects/list_files/pluginname</download>
   <authors>
      <author>Michel Dupont </author>
      <author>Mike Durand </author>
   </authors>
   <versions>
   <version>
          <num>3.0.0</num>
          <compatibility>0.72</compatibility>
      </version>

      <version>
          <num>2.0.0</num>
          <compatibility>0.71</compatibility>
      </version>

      <version>
          <num>1.0.0</num>
          <compatibility>0.65</compatibility>
      </version>

   </versions>
   <langs>
      <lang>fr_FR</lang>
      <lang>en_GB</lang>
   </langs>
   <license><![CDATA[GPL v2+]]></license>
   <tags>
         <fr>
            <tag>réseau</tag>
            <tag>Graphique</tag>
         </fr>
         <en>
            <tag>network</tag>
            <tag>Graph</tag>
         </en>
   </tags>
</root>

Attention pour les versions Il ne sera affichée dans le catalogue que les deux premières. Il faut donc remplir dans l'ordre antichronologique.

  • Liste des tags suggérés en / fr (possibilités d'en mettre d'autres personnalisés)
    • Entities / entités
    • Environment / environnement
    • Import / import
    • Miscellaneous / divers <----- Déconseillé : mettre d'autres tags personnalisés
    • Helpdesk / Helpdesk
    • Reports / Rapports
    • Network / réseau
  • Liste des champs triables / filtrables dans le catalogue
    • category
    • lang
    • compatibility
    • state
  • Liste des champs obligatoires
    • name
    • key (doit être unique dans tout le catalogue et ne doit jamais changer)
    • state (stable ou test)
    • description short
    • download
    • version
    • lang (1 minimum / 5 max)
    • tags [ 1 min / 5 max)