DropdownTranslation::getTranslatedValue PHP Method

getTranslatedValue() static public method

Get translated value for a field in a particular language
static public getTranslatedValue ( $ID, $itemtype, $field = 'name', $language, $value = '' ) : the
$ID dropdown item's id
$itemtype dropdown itemtype
$field the field to look for (default 'name')
$language get translation for this language
$value default value for the field (default '')
return the translated value of the value in the default language
    static function getTranslatedValue($ID, $itemtype, $field = 'name', $language, $value = '')
    {
        global $DB;
        //If dropdown translation is globally off, or if this itemtype cannot be translated,
        //then original value should be returned
        $item = new $itemtype();
        if (!$ID || !Session::haveTranslations($itemtype, $field)) {
            return $value;
        }
        //ID > 0 : dropdown item might be translated !
        if ($ID > 0) {
            //There's at least one translation for this itemtype
            if (self::hasItemtypeATranslation($itemtype)) {
                $query = "SELECT `value`\n                      FROM `" . self::getTable() . "`\n                      WHERE `itemtype` = '" . $itemtype . "'\n                            AND `items_id` = '" . $ID . "'\n                            AND `field` = '{$field}'\n                            AND `language` = '{$language}'";
                $result_translations = $DB->query($query);
                //The field is already translated in this language
                if ($DB->numrows($result_translations)) {
                    return $DB->result($result_translations, 0, 'value');
                }
            }
            //Get the value coming from the dropdown table
            $query = "SELECT `{$field}`\n                     FROM `" . getTableForItemType($itemtype) . "`\n                     WHERE `id` = '{$ID}'";
            $results = $DB->query($query);
            if ($DB->numrows($results)) {
                return $DB->result($results, 0, $field);
            }
        }
        return "";
    }

Usage Example

Example #1
0
 // Last parent is not the good one need to display arbo
 if (!isset($last_level_displayed[$level - 1]) || $last_level_displayed[$level - 1] != $data[$item->getForeignKeyField()]) {
     $work_level = $level - 1;
     $work_parentID = $data[$item->getForeignKeyField()];
     $parent_datas = array();
     do {
         // Get parent
         if ($item->getFromDB($work_parentID)) {
             // Do not do for first item for next page load
             if (!$firstitem) {
                 $title = $item->fields['completename'];
                 if (isset($item->fields["comment"])) {
                     $addcomment = DropdownTranslation::getTranslatedValue($ID, $_POST['itemtype'], 'comment', $_SESSION['glpilanguage'], $item->fields['comment']);
                     $title = sprintf(__('%1$s - %2$s'), $title, $addcomment);
                 }
                 $output2 = DropdownTranslation::getTranslatedValue($item->fields['id'], $_POST['itemtype'], 'name', $_SESSION['glpilanguage'], $item->fields['name']);
                 //   $output2 = $item->getName();
                 $temp = array('id' => $ID, 'text' => $output2, 'level' => $work_level, 'disabled' => true);
                 if ($_POST['permit_select_parent']) {
                     unset($temp['disabled']);
                 }
                 array_unshift($parent_datas, $temp);
             }
             $last_level_displayed[$work_level] = $item->fields['id'];
             $work_level--;
             $work_parentID = $item->fields[$item->getForeignKeyField()];
         } else {
             // Error getting item : stop
             $work_level = -1;
         }
     } while ($work_level >= 1 && (!isset($last_level_displayed[$work_level]) || $last_level_displayed[$work_level] != $work_parentID));
All Usage Examples Of DropdownTranslation::getTranslatedValue