Les plugins de GLPI. Les plugins de GLPI permettent d ajouter les fonctionnalités suivantes :



Documents pareils
Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

TP 7, 8 & 9 : Installation et Gestion de GLPI et Télédéploiement SISR 1 HUBERT JULIEN LABBE RICHARD DAY MICKAEL DOGNY CHRISTOPHE

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

GLPI Les entités. Dans l exemple ci-dessous, GLPI gère une structure répartie sur trois pays, eux-mêmes structurés par villes ou par région / villes.

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Ecriture d'un Plugin pour GLPI

Mise à jour : Octobre 2011

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

Préparation d un serveur Apache pour Zend Framework

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Groupe Eyrolles, 2003, ISBN : X

équipement radio Procédure

Créer un site e-commerce avec Dreamweaver CS4 et PHP/MySQL

SIO-SISR : Projet GSB. LOT 1 : Evaluation d un logiciel d inventaire et de gestion de parc. BTS Services Informatiques aux Organisations 1 ère année

Formats de fichiers adaptés à l'archivage électronique à moyen et long terme

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

Manuel du composant CKForms Version 1.3.2

Armand PY-PATINEC 2010

Installation et configuration d OCS/GLPI sur un Serveur Debian

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Google Merchant Center

Plateforme de capture et d analyse de sites Web AspirWeb

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Programmation Web. Madalina Croitoru IUT Montpellier

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Introduction à. Oracle Application Express

FICHE TECHNIQUE. Secondaire et postsecondaire

Système de Gestion de Ressources

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

CAHIER DES CHARGES CREATION / AMELIORATION SITE INTERNET

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Formation : WEbMaster

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Petite définition : Présentation :

INFORMATIONS ET INSTALLATION DU THEME CENATA RESPONSIVE

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Catalogue Formations Jalios

PHP 5.4 Développez un site web dynamique et interactif

Conférence Développeurs Magento. 27 novembre 2013 mageconf.org

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Devenez un véritable développeur web en 3 mois!

BES WEBDEVELOPER ACTIVITÉ RÔLE

Présentation du Framework BootstrapTwitter

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

EQUINIX CUSTOMER PORTAL VERSION 3.1 AMÉLIORATIONS FONCTIONNELLES POUR LA RÉGION AMÉRIQUE

KWISATZ MODULE PRESTASHOP

Rapport de stage Clément MOYSAN

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

Association UNIFORES 23, Rue du Cercler LIMOGES

Wix : mettre en place un site d e commerce

Créer une page Google+ Pro internet.com

MANUEL DE L UTILISATEUR

Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Situation présente et devis technique

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Groupe Eyrolles, 2004 ISBN :

Manuel utilisateur Portail SAP

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

Avertissement. La Gestion Electronique de Documents

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

CAHIER DES CHARGES SITE WEB : Steve Mind Magicien Close-up & Mentaliste - 1 -

Manuel d utilisation du site web de l ONRN

CAHIER DES CLAUSES TECHNIQUES PARTICULIÈRES (CCTP) MISE EN PLACE ET MAINTENANCE D UN MOTEUR DE RECHERCHE

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Rapport journalier. Le stage va se découper en 2 parties : 3 premières semaines :

Banque de données d offres & carte web interactive d offres

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Joomla! Création et administration d'un site web - Version numérique

ACCUEIL - P. 5 DEMANDES DE PAIEMENT - P. 8

1/15. Jean Bernard CRAMPES Daniel VIELLE

Utilisation de Zimbra 1 / 103

Annexe : La Programmation Informatique

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Formation. Module WEB 4.1. Support de cours

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento 1.4 et supérieur. Version 1.5.1

MailStore Server 7 Caractéristiques techniques

Transcription:

Céline Gondot Stage 1 ère année BTS SIO Les plugins de GLPI. Document annexe : Fichier XML Les plugins de GLPI permettent d ajouter les fonctionnalités suivantes : Les traitements personnalisés sur les éléments existants L ajout de nouveaux objets d inventaires L import de données extérieures dans les champs de GLPI. Un mécanisme de hooks (décrochages) est fournis par le cœur de GLPI, ce sont des mécanismes pour : Interagir avec des évènements standards du Framework GLPI : création/modification/suppression/purge/restauration Afficher des informations dans l interface utilisateur de GLPI : nouveaux onglets dans des objets existants, actions massives, rapports/statistiques Ajouter des tâches planifiées via le cron GLPI Créer des notifications supplémentaires Un plugin peut posséder sa propre gestion de droits par profils. Il enrichit la collection de droits pour un profil défini dans le cœur de GLPI. C'est-à-dire qu il y les droits concernant le cœur du GLPI, plus les droits du plugin. On peut lier un plugin avec : Des actions ou des objets du cœur du GLPI : o Historique : gestions de l historisation/ affichage de l historique avec l utilisation du formulaire du cœur o Réservations : gestion des réservations depuis le cœur o Déclaration de tickets : création/ affichage des tickets sur un objet d un plugin géré par le cœur o Documents

