Formation GLPI
1
Céline Gondot
2 SIO
Lycée de La Chataigneraie
2 Sommaire
I. GLPI
1. A quoi sert GLPI ?
2. Les fonctionnalités
3. La norme i18n
4. L’encodage UTF-8
II. Les plugins
1. A quoi sert un plugin ?
2. Les plugins de GLPI
3. Liens avec un plugin
4. Les versions
5. L’écriture
a. Les conventions de programmation
b. L’aspect
III. Mise en application
IV. Index
3 I. Présentation de GLPI
4 I. Présentation de GLPI
1. A quoi sert GLPI ?
Gestionnaire Libre de Parc Informatique
Application web codée en PHP
Projet communautaire 2003
Indepnet : Association à but non lucratif.
Objectif: promouvoir, démocratiser l’Internet contributif et non-marchand,
favoriser au sein d’un public large et non spécialiste l’émergence d’espaces
collaboratifs d’échange et de production d’information, développer l’usage des
Nouvelles technologies de l’information au service d’initiatives citoyennes et de
solidarités militantes.
5 I. Présentation de GLPI
2. Les fonctionnalités
Différentes fonctionnalités:
Inventaire:
Ordinateurs
Périphériques
Réseaux
Consommables
Affectation matérielle par zone géographique par groupe d’utilisateurs et par
utilisateur
Interface permettant à l’utilisateur final de déposer une demande d’intervention
Réservation de matériel
Génération de rapports à propos du matériel, d réseau et des interventions
6 I. Présentation de GLPI
2. Les fonctionnalités
Différentes fonctionnalités:
Différentes gestions:
Licences et dates d’expiration
Informations administratives et financières
Etat matériel
Demandes d’interventions pour tout type de matériel de l’inventaire
Conventions de services
Planning et export pour assistant personnel
Entreprise, contrats, documents liés aux éléments de l’inventaire
Systèmes de base de connaissances hiérarchiques
FAQ publique et/ou privée
7 I. Présentation de GLPI
3. La norme i18n
Convention pour le nommage des fichiers de langue : norme i18n
Internationalization
18: 18 lettres entre le i et le n
Permet à une application, un script ou un programme d’être indépendant
de la notion de langage, d’alphabet, de temps, de devise monétaire etc.
Fr_FR: le français de France
Dans le fichier, les libellés sont stockés dans un tableau
$LANG[‘<plugin_name>’][‘title’][0]=’’mon titre’’;
$LANG[‘<plugin_name>’][‘myplugin’][1]=’’libellé 1’’;
$LANG[‘<plugin_name>’][‘myplugin’][2]=’’libellé 2’’;
Même convention pour les plugins
8 I. Présentation de GLPI
4. Encodage UTF-8
Fichier de langue correspond à la langue courante de l’utilisateur
Chargé automatiquement
Si il n’existe pas dans GLPI, il chargera de manière successive, le fichier de
la langue par défaut, de l’anglais puis du français.
9 II. Présentation des plugins
1. A quoi sert un plugin ?
Complète un logiciel hôte
Apporte de nouvelles fonctionnalités
Ne peut pas fonctionner seul
Auteurs plugin ≠ Auteurs logiciel hôte
Logiciel hôte: conçut pour communiquer avec des programmes extérieurs
selon certaines règles à respecter afin d’échanger des informations
Objectifs des auteurs de plugin:
Ajouter fonctionnalités sans tout reprogrammer
Permettre à l’utilisateur d’ajouter lui-même ses propres fonctionnalités
indépendantes
Logiciel hôte peut évoluer en restant compatible avec le plugin existant
10 II. Présentation des plugins
2. Les plugins de GLPI
Ajouts des fonctionnalités: Traitements personnalisés sur des éléments
existants, l’ajout de nouveaux objets d’inventaires, l’import de données
extérieures dans les champs de GLPI
Possède sa propre gestion de droits par profil: Droits du cœur de GLPI +
Droits du plugin
Ne modifie pas les tables appartenant à GLPI, ajoute ses propres tables
11 II. Présentation des plugins
3. Liens avec un plugin
On peut lier le plugin avec:
Des actions ou des objets du cœur de GLPI:
Historique
Réservations
Déclarations des tickets
Documents/Notes
Informations financières
D’autres objets du cœur (liaison entre l’objet du cœur de GLPI et celui du plugin)
Liaison inter-plugins
12 II. Présentations des plugins
4. Versions de plugins
Gestion de version
But: Créer un système de versions de plugins standard et normalisé
Version: composée de 3 chiffres
Premier chiffre: Modification majeure du code
Second chiffre: Nouvelles fonctionnalités ou modifications qui nécessite
une modification du schéma de la base de données
Troisième chiffre: Correction des bugs
Pour GLPI:
Si il y a évolution de version => 1.1.0
Si il y a évolution(s) majeure(s) =>2.0.0
13 II. Présentation des plugins
5. Ecriture d’un plugin
Le plugin se présente sous forme de dossier à ajouter dans le répertoire
« plugins » de l’arborescence de GLPI
Le nom doit comporter que des caractères alphanumériques.
Il doit contenir tous les fichiers PHP
Le plugin ajoute des tables dans la base de données pour gérer ses propres
données ou d’en écrire dans les tables déjà existantes.
14 II. Présentation des plugins
5. a) Les conventions de programmation
Nom de tables:
glpi_plugin_<plugin_name>_XXXX
Pour les tables de type dropdown
glpi_dropdown_plugin_<plugin_name>_XXXX
Gestion des noms de fonctions
Classe: class Plugin<Plugin_name>_XXXX
Fonction: function plugin_<plugin_name>_<function>
15 II. Présentation des plugins
5. a) Les conventions de programmation
L’arborescence des fichiers:
Un répertoire « locales » : dictionnaires
Type: fr_FR.php / en_EN.php
Un répertoire « docs »
[Link], [Link], [Link], [Link]
Un répertoire « inc »: classes et fonctions
Fonction: plugin_<plugin_name>.[Link]
Classe: plugin_<plugin_name>.[Link]
Un répertoire « front »: formulaires
Formulaire création/édition d’un objet: plugin_<plugin_name>.<object>.[Link]
Affichage d’un moteur de recherche associé à un objet: plugin_<plugin_name>.php
16 II. Présentation des plugins
5. a)Les conventions de programmation
Un répertoire « pics »: images
Un répertoire « ajax »: tout fichier qui touchent à l’ajax (affichage onglets)
A la racine
Obligatoire
[Link]
[Link]
Facultatif
[Link]
Si le plugin doit créer des fichiers temporaires
Création dans le répertoire « files » de GLPI sous files/_plugins/<plugin_name>
Penser à créer ce répertoire lors de l’installation du plugin et à le supprimer lors
de sa suppression.
17 II. Présentation des plugins
5. b) Aspect des plugins
Reprendre les classes de mise en forme déjà définies et utilisées dans GLPI.
Fichiers CSS
18 III. Mise en application
Création d’un ticket: Ajouter un ticket:
19 III. Mise en application
20 III. Mise en application
21 IV. Index
Hook: permet à l’utilisateur de personnaliser le fonctionnement du logiciel.
Il peut se présenter sous forme d’un fichier, dans un langage de script,
localisé à un endroit spécialisé. Le programme principale impose
généralement les caractéristique du hook: type, localisation, nom, moment
de l’exécution. Par défaut il est généralement vide, les fonctionnalités de
base seulement sont exécutés. Il fait réaliser des actions supplémentaires à
des moments déterminés.
API: Application Programming Interface. C’est l’interface de
programmation, une suite formalisée de classes, méthodes ou fonctions
offertes par une bibliothèque logicielle ou un service web. Elle sert de
façade par laquelle un logiciel offre des services à d’autres logiciels.
22 IV. Index
Ajax: Asynchronous JavaScript and XML. C’est une architecture
informatique qui permet de construire des applications web et des sites
web dynamiques, interactifs sur le poste client en se servant de différentes
technologies ajoutées aux navigateurs web entre 1995 et 2005.
UTF-8: UCS Transformation Format 8 bits. Codage de caractères
informatiques conçu pour coder l’ensemble des caractères internationaux
d’Unicode, en restant compatible avec la norme ASCII. Il s’agit de coder
les caractères Unicode sous forme de séquences de un à quatre codets
(groupe d’ éléments représentant une donnée élémentaire selon un code)
de un octet chacun.
23