Principe général de fonctionnement

Ce plugin permet l'ajout de nouveaux types d'objets d'inventaires, et leur intégration dans les fonctionnalités de GLPI :
  • gestion par entité avec ou sans récursivité
  • recherches
  • gabarits
  • historique
  • intégration helpdesk
  • intégration plugin d'injection de fichiers CSV (version 1.7.1 minimum)
  • intégration plugin de désinstallation de matériels (version 1.3.0 minimum)
  • intégration plugin Génération de numéros d'inventaires (version 1.3.0 minimum)

Installation du plugin

Une fois l'archive décompressée et le répertoire genericobject déposé dans <glpi>/plugins, il suffit d'aller dans le menu "Configuration -> Plugins" puis d'installer et d'activer le plugin.

Création d'un nouvel objet

Afin de pouvoir utiliser un nouvel objet d'inventaire, il faut d'abord définir les propriétés de son type. Pour cela, il faut tout d'abord définir ce type en cliquant sur le bouton d'ajout depuis le menu de configuration du plugin.

  • Il est nécessaire de saisir un nom pour le nouveau type d'objet : celui-ci doit-être en minuscule, et ne comporter que des lettres.
  • Un numéro interne de type d'objet est généré par le plugin.
  • Le libellé du type est par défaut le même que son nom. Il est possible de le modifier (voir paragraphe suivant)
  • Une fois le type défini, il suffit de l'activer pour qu'il soit utilisable

Modification du libellé de type

Il est possible de modifier le libellé du type d'objet en ajoutant un fichier de langue dans l'arborescence du plugin. Cela permet de gérer l'utilisation multilangue.

Ce fichier doit s'appeler :
  • pour la langue française : <installation glpi>/plugins/genericobject/objects/<nom du type>/<nom du type>.fr_FR.php
  • pour la langue anglaise : <installation glpi>/plugins/genericobject/objects/<nom du type>/<nom du type>.en_GB.php

Il doit contenir :

<?php
$LANG['genericobject']['<nom du type>'][1] = '<libellé du type>';
?>

Comportement

Une fois le type créé, il est désormais possible de règler le comportement de celui-ci par rapport au moteur de GLPI. En effet, il apparaîtra de la même manière qu'un ordinateur ou un périphérique dans la gestion de l'application.
L'onglet Comportement permet de définir :
  • Entités : indique si le type d'objet doit-être attaché à une entité
  • Sous-entités : indique si l'objet (à condition qu'il soit rattaché à une entité) peut-être visible dans les sous-entités
  • Helpdesk : indique si le nouveau type d'objet peut-être utilisé dans le hepldesk (visible dans 'mes matériels' ou 'tous les matériels')
  • Corbeille : indique si l'objet peut-être mis à la corbeille et purgé
  • Notes : indique si l'onget 'Notes' doit apparaître sur la fiche de l'objet
  • Historique : indique si l'onglet 'Historique' doit apparaître sur la fiche de l'objet
  • Gabarits : indique si la fonctionnalité de 'Gabarits' est disponible pour ce type d'objet
  • Informations financières : indique si l'on peut attacher des informations financières à l'objet
  • Documents : indique si l'on peut rattacher des documents à l'objet
  • Réservations : indique si l'objet peut-être réservable
  • Connexions réseaux : indique l'on peut ajouter des ports et gérer des ports réseaux
  • Connexion(s) direct(es) : indique si l'objet peut-être directement connecté un ordinateur
  • Plugin Injection de fichiers CSV : permet l'import de données pour ce type à l'aide du plugin d'injection de fichiers
  • Plugin gestion des commandes : indique si l'objet peut-être commandé à l'aide du plugin de gestion des commandes de matériels
  • Plugin désinstallation des matériels : indique si l'objet peut-être désinstallé par le plugin de déinstallation des matériels
  • Plugin Génération de numéros d'inventaires : indique si le numéro d'inventaire présent dans l'objet peut-être généré automatiquement par ce plugin

Champs