o Notes o Informations financières D autres objets du cœur (gestion à l intérieur du plugin de la liaison entre l objet du cœur et celui du plugin) Liaison inter-plugin, c'est-à-dire les liaisons entre les plugins Le plugin ne modifie pas les tables appartenant au cœur de GLPI, en revanche il peut ajouter ses propres tables si besoin. Framework : kit de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d une partie d un logiciel. Il est donc conçu et utilisé pour modeler l architecture des logiciels applicatifs, des applications web et des composants logiciels. Il est acquis par les ingénieurs, puis incorporés dans les logiciels applicatifs mis sur le marché. Hook : permet à l utilisateur d un logiciel de personnaliser le fonctionnement du logiciel. Pour ce faire, il lui fait réaliser des actions supplémentaires à des moments déterminés. Il peut se présenter sous la forme d un fichier, dans un langage de script, localisé à un endroit particulier. Le programme principal impose généralement les caractéristiques du hook : son type, sa localisation, voire son nom et le moment auquel il sera exécuté. Par défaut, le hook est en général vide, seul les fonctionnalités de base sont exécutées. Cron GLPI : GLPI réalise les tâches automatiquement tant qu il y a une activité sur l application. Il existe une gestion de version des plugins. Le but est de créer un système de version de plugins standard et normalisé. La version doit être composée de 3 chiffres. Généralement la première version est 1.0.0. Le premier chiffre représente la modification majeure du code. Le second chiffre représente les nouvelles fonctionnalités ou modifications qui nécessitent une modification au schéma de la base de données. Le troisième chiffre correspond à la correction des bugs Un plugin a un cycle de vie. La première version stable doit être 1.0.0 Lors de la première correction de bug la version est 1.0.1 La première évolution est 1.1.0 La première évolution majeure est 2.0.0

Pour GLPI s il y a une évolution la version deviendra 1.1.0 et s il s agit d évolution (s) majeure (s) ce sera 2.0.0. Ecriture d un plugin. Il existe une certaine façon pour écrire des plugins pour GLPI. Il se présente sous forme de dossier que l on doit ajouter dans le répertoire plugins de l arborescence de GLPI. Ce dossier devra contenir tous les fichiers PHP. Le nom du répertoire ne doit comporter que des caractères alphanumériques. Le plugin ne fait qu ajouter des tables dans la base de données MySQL, afin de gérer ses propres données ou alors d écrire des données dans des tables déjà existantes (par l API du cœur de GLPI). API : Application Programming Interface. C est une interface de programmation, c'est-à-dire une suite formalisée de classes, des 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. Les conventions de programmation. Le nom des tables : Doit respecter la règle suivante : glpi_plugin_<plugin_name>_xxxx Pour les tables de type dropdown (liste des valeurs), la règle est la suivante : glpi_dropdown_plugin_<plugin_name>_xxxx Respect de l arborescence des fichiers du plugin : Un répertoire «locales» : dictionnaires o Type : fr_fr.php / en_gb.php Un répertoire «docs» : o Readme.txt, Lisezmoi.txt, Roadmap.txt, Changelog.txt Un répertoire «inc» : classes et fonctions o Fonctions : plugin_<plugin_name>.db.function.php o Classes : plugin_<plugin_name>.db.class.php Un répertoire «front» : formulaires o Formulaire de création / édition d un objet : plugin_<plugin_name>.<object>.form.php o Affichage du moteur de recherche associé à un objet : plugin_<plugin_name>.php Un répertoire «pics» : images Un répertoire «ajax» : tout fichier qui touchent à l ajax (affichage onglets)

A la racine : o Obligatoire : o Facultatif : hook.php setup.php index.php Si le plugin doit créer des fichiers temporaires o Création dans le répertoire files de GLPI sous files/_plugins/<plugin_name> o Penser à créer le répertoire files/_plugin/<plugin_name> lors de l installation du plugin et à la supprimer lors de sa suppression. Ceci permet d éviter la gestion des droits à chaque release du plugin. Les droits s appliqueront lors de l installation ou de la mise à jour de GLPI. 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. Gestion des noms de fonctions o Classe : class Plugin<Plugin_name>XXXX o Fonction: function plugin_<plugin_name>_<fonction> Look et aspect des plugins Pour que les plugins s intègrent correctement dans le GLPI au niveau de l image, il est conseillé de reprendre les classes de mise en forme déjà définies et utilisées dans GLPI. Ces classes se trouvent dans les fichiers CSS de GLPI. Structures des fichiers de base du plugin et la définition des hooks GLPI Lorsqu un plugin n est pas installé, ses fichiers ne sont pas chargés. Lors de son installation les fichiers setup.php et hook.php sont chargés. C est le cœur du GLPI qui gère l installation et la désinstallation du plugin. Pour ce faire, le cœur appelle des fonctions se trouvant dans le fichier hook.php. Les textes du plugin qui seront affichés dans GLPI devront être externalisés dans un fichier, afin qu ils puissent traduire l interface. Les fichiers de langues se trouvent dans le répertoire «locales». La convention pour le nommage des fichiers de langue est le même que celui de GLPI et utilise la norme i18n.

