DropdownTranslation::dropdownFields PHP Method

dropdownFields() static public method

Display a dropdown with fields that can be translated for an itemtype
static public dropdownFields ( CommonDBTM $item, $language = '', $value = '' ) : the
$item CommonDBTM a Dropdown item
$language language to look for translations (default '')
$value field which must be selected by default (default '')
return the dropdown's random identifier
    static function dropdownFields(CommonDBTM $item, $language = '', $value = '')
    {
        global $DB;
        $options = array();
        foreach (Search::getOptions(get_class($item)) as $id => $field) {
            //Can only translate name, and fields whose datatype is text or string
            if (isset($field['field']) && $field['field'] == 'name' && $field['table'] == getTableForItemType(get_class($item)) || isset($field['datatype']) && in_array($field['datatype'], array('text', 'string'))) {
                $options[$field['field']] = $field['name'];
            }
        }
        $used = array();
        if (!empty($options)) {
            $query = "SELECT `field`\n                   FROM `" . self::getTable() . "`\n                   WHERE `itemtype`='" . get_class($item) . "'\n                         AND `items_id` = '" . $item->getID() . "'\n                         AND `language` = '{$language}'";
            $results = $DB->query($query);
            if ($DB->numrows($results) > 0) {
                while ($data = $DB->fetch_array($results)) {
                    $used[$data['field']] = $data['field'];
                }
            }
        }
        //$used = array();
        return Dropdown::showFromArray('field', $options, array('value' => $value, 'used' => $used));
    }

Usage Example

This file is part of GLPI.

GLPI is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GLPI. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------
*/
/** @file
 * @brief
 * @since version 0.85
**/
$AJAX_INCLUDE = 1;
include '../inc/includes.php';
header("Content-Type: text/html; charset=UTF-8");
Html::header_nocache();
Session::checkRight("dropdown", UPDATE);
if (isset($_POST['itemtype']) && isset($_POST['language'])) {
    $item = new $_POST['itemtype']();
    $item->getFromDB($_POST['items_id']);
    DropdownTranslation::dropdownFields($item, $_POST['language']);
}