Structure d'un plugin
Organisation
Un plugin se présente sous la forme dâ??un ensemble de fichiers placés dans un répertoire portant le nom du plugin, lui-même stocké dans le répertoire tools du manageur. Cet ensemble se répartit en différentes parties :
- le(s) fichier(s) de scripts du plugin : au minimum composé par un fichier index.php.
- le fichier de description du plugin : le fichier desc.xml.
- le(s) fichier(s) de traduction du plugin : fichier(s) sous la forme nom_du_plugin.lang
- le(s) thème(s) graphique(s) du plugin : diverses images, en plus du icon.png.
L'organisation de ces fichiers se fait par la mise en place d'une arborescence particulière.
Arborescence
A l'intérieur du répertoire d'un plugin se trouvent au minimum deux sous-répertoires, lâun concernant les fichiers de localisation et lâautre contenant les thèmes associés à ceux du manageur. A l'instar de l'ensemble de l'interface d'administration de Plume CMS, le plugin peut donc disposer d'un autre thème graphique et de plusieurs traductions.
Si l'on prend le cas d'un plugin comportant juste une traduction française et n'ayant pas de thèmes graphiques particuliers, l'arborescence se présentera alors ainsi :
- /mon_plugin
- /locale
- /fr
- /themes
- /default
- /locale
Dans cet exemple, le sous répertoire /fr contient le fichier des traductions françaises du plugin. Le sous répertoire /default contient toutes les images utilisées par le plugin.
Cette arborescence comprendra en outre plusieurs fichiers nécessaires au bon fonctionnement du plugin. En voici la liste descriptive.
Le fichier "desc.xml"
Ce fichier est indispensable pour l'utilisation de votre plugin. Sans ce dernier, il n'apparaîtrait pas dans le menu Outils du manageur et serait donc inopérant.
Le fichier desc.xml permet non seulement de définir de manière compréhensible pour le manageur l'identité et les attributs du plugin, mais aussi d'en limiter l'accès à l'administrateur.
Voici un exemple de sa structure :
<?xml version="1.0" encoding="ISO-8859-1"?> <plugin name="mon_plugin" version="1.0" rootonly="false" active="true"> <author>Cédric Arrabie</author> <label>Maintenance</label> <desc>Maintenance.</desc> </plugin>
En plus de la déclaration xml précisant l'encodage utilisé, plusieurs paramètres sont à préciser :
- plugin name : le nom du plugin tel qu'il a été écrit pour le répertoire le contenant.
- version : indique le numéro de version du plugin.
- rootonly : si mis sur true, alors seul lâadministrateur du site du site peux lâexécuter.
- active : définit si le plugin est actif ou non
- author, label et desc se passent de commentaires, mais il est à noter que, la langue assumée par défaut étant lâanglais, ces champs seront en anglais, lâaffichage en bon français se faisant par le biais des locales.
Le fichier "icon.png"
A placer dans le répertoire /themes/default du plugin, cette image au format 32x32 px représentera graphiquement votre plugin dans la partie Outils du manageur et apparaîtra à côté de son nom.
Le fichier "*.lang"
Inclus dans un sous répertoire de /locale au nom du code ISO du pays, ce fichier va permettre à l'utilisateur de disposer d'une version traduite de l'interface.
Il sera nommé en fonction du nom donné au plugin.
Le fichier "index.php"
Ce fichier constitue l'élément actif du plugin car c'est dans celui-ci que se trouve son script principal. Ainsi lorsqu'un utilisateur souhaite utiliser un plugin, le manageur lancera le fichier index.php correspondant. C'est donc par l'intermédiaire de ce fichier que votre créativité de développeur va pouvoir s'exprimer, toutefois, si vous souhaitez par la suite faire profiter la communauté de votre travail, quelques points sont à prendre en compte :
- la gestion des textes de l'interface du plugin est confiée à la fonction d'internationalisation
__('texte'). - certaines fonctions PHP sensibles peuvent être desactivées chez certains hébergeur.
- il est préférable d'utiliser des classes plutôt que des fonctions.
Enfin n'oubliez pas qu'une abondance de commentaires dans le code ne nuit pas à son exécution et sera toujours appréciée.
Pages
- Introduction
- Structure d'un plugin
- Localisation du plugin
- Outils de rendu HTML
- Variables accessibles
Partagez vos idées sur cet article.