Norme i18n : i18n signifie internationalization. Le chiffre 18 car il y a 18 lettres entre le i et le n d internationalization. Cette norme permet à une application, un script ou un programme d être indépendant de la notion de langage, d alphabet, de temps, de devises monétaires etc. Exemples : o fr_fr : le français de France o en_gb : pour l anglais d Angleterre o es_es : pour l espagnol d Espagne Dans le fichier, les libellés sont stockés dans un tableau : $LANG[ <plugin_name> ][ titile ][0]= mon titre ; $LANG[ <plugin_name> ][ myplugin ][1]= libellé 1 ; $LANG[ <plugin_name> ][ myplugin ][2]= libellé 2 ; Encodage UTF-8 Le fichier de langue correspondant à la langue courante de l utilisateur sera chargé automatiquement. Si elle n existe pas dans GLPI, il tentera de charger successivement, le fichier de la langue par défaut, de l anglais puis du français. UTF-8 : (UCS transformation format 8 bits) est un codage de caractères informatique 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. Squelette d une page affichée dans GLPI Une page qui est dans GLPI ou dans l un de ses plugins doit définir au minimum : o la constante GLPI_ROOT contenant le chemin vers la racine de GLPI : define ( GLPI_ROOT,../.. ) ; o les includes: include (GLPI_ROOT. /inc/includes.php ) Si l on souhaite utiliser les fonctions des objets de GLPI, il faut définir avant l inclusion de /inc/define.php un tableau $NEEDED_ITEMS, qui contient la liste des fonctions d objets GLPI à charger. Cette liste contient les appels de fonctions suivantes : o La fonction commonheader affiche l entête d une page GLPI, menu compris. Elle prend en paramètre minimum le titre de la page. o La fonction commonfooter affiche le pied de page par défaut d une page GLPI.

o Les autres affichages de la page se font entre la fonction commonheader et commonfooter. Il existe des cas particuliers pour les posts et formulaire : o La fonction glpi_header redirige la page vers une autre page. Elle prend en paramètre l URL de la page cible. o Mettre les includes dans le fichier hook.php, ce qui permettra à la fonction useplugin (<plugin_name>, true) de charger tous les fichiers inc du plugin ainsi que le hook. Le but étant de limiter le chargement excessif d include dans le setup.php. CommonDBTM Si l on définit un nouveau type, il faut aussi définir la classe associée à ce nouveau type. Elle doit hériter de la classe CommonDBTM qui permet de s abstraire de tous les accès direct à la base de données. Définition minimale : class PluginExample extends CommonDBTM { }; function plugin_example () { } $this->table= glpi_plugin_example ; $this -> type=plugin_example_type; Pour rendre son plugin disponible il faut 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 caractères maximum sans espace). Une fois que le projet est créé, nous pouvons gérer son évolution comme nous le souhaitons : Svn propre au projet (plugin) Wiki Annonces Publications de fichiers Ajout de personnes dans l équipe du projet Svn : Subversion. C est un système de gestion de version. Il permet de gérer les versions d un fichier source et de garder un historique de toutes ces versions. Il permet aussi de travailler en collaboration sur le même projet.

Wiki : c est un site web dont les pages peuvent être modifiées par les visiteurs, pour permettre l écriture et l illustration collaboratives des documents numériques qu il contient. Ce site utilise un langage de balisage et son contenu peut être modifié au moyen d un navigateur. Voir son plugin quand il est publié sur le catalogue Lorsque notre plugin est publié sur le catalogue, il nous est possible de le voir. Pour ce faire il faut : Rajouter à la racine du svn du plugin : o Un fichier XML o Un logo en png 100*100 maximum et un fond transparent Envoyer un email sur la mailing list glpi-dev AT gna.org afin de demander l ajout du plugin au catalogue. Png : (Portable Network Graphics) est un format ouvert d image numériques qui a été crée pour remplacer le format GIF. C est un format non destructeur et il est adapté pour publier des images simples comprenant des aplats de couleurs il a été normalisé par l ISO(Organisation Internationale de normalisation), (ISO/CEI 15948 :2004). Document réalisé le 27 Mai. Modifié le 28 Mai.

Document annexe : Le fichier XML : <?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>