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 2018-11-09 11:50:11

BoiDLi
Member
Registered: 2018-11-09
Posts: 1

Ajouter des champs dans un nouveau type 'GenericObject'

Bonjour,

Je n'arrive pas à ajouter des nouveaux champs dans un nouveau type d'objet créé par Generic Object.
Je vous livre ici ce que j'ai fait:

GLPI 9.3.1 (et aussi 9.3.2) et genericObject 2.6.2

- Installation du plugin par copier/coller dans le bon répertoire
- Activation du plugin
- Création d'un nouveau type d'objet 'brol'
- Activation du nouvel objet
- logoff/login pour le faire apparaître dans la dropdown Assets
- Création du fichier brol.constant.php dans le répertoire ../glpi/plugins/genericobject/fields/
- Copier/coller de l'exemple biomedical proposé dans l'aide du plugin GenericObject

<?php
global $GO_FIELDS, $LANG;

// CODE CNEH
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][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']['PluginGenericobjectBiomedical'][2];
$GO_FIELDS['reformed']['input_type'] = 'bool';

// CLASSE CE (3 choix possibles 1,2a ou 2b)
$GO_FIELDS['plugin_genericobject_classeces_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][3];
$GO_FIELDS['plugin_genericobject_classeces_id']['field']      = 'classce';
$GO_FIELDS['plugin_genericobject_classeces_id']['input_type'] = 'dropdown';

// UF (Unité Fonctionnelle)
$GO_FIELDS['plugin_genericobject_ufs_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][4];
$GO_FIELDS['plugin_genericobject_ufs_id']['field']       = 'uf';
$GO_FIELDS['plugin_genericobject_ufs_id']['input_type'] = 'dropdown';

// PRESTATAIRE BIOMED
$GO_FIELDS['plugin_genericobject_prestataires_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][5];
$GO_FIELDS['plugin_genericobject_prestataires_id']['field']       = 'prestataire biomed';
$GO_FIELDS['plugin_genericobject_prestataires_id']['input_type'] = 'dropdown';

// TYPE D'EQUIPEMENT BIOMED
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][6];
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['field']       = "type d 'equipement biomed";
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['input_type'] = 'dropdown';

// Criticite
$GO_FIELDS['plugin_genericobject_criticites_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][7];
$GO_FIELDS['plugin_genericobject_criticites_id']['field']      = 'criticite';
$GO_FIELDS['plugin_genericobject_criticites_id']['input_type'] = 'dropdown';

// Numéro marquage CE
$GO_FIELDS['plugin_genericobject_marquageces_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][8];
$GO_FIELDS['plugin_genericobject_marquageces_id']['field']      = 'marquagece';
$GO_FIELDS['plugin_genericobject_marquageces_id']['input_type'] = 'dropdown';

// Classe électrique
$GO_FIELDS['plugin_genericobject_classeelecs_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][9];
$GO_FIELDS['plugin_genericobject_classeelecs_id']['field']      = 'classeelec';
$GO_FIELDS['plugin_genericobject_classeelecs_id']['input_type'] = 'dropdown';
?>

- Création du folder ../glpi/plugins/genericobject/locales/brol
- Création du fichier ../glpi/plugins/genericobject/locales/brol.fr_FR.php f (ce folder et fichier devaient être créés à la création de l'objet, mais ce n'était pas fait)

- logoff/login
- Retour sur les propriétés du nouvel objet 'brol'
- Changement des comportements (ajout poubelle, contrat, ...)
- Dans le Tab 'Champs', aucun nouveau champ défini n'apparait dans la liste des champs à ajouter.


Je ne sais pas si l'erreur vient de moi ou du software.
QQn aurait-il une expérience avec GenericObject qu'il pourrait partager?

Merci,

Yoann

Offline

#2 2018-11-12 17:01:07

florence.henry
Guest
Registered: 2016-11-23
Posts: 4

Re: Ajouter des champs dans un nouveau type 'GenericObject'

Bonjour

Je rencontre le même problème (GLPI 9.3.2 et GO 2.6.2). J'ai fait pas à pas la procédure du wiki.
Dans la tab 'Champs', je vois les nouvelles entrées que j'ai faite dans la liste "Ajout d'un nouveau champ".

Quand je sélectionne l'un de ces champs, GLPI me dit "Champ ajouté avec succès", mais il n'apparaît pas dans la liste des champs, ni dans le mode de prévisualisation, ni dans la table SQL correspondant à l'objet.

Quand je sélectionne un champ prédéfini, il s'ajoute correctement.

Offline

#3 2018-11-12 17:59:59

florence.henry
Guest
Registered: 2016-11-23
Posts: 4

Re: Ajouter des champs dans un nouveau type 'GenericObject'

Je viens de jeter un oeil dans le code et le champ n'est pas ajouté dans la table car la requête SQL n'est pas correcte :

ALTER TABLE `glpi_plugin_genericobject_optiques` ADD `plugin_genericobject_optiquediametres_id`

il manque le type de colonne.

Dans le fichier plugins/genericobject/inc/field.class.php dans la fonction getFieldOptions qui récupère les options du champ, la ligne
$cleaned_field = preg_replace("/^plugin_genericobject_/", '', $field);
semble suggérer que la syntaxe à employer dans le fichier de définition n'est pas
$GO_FIELDS['plugin_genericobject_classeelecs_id']
mais
$GO_FIELDS['classeelecs_id']


J'ai rectifié le fichier de configuration en supprimant les "plugin_genericobject_" au début de chaque élément  de  $GO_FIELDS

Et là je peux ajouter mes éléments

Serait-ce une modification récente du code ?

Offline

Board footer

Powered by FluxBB