CommonDBTM::getTable PHP Method

getTable() static public method

Return the table used to stor this object
static public getTable ( ) : string
return string
    static function getTable()
    {
        if (static::$notable) {
            return '';
        }
        if (empty($_SESSION['glpi_table_of'][get_called_class()])) {
            $_SESSION['glpi_table_of'][get_called_class()] = getTableForItemType(get_called_class());
        }
        return $_SESSION['glpi_table_of'][get_called_class()];
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Retrieve last history Data for an item
  *
  * @param $item                     CommonDBTM object
  * @param $start        integer     first line to retrieve (default 0)
  * @param $limit        integer     max number of line to retrive (0 for all) (default 0)
  * @param $sqlfilter    string      to add an SQL filter (default '')
  *
  * @return array of localized log entry (TEXT only, no HTML)
  **/
 static function getHistoryData(CommonDBTM $item, $start = 0, $limit = 0, $sqlfilter = '')
 {
     global $DB;
     $itemtype = $item->getType();
     $items_id = $item->getField('id');
     $itemtable = $item->getTable();
     $SEARCHOPTION = Search::getOptions($itemtype);
     $query = "SELECT *\n                FROM `glpi_logs`\n                WHERE `items_id` = '{$items_id}'\n                      AND `itemtype` = '{$itemtype}' ";
     if ($sqlfilter) {
         $query .= "AND ({$sqlfilter}) ";
     }
     $query .= "ORDER BY `id` DESC";
     if ($limit) {
         $query .= " LIMIT " . intval($start) . "," . intval($limit);
     }
     $changes = array();
     foreach ($DB->request($query) as $data) {
         $tmp = array();
         $tmp['display_history'] = true;
         $tmp['id'] = $data["id"];
         $tmp['date_mod'] = Html::convDateTime($data["date_mod"]);
         $tmp['user_name'] = $data["user_name"];
         $tmp['field'] = "";
         $tmp['change'] = "";
         $tmp['datatype'] = "";
         // This is an internal device ?
         if ($data["linked_action"]) {
             // Yes it is an internal device
             switch ($data["linked_action"]) {
                 case self::HISTORY_CREATE_ITEM:
                     $tmp['change'] = __('Add the item');
                     break;
                 case self::HISTORY_DELETE_ITEM:
                     $tmp['change'] = __('Delete the item');
                     break;
                 case self::HISTORY_LOCK_ITEM:
                     $tmp['change'] = __('Lock the item');
                     break;
                 case self::HISTORY_UNLOCK_ITEM:
                     $tmp['change'] = __('Unlock the item');
                     break;
                 case self::HISTORY_RESTORE_ITEM:
                     $tmp['change'] = __('Restore the item');
                     break;
                 case self::HISTORY_ADD_DEVICE:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     //TRANS: %s is the component name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Add the component'), $data["new_value"]);
                     break;
                 case self::HISTORY_UPDATE_DEVICE:
                     $tmp['field'] = NOT_AVAILABLE;
                     $change = '';
                     $linktype_field = explode('#', $data["itemtype_link"]);
                     $linktype = $linktype_field[0];
                     $field = $linktype_field[1];
                     $devicetype = $linktype::getDeviceType();
                     $tmp['field'] = $devicetype;
                     $specif_fields = $linktype::getSpecificities();
                     if (isset($specif_fields[$field]['short name'])) {
                         $tmp['field'] = $devicetype;
                         $tmp['field'] .= " (" . $specif_fields[$field]['short name'] . ")";
                     }
                     //TRANS: %1$s is the old_value, %2$s is the new_value
                     $tmp['change'] = sprintf(__('Change the component %1$s: %2$s'), $tmp['field'], sprintf(__('%1$s by %2$s'), $data["old_value"], $data["new_value"]));
                     break;
                 case self::HISTORY_DELETE_DEVICE:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     //TRANS: %s is the component name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Delete the component'), $data["old_value"]);
                     break;
                 case self::HISTORY_LOCK_DEVICE:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     //TRANS: %s is the component name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Lock the component'), $data["old_value"]);
                     break;
                 case self::HISTORY_UNLOCK_DEVICE:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     //TRANS: %s is the component name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Unlock the component'), $data["new_value"]);
                     break;
                 case self::HISTORY_INSTALL_SOFTWARE:
                     $tmp['field'] = _n('Software', 'Software', 1);
                     //TRANS: %s is the software name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Install the software'), $data["new_value"]);
                     break;
                 case self::HISTORY_UNINSTALL_SOFTWARE:
                     $tmp['field'] = _n('Software', 'Software', 1);
                     //TRANS: %s is the software name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Uninstall the software'), $data["old_value"]);
                     break;
                 case self::HISTORY_DISCONNECT_DEVICE:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     //TRANS: %s is the item name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Disconnect the item'), $data["old_value"]);
                     break;
                 case self::HISTORY_CONNECT_DEVICE:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     //TRANS: %s is the item name
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Connect the item'), $data["new_value"]);
                     break;
                 case self::HISTORY_LOG_SIMPLE_MESSAGE:
                     $tmp['field'] = "";
                     $tmp['change'] = $data["new_value"];
                     break;
                 case self::HISTORY_ADD_RELATION:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Add a link with an item'), $data["new_value"]);
                     break;
                 case self::HISTORY_DEL_RELATION:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Delete a link with an item'), $data["old_value"]);
                     break;
                 case self::HISTORY_LOCK_RELATION:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Lock a link with an item'), $data["old_value"]);
                     break;
                 case self::HISTORY_UNLOCK_RELATION:
                     $tmp['field'] = NOT_AVAILABLE;
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Unlock a link with an item'), $data["new_value"]);
                     break;
                 case self::HISTORY_ADD_SUBITEM:
                     $tmp['field'] = '';
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Add the item'), sprintf(__('%1$s (%2$s)'), $tmp['field'], $data["new_value"]));
                     break;
                 case self::HISTORY_UPDATE_SUBITEM:
                     $tmp['field'] = '';
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Update the item'), sprintf(__('%1$s (%2$s)'), $tmp['field'], $data["new_value"]));
                     break;
                 case self::HISTORY_DELETE_SUBITEM:
                     $tmp['field'] = '';
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Delete the item'), sprintf(__('%1$s (%2$s)'), $tmp['field'], $data["old_value"]));
                     break;
                 case self::HISTORY_LOCK_SUBITEM:
                     $tmp['field'] = '';
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Lock an item'), sprintf(__('%1$s (%2$s)'), $tmp['field'], $data["old_value"]));
                     break;
                 case self::HISTORY_UNLOCK_SUBITEM:
                     $tmp['field'] = '';
                     if ($item2 = getItemForItemtype($data["itemtype_link"])) {
                         $tmp['field'] = $item2->getTypeName(1);
                     }
                     $tmp['change'] = sprintf(__('%1$s: %2$s'), __('Unlock an item'), sprintf(__('%1$s (%2$s)'), $tmp['field'], $data["new_value"]));
                     break;
                 default:
                     $fct = array($data['itemtype_link'], 'getHistoryEntry');
                     if ($data['linked_action'] >= self::HISTORY_PLUGIN && $data['itemtype_link'] && is_callable($fct)) {
                         $tmp['field'] = $data['itemtype_link']::getTypeName(1);
                         $tmp['change'] = call_user_func($fct, $data);
                     }
                     $tmp['display_history'] = !empty($tmp['change']);
             }
         } else {
             $fieldname = "";
             $searchopt = array();
             $tablename = '';
             // It's not an internal device
             foreach ($SEARCHOPTION as $key2 => $val2) {
                 if ($key2 == $data["id_search_option"]) {
                     $tmp['field'] = $val2["name"];
                     $tablename = $val2["table"];
                     $fieldname = $val2["field"];
                     $searchopt = $val2;
                     if (isset($val2['datatype'])) {
                         $tmp['datatype'] = $val2["datatype"];
                     }
                     break;
                 }
             }
             if ($itemtable == $tablename) {
                 switch ($tmp['datatype']) {
                     // specific case for text field
                     case 'text':
                         $tmp['change'] = __('Update of the field');
                         break;
                     default:
                         $data["old_value"] = $item->getValueToDisplay($searchopt, $data["old_value"]);
                         $data["new_value"] = $item->getValueToDisplay($searchopt, $data["new_value"]);
                         break;
                 }
             }
             if (empty($tmp['change'])) {
                 $tmp['change'] = sprintf(__('Change %1$s by %2$s'), $data["old_value"], $data["new_value"]);
             }
         }
         $changes[] = $tmp;
     }
     return $changes;
 }
All Usage Examples Of CommonDBTM::getTable
CommonDBTM