0.85.1: see my forum post, I explain how to reproduce this bug
Regards,
Olivier MORON
Miscellaneous Program Member

RAYNET SNC
Tel : +33 4 76 33 49 52
Fax: +33 4 76 70 56 63


From: Glpi-user [mailto:[email protected]] On Behalf Of Julien Dombre
Sent: Wednesday, January 21, 2015 7:59 AM
To: [email protected]
Subject: Re: [Glpi-user] Fix proposal for: 
http://www.glpi-project.org/forum/viewtopic.php?id=46119

Hi,

which GLPI version ?
I do not reproduce on 0.85 version.

Regards


Le 20/01/2015 16:00, Moron, Olivier a écrit :

Dear all,



I propose the following fix for the bug explained in this post: 
http://www.glpi-project.org/forum/viewtopic.php?id=46119


   /**
    * Generate completename associated with a tree dropdown
    *
    *@param input array of user values
    *@param add true if translation is added, false if update
    *
    *@return nothing
    */
   function generateCompletename($input, $add = true) {
      //If there's already a completename for this language, get it's ID, 
otherwise 0
      $completenames_id = self::getTranslationID($input['items_id'], 
$input['itemtype'],
                                                 'completename',  
$input['language']);
      $item = new $input['itemtype']();

      //Completename is used only for tree dropdowns !
      if ($item instanceof CommonTreeDropdown && isset($input['language'])) {
         $item->getFromDB($input['items_id']);

         //Regenerate completename : look for item's ancestors
         $completename = "";

         //Get ancestors as an array
         $cache = getAncestorsOf($item->getTable(), $item->getID());

         if (!empty($cache)) {
            foreach ($cache as $ancestor) {
               if ($completename != ''  && $ancestor != $item->getID()) {
                  $completename.= " > ";
               }
               $completename .= self::getTranslatedValue($ancestor, 
$input['itemtype'], 'name',
                                                         $input['language']);
            }
         }

         if ($completename != '') {
            $completename.= " > ";
         }
         $completename .= self::getTranslatedValue($item->getID(), 
$input['itemtype'], 'name',
                                                   $input['language']);

         //Add or update completename for this language
         $translation     = new self();
         $tmp['items_id'] = $input['items_id'];
         $tmp['itemtype'] = $input['itemtype'];
         $tmp['field']    = 'completename';
         $tmp['value']    = addslashes($completename);
         $tmp['language'] = $input['language'];
         $tmp['_no_completename']  = true;
         if ($completenames_id) {
            $tmp['id']    = $completenames_id;
            $translation->update($tmp);
         } else {
            $translation->add($tmp);
         }
      }

      $completenames = array( ) ;
      $completenames[ $input['items_id'] ] = $completename ;
      $foreignKey = $item->getForeignKeyField() ;

      foreach (getSonsOf($item->getTable(), $item->getID()) as $son) {
         //Try to regenerate translated completename only if a completename 
already exists
         //for this son
         $completenames_id = self::getTranslationID($son, $input['itemtype'],
                                                    'completename', 
$input['language']);
         if ($son != $item->getID()) {
            //get son value
            $son_item = new $input['itemtype']();
            $son_item->getFromDB($son);

            //$completename .= " > ".self::getTranslatedValue($son, 
$input['itemtype'], 'name',
            //                                                
$input['language'],
            //                                                
$son_item->fields['name']);
            $completenames[ $son ] = $completenames[ $son_item->fields[ 
$foreignKey ] ] ." > ". self::getTranslatedValue($son, $input['itemtype'], 
'name', $input['language'], $son_item->fields['name']);
            unset($tmp['id']);
            $tmp['items_id'] = $son;
            $tmp['itemtype'] = $input['itemtype'];
            $tmp['field']    = 'completename';
            $tmp['value']    = addslashes($completenames[ $son ]);
            $tmp['language'] = $input['language'];
            $tmp['_no_completename']  = true;
            if ($completenames_id) {
               $tmp['id']    = $completenames_id;
               $translation->update($tmp);
            } else {
               $translation->add($tmp);
            }
         }
      }
   }



Is there someone who can push this to GLPI repo?

Thank you,



Regards,



Olivier MORON

Miscellaneous Program Member



RAYNET SNC

Tel : +33 4 76 33 49 52

Fax: +33 4 76 70 56 63






_______________________________________________

Glpi-user mailing list

[email protected]<mailto:[email protected]>

https://mail.gna.org/listinfo/glpi-user

_______________________________________________
Glpi-user mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-user

Reply via email to