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 2012-06-05 17:44:40

jul21
Member
Registered: 2012-06-05
Posts: 3

Changer le format des données dans les champs

Bonjour,

J'ai remarqué qu'aucun plugins GLPI ne proposait la modification du format des données dans les champs. Par exemple, il y a des limitations sur le nombre ou le type de caractères et le format d’écriture, par exemple pour les adresses IP et adresses MAC des équipements.

Je pense que le fait de modifier les restrictions sur ces champs pourrait aider les personnes qui souhaitent modifier l'intitulé des champs (via plugin Renamer ou autre).

Je me suis penché sur le problème et j'ai trouvé un solution en modifiant un fichier PHP. En effet, la restriction sur le format des données ne se fait pas au niveau de la base SQL mais d'une fonction dans un fichier PHP.

Pour les intéressés, j'ai éditer le fichier glpi\inc\commondbtm.class.php à partir de la ligne 2442 simplement en mettant en commentaire les informations concernées :

   switch ($searchOption['datatype']) {
                  /*case 'integer' :
                  case 'number' :
                  case 'decimal' :
                     $value = str_replace(',','.',$value);
                     if ($searchOption['datatype'] == 'decimal') {
                        $this->input[$key] = floatval($value);
                     } else {
                        $this->input[$key] = intval($value);
                     }
                     if (!is_numeric($value)) {
                        $unset = true;
                     }
                     break;*/
                  /*case 'mac' :
                     preg_match("/([0-9a-fA-F]{1,2}([:-]|$)){6}$/",$value,$regs);
                     if (empty($regs)) {
                        $unset = true;
                     }
                     break;*/

Ici, j'ai désactivé la vérification du format des données pour les type integer, number, decial et mac. L'ajout des données s'effectue toutefois car la base des données est configurée pour recevoir des données de type VCHAR(255).

Illustrations :

capturencj.png


Comme vous pouvez le voir, il y a toujours un problème au niveau de l'affichage de la mémoire. Je vais essayer de chercher.


Toute expérience ou partage d'informations seront les bienvenues.

Offline

#2 2012-06-06 11:56:42

jul21
Member
Registered: 2012-06-05
Posts: 3

Re: Changer le format des données dans les champs

Pour ceux qui utilisent le plugin "Injection de fichiers", vous pouvez modifier de la même manière le fichier \glpi\plugins\datainjection\inccommoninjectionlib.class.php et ainsi contourner les erreurs à l'importation.

Quelqu'un sait dans quel fichier PHP est configuré l'affichage des équipements réseaux ? Je souhaiterais pouvoir afficher les données du champs "Mémoire (Mio)" en texte brut, sans formatage Integer/Décimal.

Offline

#3 2012-06-07 11:41:17

jul21
Member
Registered: 2012-06-05
Posts: 3

Re: Changer le format des données dans les champs

Pour les intéressés, j'ai trouvé un moyen de modifier le format d'affichage.

Pour les matériels réseaux, le fichier à modifié est : glpi\inc\networkequipment.class.php

Vous pouvez modifier de la manière suivante :

      $tab[14]['table']    = $this->getTable();
      $tab[14]['field']    = 'ram';
      $tab[14]['name']     = $LANG['networking'][5]; 
      /*$tab[14]['datatype'] = 'number';*/

J'ai choisi de commenté la ligne mais vous pouvez aussi modifier le type d'affichage des données en "text", "ip", "mac", etc.

Offline

Board footer

Powered by FluxBB