CommonDBTM::isField PHP Method

isField() public method

Determine if a field exists
public isField ( $field ) : boolean
$field field name
return boolean
    function isField($field)
    {
        if (!isset($this->fields['id'])) {
            $this->getEmpty();
        }
        return array_key_exists($field, $this->fields);
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Generate link
  *
  * @param $link    string   original string content
  * @param $item             CommonDBTM object: item used to make replacements
  *
  * @return array of link contents (may have several when item have several IP / MAC cases)
  **/
 static function generateLinkContents($link, CommonDBTM $item)
 {
     global $DB;
     if (strstr($link, "[ID]")) {
         $link = str_replace("[ID]", $item->fields['id'], $link);
     }
     if (strstr($link, "[LOGIN]") && isset($_SESSION["glpiname"])) {
         $link = str_replace("[LOGIN]", $_SESSION["glpiname"], $link);
     }
     if (strstr($link, "[NAME]")) {
         $link = str_replace("[NAME]", $item->getName(), $link);
     }
     if (strstr($link, "[SERIAL]") && $item->isField('serial')) {
         $link = str_replace("[SERIAL]", $item->getField('serial'), $link);
     }
     if (strstr($link, "[OTHERSERIAL]") && $item->isField('otherserial')) {
         $link = str_replace("[OTHERSERIAL]", $item->getField('otherserial'), $link);
     }
     if (strstr($link, "[LOCATIONID]") && $item->isField('locations_id')) {
         $link = str_replace("[LOCATIONID]", $item->getField('locations_id'), $link);
     }
     if (strstr($link, "[LOCATION]") && $item->isField('locations_id')) {
         $link = str_replace("[LOCATION]", Dropdown::getDropdownName("glpi_locations", $item->getField('locations_id')), $link);
     }
     if (strstr($link, "[NETWORK]") && $item->isField('networks_id')) {
         $link = str_replace("[NETWORK]", Dropdown::getDropdownName("glpi_networks", $item->getField('networks_id')), $link);
     }
     if (strstr($link, "[DOMAIN]") && $item->isField('domains_id')) {
         $link = str_replace("[DOMAIN]", Dropdown::getDropdownName("glpi_domains", $item->getField('domains_id')), $link);
     }
     if (strstr($link, "[USER]") && $item->isField('users_id')) {
         $link = str_replace("[USER]", Dropdown::getDropdownName("glpi_users", $item->getField('users_id')), $link);
     }
     if (strstr($link, "[GROUP]") && $item->isField('groups_id')) {
         $link = str_replace("[GROUP]", Dropdown::getDropdownName("glpi_groups", $item->getField('groups_id')), $link);
     }
     if (strstr($link, "[REALNAME]") && $item->isField('realname')) {
         $link = str_replace("[REALNAME]", $item->getField('realname'), $link);
     }
     if (strstr($link, "[FIRSTNAME]") && $item->isField('firstname')) {
         $link = str_replace("[FIRSTNAME]", $item->getField('firstname'), $link);
     }
     $replace_IP = strstr($link, "[IP]");
     $replace_MAC = strstr($link, "[MAC]");
     if (!$replace_IP && !$replace_MAC) {
         return array($link);
     }
     // Return several links id several IP / MAC
     $ipmac = array();
     if (get_class($item) == 'NetworkEquipment') {
         if ($replace_IP) {
             $query2 = "SELECT `glpi_ipaddresses`.`id`,\n                              `glpi_ipaddresses`.`name` AS ip\n                       FROM `glpi_networknames`, `glpi_ipaddresses`\n                       WHERE `glpi_networknames`.`items_id` = '" . $item->getID() . "'\n                             AND `glpi_networknames`.`itemtype` = 'NetworkEquipment'\n                             AND `glpi_ipaddresses`.`itemtype` = 'NetworkName'\n                             AND `glpi_ipaddresses`.`items_id` = `glpi_networknames`.`id`";
             foreach ($DB->request($query2) as $data2) {
                 $ipmac['ip' . $data2['id']]['ip'] = $data2["ip"];
                 $ipmac['ip' . $data2['id']]['mac'] = $item->getField('mac');
             }
         }
         if ($replace_MAC) {
             // If there is no entry, then, we must at least define the mac of the item ...
             if (count($ipmac) == 0) {
                 $ipmac['mac0']['ip'] = '';
                 $ipmac['mac0']['mac'] = $item->getField('mac');
             }
         }
     }
     if ($replace_IP) {
         $query2 = "SELECT `glpi_ipaddresses`.`id`,\n                           `glpi_networkports`.`mac`,\n                           `glpi_ipaddresses`.`name` AS ip\n                    FROM `glpi_networkports`, `glpi_networknames`, `glpi_ipaddresses`\n                    WHERE `glpi_networkports`.`items_id` = '" . $item->getID() . "'\n                          AND `glpi_networkports`.`itemtype` = '" . $item->getType() . "'\n                          AND `glpi_networknames`.`itemtype` = 'NetworkPort'\n                          AND `glpi_networknames`.`items_id` = `glpi_networkports`.`id`\n                          AND `glpi_ipaddresses`.`itemtype` = 'NetworkName'\n                          AND `glpi_ipaddresses`.`items_id` = `glpi_networknames`.`id`";
         foreach ($DB->request($query2) as $data2) {
             $ipmac['ip' . $data2['id']]['ip'] = $data2["ip"];
             $ipmac['ip' . $data2['id']]['mac'] = $data2["mac"];
         }
     }
     if ($replace_MAC) {
         $left = '';
         $where = '';
         if ($replace_IP) {
             $left = " LEFT JOIN `glpi_networknames`\n                             ON (`glpi_networknames`.`items_id` = `glpi_networkports`.`id`\n                                 AND `glpi_networknames`.`itemtype` = 'NetworkPort')";
             $where = " AND `glpi_networknames`.`id` IS NULL";
         }
         $query2 = "SELECT `glpi_networkports`.`id`,\n                           `glpi_networkports`.`mac`\n                    FROM `glpi_networkports`\n                    {$left}\n                    WHERE `glpi_networkports`.`items_id` = '" . $item->getID() . "'\n                          AND `glpi_networkports`.`itemtype` = '" . $item->getType() . "'\n                    {$where}\n                    GROUP BY `glpi_networkports`.`mac`";
         foreach ($DB->request($query2) as $data2) {
             $ipmac['mac' . $data2['id']]['ip'] = '';
             $ipmac['mac' . $data2['id']]['mac'] = $data2["mac"];
         }
     }
     $links = array();
     if (count($ipmac) > 0) {
         foreach ($ipmac as $key => $val) {
             $tmplink = $link;
             $disp = 1;
             if (strstr($link, "[IP]")) {
                 if (empty($val['ip'])) {
                     $disp = 0;
                 } else {
                     $tmplink = str_replace("[IP]", $val['ip'], $tmplink);
                 }
             }
             if (strstr($link, "[MAC]")) {
                 if (empty($val['mac'])) {
                     $disp = 0;
                 } else {
                     $tmplink = str_replace("[MAC]", $val['mac'], $tmplink);
                 }
             }
             if ($disp) {
                 $links[$key] = $tmplink;
             }
         }
     }
     if (count($links)) {
         return $links;
     }
     return array($link);
 }
All Usage Examples Of CommonDBTM::isField
CommonDBTM