L'objet créé et ses comportements définis, il est temps d'indiquer quels sont ses champs disponibles. Pour cela, il suffit de se placer dans l'onglet Champs.
Le plugin vient avec un certain nombre de champs prédéfinis (standards) :
  • nom
  • type
  • modèle
  • numéro de série
  • numéro d'inventaire
  • utilisateur du matériel
  • groupe du matériel
  • statut
  • commentaires
  • notes
  • lieu
  • Autre
  • fabricant
  • URL
  • Date de création
  • Date d'expiration
  • Catégorie
  • Visible dans le Helpdesk
  • Responsable technique
  • Domaine
  • Contact
  • Contact numéro
Note : l'utilisation de certaines fonctionnalités entre l'ajout obligatoire de certains champs :
  • pour les connexions directes : lieu, utilisateur, groupe et statut
  • pour les connexions réseaux : lieu
  • intégration plugin numéro d'inventaire : numéro d'inventaire

Intégration au helpdesk

Afin de voir apparaître un type d'objet dans le helpdesk, il est nécessaire de bien noter les choses suivantes :
  • dans Comportement : Utiliser helpdesk doit-être à oui
  • si un champs Utilisateur du matériel est défini pour ce type, alors celui-ci pourra apparaître dans mes matériels (comme matériel appartenant à l'utilisateur)
  • si un champs Groupe est défini pour ce type, alors celui-ci pourra apparaître dans mes matériels (comme matériel appartenant à un groupe auque l'utilisateur fait partie)
  • si Visible dans le helpdesk est défini, alors il est nécessaire que, dans l'objet la valeur de ce champs soit à oui pour qu'il puisse être visible et utilisable dans la gestion de tickets

Ajout de nouveaux champs

Il est possible d'ajouter de nouveaux champs : ceux-ci seront visibles pour tous les objets.
Actuellement, il est nécessaire de rajouter un fichier qui va contenir la description des champs à ajouter.
Le fichier doit s'appeller <installation glpi>/plugins/genericobject/fields/constants/<nom du type>.php

Ce fichier contient une définition par champs.
Dans ce exemple, le champs libre Couleur est ajouté :

$GENERICOBJECT_AVAILABLE_FIELDS['couleur']['name']=$LANG['genericobject']['<nom du type>'][2];
$GENERICOBJECT_AVAILABLE_FIELDS['couleur']['field']='couleur';
$GENERICOBJECT_AVAILABLE_FIELDS['couleur']['input_type']='text';

Note : une variable de langue est définie dans le fichier de langue du type (voir sa création plus haut dans ce document).

Le champs suivant permet de définir un champs Nom. Le datatype permet de rendre le champs automatiquement cliquable, avec accès au formulaire de l'objet :

$GENERICOBJECT_AVAILABLE_FIELDS['name']['name']=$LANG['genericobject']['<nom du type>'][2];
$GENERICOBJECT_AVAILABLE_FIELDS['name']['field']='name';
$GENERICOBJECT_AVAILABLE_FIELDS['name']['input_type']='text';
$GENERICOBJECT_AVAILABLE_FIELDS['name']['datatype']='itemlink';

Le code suivant permet de créer un champs Catégorie, de type liste déroulante, et qui nécessite la création d'une table spécifique pour stocker ses valeurs :

$GENERICOBJECT_AVAILABLE_FIELDS['category']['name']=$LANG['common'][36];
$GENERICOBJECT_AVAILABLE_FIELDS['category']['field']='name';
$GENERICOBJECT_AVAILABLE_FIELDS['category']['linkfield']='category';
$GENERICOBJECT_AVAILABLE_FIELDS['category']['input_type']='dropdown';
$GENERICOBJECT_AVAILABLE_FIELDS['category']['dropdown_type']='type_specific';

Droits

Pour chaque type d'objets, il est nécessaire de définir les profils qui ont accès à celui-ci. Les options disponibles sont :
  • droit sur le type : aucun accès / lecture / écriture
  • Associer des tickets à cet objet d'inventaire : oui / non. Indique si l'utilisateur qui a se profil a le droit d'associer un ticket à cet objet d'inventaire

Utilisation

Le nouveau type est, une fois activé, disponible dans le menu Plugins -> Gestion d'objets.
Son utilisation est identique à celle des objets d'inventaires du coeur de GLPI.