You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2020-02-26 14:14:19

hornopiren
Member
Registered: 2020-02-26
Posts: 1

Plugin Generic Objects et champs personnalisés

Bonjour,

Au départ je cherche une solution de gestion de mes lignes Télécoms (type de contrat, date de commande, date de mise en service, GTR, débit, hostname du routeur...).
Cette gestion n'existant pas nativement dans GLPI (la gestion des Lignes déjà présente dans GLPI concerne des lignes téléphoniques) je me tourne donc vers le plugin Generic Objects, qui permet de se binder sur le core GLPI mais également de créer des champs personnalisés.

J'ai bien réussi à faire marcher le plugin, mais pas la création et donc l'utilisation des champs personnalisés.
J'ai suivi la doc du plugin, en reprenant l'exemple de la GMAO. Rien à faire, je ne vois aucun champ personnalisé dans le menu déroulant Ajout d'un nouveau champ.
En tournant sur le forum j'ai trouvé une discussion (id=166085) qui traite du même problème; j'ai bien appliqué le hack mais toujours rien à faire.

Une idée ou une piste ?

D'avance merci !

Version GLPI : 9.4.5
Version plugin Generic Objects : 2.8.0
Les seuls autres plugins présents sur mon instance GLPI sont Addressage IP, FusionInventory et Architectures réseau, tous en dernière version.
Serveur LAMP Unbuntu 18.04

Offline

#2 2020-03-12 18:38:03

jejeroro
Member
Registered: 2011-09-05
Posts: 100

Re: Plugin Generic Objects et champs personnalisés

Hello ,
Je suis allé plus loin que toi.
1) je suis en GLPI945
2) j'ai installé genericobject      2.8.0 +activé
3) dans http://glpihost/glpi/plugins/genericobject/front/type.php  (Configuration > Gestion d'Objets )
je cree mon nouveau type "carrote" et je l'active. ("carrote" bien en minuscules !)

C'est là que GLPI  crée les fichiers suivants :
root@glpihome:/home/glpi
# ls -latr `find | grep -i carrote`
-rw-r--r-- 1 www-data www-data 1227 mars  12 16:32 ./files/_plugins/genericobject/locales/carrote/carrote.fr_FR.php
-rw-r--r-- 1 www-data www-data 1671 mars  12 16:32 ./files/_plugins/genericobject/inc/carrote.class.php
-rw-r--r-- 1 www-data www-data 1500 mars  12 16:32 ./files/_plugins/genericobject/front/carrote.php
-rw-r--r-- 1 www-data www-data 1399 mars  12 16:32 ./files/_plugins/genericobject/front/carrote.form.php

./files/_plugins/genericobject/locales/carrote:
total 12
-rw-r--r-- 1 www-data www-data 1227 mars  12 16:32 carrote.fr_FR.php
drwxr-xr-x 4 www-data www-data 4096 mars  12 16:32 ..
drwxr-xr-x 2 www-data www-data 4096 mars  12 16:32 .

5) ===> Dans GLPI je me deconnecte/reconnecte (glpi superadmin) :
je vois maintenant dans l'onglet "Parc" le nouveau type "Carrote" .

6) ensuite , dans https://glpi-plugins.readthedocs.io/fr/ … ricobject/ on me dit creer "/files/_plugins/genericobject/fields/biomedical.constant.php"
Je fais pareil avec ma carrote avec mes nouveaux champs:
# cat files/_plugins/genericobject/fields/carrote.constant.php
<?php
global $GO_FIELDS, $LANG;

// CODE CNEH
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['name']       = $LANG['genericobject']['PluginGenericobjectCarrote'][1];
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['field']      = 'cnehcode';
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['input_type'] = 'dropdown';

//  REFORME (yes or no)
$GO_FIELDS['reformed']['name']       = $LANG['genericobject']['PluginGenericobjectCarrote'][2];
$GO_FIELDS['reformed']['input_type'] = 'bool';
(...)


