You are not logged in.
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
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
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
Bonjour
Le hack ne fct plus en GLPI 945/GO 280 . Avez vous trouvé une parade ?
Offline