7) et ajouter à files/_plugins/genericobject/locales/biomedical/biomedical.fr_FR.php:
# cat files/_plugins/genericobject/locales/carrote/carrote.fr_FR.php
<?php
/*
This file is part of the genericobject plugin.
(...)
$LANG['genericobject']['PluginGenericobjectCarrote'][0]="carrote";

#JLM200312 ajout de mes champs de carrote !
// Fields
$LANG['genericobject']['PluginGenericobjectCarrote'][1]="Code CNEH";
$LANG['genericobject']['PluginGenericobjectCarrote'][2]="Réformé";
$LANG['genericobject']['PluginGenericobjectCarrote'][3]="Classe CE";
$LANG['genericobject']['PluginGenericobjectCarrote'][4]="UF";
$LANG['genericobject']['PluginGenericobjectCarrote'][5]="Prestataire Biomed";
$LANG['genericobject']['PluginGenericobjectCarrote'][6]="Type d'équipement biomed";
$LANG['genericobject']['PluginGenericobjectCarrote'][7]="Criticité";
$LANG['genericobject']['PluginGenericobjectCarrote'][8]="Marquage CE";
$LANG['genericobject']['PluginGenericobjectCarrote'][9]="Classe électrique";
//FINDUFICHIER

8) dans Configuration > Gestion d'Objets> Carrote ( http://glpihome/glpi/plugins/genericobject/front/type.form.php?id=2 chez moi)
-onglet principal je mets tout,j' active tout (pour le moment ,je verrai plus tard pour le vrai cas).
-onglet champs: j'ajoute tous les nouvx champs 1 par 1.
- je mets des valeurs aux champs des dropdown

9) Puis dans Parc > Carrote j'ajoute une instance "Anglaise"  , et je peux remplir tous mes champs dont les champs specifiques.


Et c'est OK , j'ai une nouvelle instance "Anglaise" de type Carrote, qui a des champs bien éléctriques ;-) .

10) J'ai pu noter qu'avec sa stratégie de nommage des index de tableau en concaténant des mots , il fallait faire bien attention à ce que mes noms de champs soient assez long ou significatifs pour ne pas etre confondus.

Last edited by jejeroro (2020-03-12 18:40:32)

Offline

#3 2020-03-12 18:52:34

jejeroro
Member
Registered: 2011-09-05
Posts: 100

Re: Plugin Generic Objects et champs personnalisés

Mais là ou j'ai un pb c'est quand je veux des champs un peu plus libres :
Il dit dans sa doc : pour un champs "text"  faire :
$GO_FIELDS['mytextfield']['input_type'] = 'text';

donc ok je repatche mon fichier ./files/_plugins/genericobject/fields/carrote.constant.php
$GO_FIELDS['plugin_genericobject_classeelecs_id']['input_type'] = 'text';

puis je detruis le champs "Classe electrique" dans mon formulaire de "carrote", et je le remets, il apparait alors comme un type text.

Or quand je veux un tableau liste de mes elements de type "carrote" , dans lequel je veux afficher les champs "electriques" dont la "Classe électrique" dont je viens de modifier le type , comme ici :
http://glpihome/glpi/plugins/genericobject/front/object.php?itemtype=PluginGenericobjectCarrote
les valeurs posées sur les champs de type "text" de mon instance "Anglaise" apparaissent vides !

J'aurais bien voulu aussi agrandir la taille du champ de type text pour en mettre un peu plus , mais il ne dit rien à ce sujet .

Last edited by jejeroro (2020-03-12 18:59:34)

Offline

#4 2020-03-18 17:38:05

jejeroro
Member
Registered: 2011-09-05
Posts: 100

Re: Plugin Generic Objects et champs personnalisés

Manifestement le hack decrit à https://forum.glpi-project.org/viewtopic.php?id=166085
concernait GLPI 932 et GO 262 en 2018.
Maintenant , en GLPI 945 et GO 280 cela ne semble plus fct en effet.

Offline

Board footer

Powered by FluxBB