Computer::getSearchOptions PHP Method

getSearchOptions() public method

public getSearchOptions ( )
    function getSearchOptions()
    {
        global $CFG_GLPI;
        $tab = array();
        $tab['common'] = __('Characteristics');
        $tab[1]['table'] = $this->getTable();
        $tab[1]['field'] = 'name';
        $tab[1]['name'] = __('Name');
        $tab[1]['datatype'] = 'itemlink';
        $tab[1]['massiveaction'] = false;
        // implicit key==1
        $tab[2]['table'] = $this->getTable();
        $tab[2]['field'] = 'id';
        $tab[2]['name'] = __('ID');
        $tab[2]['massiveaction'] = false;
        // implicit field is id
        $tab[2]['datatype'] = 'number';
        $tab += Location::getSearchOptionsToAdd();
        $tab[4]['table'] = 'glpi_computertypes';
        $tab[4]['field'] = 'name';
        $tab[4]['name'] = __('Type');
        $tab[4]['datatype'] = 'dropdown';
        $tab[40]['table'] = 'glpi_computermodels';
        $tab[40]['field'] = 'name';
        $tab[40]['name'] = __('Model');
        $tab[40]['datatype'] = 'dropdown';
        $tab[31]['table'] = 'glpi_states';
        $tab[31]['field'] = 'completename';
        $tab[31]['name'] = __('Status');
        $tab[31]['datatype'] = 'dropdown';
        $tab[31]['condition'] = "`is_visible_computer`";
        $tab[45]['table'] = 'glpi_operatingsystems';
        $tab[45]['field'] = 'name';
        $tab[45]['name'] = __('Operating system');
        $tab[45]['datatype'] = 'dropdown';
        $tab[46]['table'] = 'glpi_operatingsystemversions';
        $tab[46]['field'] = 'name';
        $tab[46]['name'] = __('Version of the operating system');
        $tab[46]['datatype'] = 'dropdown';
        $tab[41]['table'] = 'glpi_operatingsystemservicepacks';
        $tab[41]['field'] = 'name';
        $tab[41]['name'] = __('Service pack');
        $tab[41]['datatype'] = 'dropdown';
        $tab[42]['table'] = 'glpi_autoupdatesystems';
        $tab[42]['field'] = 'name';
        $tab[42]['name'] = __('Update Source');
        $tab[42]['datatype'] = 'dropdown';
        $tab[43]['table'] = $this->getTable();
        $tab[43]['field'] = 'os_license_number';
        $tab[43]['name'] = __('Serial of the operating system');
        $tab[43]['datatype'] = 'string';
        $tab[44]['table'] = $this->getTable();
        $tab[44]['field'] = 'os_licenseid';
        $tab[44]['name'] = __('Product ID of the operating system');
        $tab[44]['datatype'] = 'string';
        $tab[61]['table'] = 'glpi_operatingsystemarchitectures';
        $tab[61]['field'] = 'name';
        $tab[61]['name'] = __('Operating system architecture');
        $tab[61]['datatype'] = 'dropdown';
        $tab[47]['table'] = $this->getTable();
        $tab[47]['field'] = 'uuid';
        $tab[47]['name'] = __('UUID');
        $tab[47]['datatype'] = 'string';
        $tab[48]['table'] = $this->getTable();
        $tab[48]['field'] = 'os_kernel_version';
        $tab[48]['name'] = __('Kernel version of the operating system');
        $tab[48]['datatype'] = 'string';
        $tab[5]['table'] = $this->getTable();
        $tab[5]['field'] = 'serial';
        $tab[5]['name'] = __('Serial number');
        $tab[5]['datatype'] = 'string';
        $tab[6]['table'] = $this->getTable();
        $tab[6]['field'] = 'otherserial';
        $tab[6]['name'] = __('Inventory number');
        $tab[6]['datatype'] = 'string';
        $tab[16]['table'] = $this->getTable();
        $tab[16]['field'] = 'comment';
        $tab[16]['name'] = __('Comments');
        $tab[16]['datatype'] = 'text';
        $tab[7]['table'] = $this->getTable();
        $tab[7]['field'] = 'contact';
        $tab[7]['name'] = __('Alternate username');
        $tab[7]['datatype'] = 'string';
        $tab[8]['table'] = $this->getTable();
        $tab[8]['field'] = 'contact_num';
        $tab[8]['name'] = __('Alternate username number');
        $tab[8]['datatype'] = 'string';
        $tab[70]['table'] = 'glpi_users';
        $tab[70]['field'] = 'name';
        $tab[70]['name'] = __('User');
        $tab[70]['datatype'] = 'dropdown';
        $tab[70]['right'] = 'all';
        $tab[71]['table'] = 'glpi_groups';
        $tab[71]['field'] = 'completename';
        $tab[71]['name'] = __('Group');
        $tab[71]['condition'] = '`is_itemgroup`';
        $tab[71]['datatype'] = 'dropdown';
        $tab[19]['table'] = $this->getTable();
        $tab[19]['field'] = 'date_mod';
        $tab[19]['name'] = __('Last update');
        $tab[19]['datatype'] = 'datetime';
        $tab[19]['massiveaction'] = false;
        $tab[121]['table'] = $this->getTable();
        $tab[121]['field'] = 'date_creation';
        $tab[121]['name'] = __('Creation date');
        $tab[121]['datatype'] = 'datetime';
        $tab[121]['massiveaction'] = false;
        $tab[32]['table'] = 'glpi_networks';
        $tab[32]['field'] = 'name';
        $tab[32]['name'] = __('Network');
        $tab[32]['datatype'] = 'dropdown';
        $tab[33]['table'] = 'glpi_domains';
        $tab[33]['field'] = 'name';
        $tab[33]['name'] = __('Domain');
        $tab[33]['datatype'] = 'dropdown';
        $tab[23]['table'] = 'glpi_manufacturers';
        $tab[23]['field'] = 'name';
        $tab[23]['name'] = __('Manufacturer');
        $tab[23]['datatype'] = 'dropdown';
        $tab[24]['table'] = 'glpi_users';
        $tab[24]['field'] = 'name';
        $tab[24]['linkfield'] = 'users_id_tech';
        $tab[24]['name'] = __('Technician in charge of the hardware');
        $tab[24]['datatype'] = 'dropdown';
        $tab[24]['right'] = 'own_ticket';
        $tab[49]['table'] = 'glpi_groups';
        $tab[49]['field'] = 'completename';
        $tab[49]['linkfield'] = 'groups_id_tech';
        $tab[49]['name'] = __('Group in charge of the hardware');
        $tab[49]['condition'] = '`is_assign`';
        $tab[49]['datatype'] = 'dropdown';
        $tab[80]['table'] = 'glpi_entities';
        $tab[80]['field'] = 'completename';
        $tab[80]['name'] = __('Entity');
        $tab[80]['datatype'] = 'dropdown';
        // add objectlock search options
        $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
        $tab += Notepad::getSearchOptionsToAdd();
        $tab['periph'] = _n('Component', 'Components', Session::getPluralNumber());
        $items_device_joinparams = array('jointype' => 'itemtype_item', 'specific_itemtype' => 'Computer');
        $tab[17]['table'] = 'glpi_deviceprocessors';
        $tab[17]['field'] = 'designation';
        $tab[17]['name'] = __('Processor');
        $tab[17]['forcegroupby'] = true;
        $tab[17]['usehaving'] = true;
        $tab[17]['massiveaction'] = false;
        $tab[17]['datatype'] = 'string';
        $tab[17]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_deviceprocessors', 'joinparams' => $items_device_joinparams));
        $tab[36]['table'] = 'glpi_items_deviceprocessors';
        $tab[36]['field'] = 'frequency';
        $tab[36]['name'] = __('Processor frequency');
        $tab[36]['unit'] = __('MHz');
        $tab[36]['forcegroupby'] = true;
        $tab[36]['usehaving'] = true;
        $tab[36]['datatype'] = 'number';
        $tab[36]['width'] = 100;
        $tab[36]['massiveaction'] = false;
        $tab[36]['joinparams'] = $items_device_joinparams;
        $tab[36]['computation'] = "SUM(TABLE.`frequency`) / COUNT(TABLE.`id`)";
        $tab[10]['table'] = 'glpi_devicememories';
        $tab[10]['field'] = 'designation';
        $tab[10]['name'] = __('Memory type');
        $tab[10]['forcegroupby'] = true;
        $tab[10]['usehaving'] = true;
        $tab[10]['massiveaction'] = false;
        $tab[10]['datatype'] = 'string';
        $tab[10]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicememories', 'joinparams' => $items_device_joinparams));
        $tab[35]['table'] = 'glpi_items_devicememories';
        $tab[35]['field'] = 'size';
        $tab[35]['unit'] = __('Mio');
        $tab[35]['name'] = sprintf(__('%1$s (%2$s)'), __('Memory'), __('Mio'));
        $tab[35]['forcegroupby'] = true;
        $tab[35]['usehaving'] = true;
        $tab[35]['datatype'] = 'number';
        $tab[35]['width'] = 100;
        $tab[35]['massiveaction'] = false;
        $tab[35]['joinparams'] = $items_device_joinparams;
        $tab[35]['computation'] = "(SUM(TABLE.`size`) / COUNT(TABLE.`id`))\n                                    * COUNT(DISTINCT TABLE.`id`)";
        $tab[11]['table'] = 'glpi_devicenetworkcards';
        $tab[11]['field'] = 'designation';
        $tab[11]['name'] = _n('Network interface', 'Network interfaces', 1);
        $tab[11]['forcegroupby'] = true;
        $tab[11]['massiveaction'] = false;
        $tab[11]['datatype'] = 'string';
        $tab[11]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicenetworkcards', 'joinparams' => $items_device_joinparams));
        $tab[20]['table'] = 'glpi_items_devicenetworkcards';
        $tab[20]['field'] = 'mac';
        $tab[20]['name'] = __('MAC address');
        $tab[20]['forcegroupby'] = true;
        $tab[20]['massiveaction'] = false;
        $tab[20]['datatype'] = 'string';
        $tab[20]['joinparams'] = $items_device_joinparams;
        $tab[12]['table'] = 'glpi_devicesoundcards';
        $tab[12]['field'] = 'designation';
        $tab[12]['name'] = __('Soundcard');
        $tab[12]['forcegroupby'] = true;
        $tab[12]['massiveaction'] = false;
        $tab[12]['datatype'] = 'string';
        $tab[12]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicesoundcards', 'joinparams' => $items_device_joinparams));
        $tab[13]['table'] = 'glpi_devicegraphiccards';
        $tab[13]['field'] = 'designation';
        $tab[13]['name'] = __('Graphics card');
        $tab[13]['forcegroupby'] = true;
        $tab[13]['massiveaction'] = false;
        $tab[13]['datatype'] = 'string';
        $tab[13]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicegraphiccards', 'joinparams' => $items_device_joinparams));
        $tab[14]['table'] = 'glpi_devicemotherboards';
        $tab[14]['field'] = 'designation';
        $tab[14]['name'] = __('System board');
        $tab[14]['forcegroupby'] = true;
        $tab[14]['massiveaction'] = false;
        $tab[14]['datatype'] = 'string';
        $tab[14]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicemotherboards', 'joinparams' => $items_device_joinparams));
        $tab[15]['table'] = 'glpi_deviceharddrives';
        $tab[15]['field'] = 'designation';
        $tab[15]['name'] = __('Hard drive type');
        $tab[15]['forcegroupby'] = true;
        $tab[15]['usehaving'] = true;
        $tab[15]['massiveaction'] = false;
        $tab[15]['datatype'] = 'string';
        $tab[15]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_deviceharddrives', 'joinparams' => $items_device_joinparams));
        $tab[34]['table'] = 'glpi_items_deviceharddrives';
        $tab[34]['field'] = 'capacity';
        $tab[34]['name'] = __('Hard drive size');
        $tab[34]['unit'] = __('Mio');
        $tab[34]['forcegroupby'] = true;
        $tab[34]['usehaving'] = true;
        $tab[34]['datatype'] = 'number';
        $tab[34]['width'] = 1000;
        $tab[34]['massiveaction'] = false;
        $tab[34]['joinparams'] = $items_device_joinparams;
        $tab[34]['computation'] = "(SUM(TABLE.`capacity`) / COUNT(TABLE.`id`))\n                                       * COUNT(DISTINCT TABLE.`id`)";
        $tab[39]['table'] = 'glpi_devicepowersupplies';
        $tab[39]['field'] = 'designation';
        $tab[39]['name'] = __('Power supply');
        $tab[39]['forcegroupby'] = true;
        $tab[39]['usehaving'] = true;
        $tab[39]['massiveaction'] = false;
        $tab[39]['datatype'] = 'string';
        $tab[39]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicepowersupplies', 'joinparams' => $items_device_joinparams));
        $tab[95]['table'] = 'glpi_devicepcis';
        $tab[95]['field'] = 'designation';
        $tab[95]['name'] = __('Other component');
        $tab[95]['forcegroupby'] = true;
        $tab[95]['usehaving'] = true;
        $tab[95]['massiveaction'] = false;
        $tab[95]['datatype'] = 'string';
        $tab[95]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicepcis', 'joinparams' => $items_device_joinparams));
        $tab['disk'] = _n('Volume', 'Volumes', Session::getPluralNumber());
        $tab[156]['table'] = 'glpi_computerdisks';
        $tab[156]['field'] = 'name';
        $tab[156]['name'] = __('Volume');
        $tab[156]['forcegroupby'] = true;
        $tab[156]['massiveaction'] = false;
        $tab[156]['datatype'] = 'dropdown';
        $tab[156]['joinparams'] = array('jointype' => 'child');
        $tab[150]['table'] = 'glpi_computerdisks';
        $tab[150]['field'] = 'totalsize';
        $tab[150]['name'] = sprintf(__('%1$s (%2$s)'), __('Global size'), __('Mio'));
        $tab[150]['forcegroupby'] = true;
        $tab[150]['usehaving'] = true;
        $tab[150]['datatype'] = 'number';
        $tab[150]['width'] = 1000;
        $tab[150]['massiveaction'] = false;
        $tab[150]['joinparams'] = array('jointype' => 'child');
        $tab[151]['table'] = 'glpi_computerdisks';
        $tab[151]['field'] = 'freesize';
        $tab[151]['name'] = __('Free size');
        $tab[151]['forcegroupby'] = true;
        $tab[151]['datatype'] = 'number';
        $tab[151]['width'] = 1000;
        $tab[151]['massiveaction'] = false;
        $tab[151]['joinparams'] = array('jointype' => 'child');
        $tab[152]['table'] = 'glpi_computerdisks';
        $tab[152]['field'] = 'freepercent';
        $tab[152]['name'] = __('Free percentage');
        $tab[152]['forcegroupby'] = true;
        $tab[152]['datatype'] = 'decimal';
        $tab[152]['width'] = 2;
        $tab[152]['computation'] = "ROUND(100*TABLE.freesize/TABLE.totalsize)";
        $tab[152]['computationgroupby'] = true;
        $tab[152]['unit'] = '%';
        $tab[152]['massiveaction'] = false;
        $tab[152]['joinparams'] = array('jointype' => 'child');
        $tab[153]['table'] = 'glpi_computerdisks';
        $tab[153]['field'] = 'mountpoint';
        $tab[153]['name'] = __('Mount point');
        $tab[153]['forcegroupby'] = true;
        $tab[153]['massiveaction'] = false;
        $tab[153]['datatype'] = 'string';
        $tab[153]['joinparams'] = array('jointype' => 'child');
        $tab[154]['table'] = 'glpi_computerdisks';
        $tab[154]['field'] = 'device';
        $tab[154]['name'] = __('Partition');
        $tab[154]['forcegroupby'] = true;
        $tab[154]['massiveaction'] = false;
        $tab[154]['datatype'] = 'string';
        $tab[154]['joinparams'] = array('jointype' => 'child');
        $tab[155]['table'] = 'glpi_filesystems';
        $tab[155]['field'] = 'name';
        $tab[155]['name'] = __('File system');
        $tab[155]['forcegroupby'] = true;
        $tab[155]['massiveaction'] = false;
        $tab[155]['datatype'] = 'dropdown';
        $tab[155]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computerdisks', 'joinparams' => array('jointype' => 'child')));
        $tab['virtualmachine'] = _n('Virtual machine', 'Virtual machines', Session::getPluralNumber());
        $tab[160]['table'] = 'glpi_computervirtualmachines';
        $tab[160]['field'] = 'name';
        $tab[160]['name'] = __('Virtual machine');
        $tab[160]['forcegroupby'] = true;
        $tab[160]['massiveaction'] = false;
        $tab[160]['datatype'] = 'dropdown';
        $tab[160]['joinparams'] = array('jointype' => 'child');
        $tab[161]['table'] = 'glpi_virtualmachinestates';
        $tab[161]['field'] = 'name';
        $tab[161]['name'] = __('State of the virtual machine');
        $tab[161]['forcegroupby'] = true;
        $tab[161]['massiveaction'] = false;
        $tab[161]['datatype'] = 'dropdown';
        $tab[161]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computervirtualmachines', 'joinparams' => array('jointype' => 'child')));
        $tab[162]['table'] = 'glpi_virtualmachinesystems';
        $tab[162]['field'] = 'name';
        $tab[162]['name'] = __('Virtualization model');
        $tab[162]['forcegroupby'] = true;
        $tab[162]['massiveaction'] = false;
        $tab[162]['datatype'] = 'dropdown';
        $tab[162]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computervirtualmachines', 'joinparams' => array('jointype' => 'child')));
        $tab[163]['table'] = 'glpi_virtualmachinetypes';
        $tab[163]['field'] = 'name';
        $tab[163]['name'] = __('Virtualization system');
        $tab[163]['datatype'] = 'dropdown';
        $tab[163]['forcegroupby'] = true;
        $tab[163]['massiveaction'] = false;
        $tab[163]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computervirtualmachines', 'joinparams' => array('jointype' => 'child')));
        $tab[164]['table'] = 'glpi_computervirtualmachines';
        $tab[164]['field'] = 'vcpu';
        $tab[164]['name'] = __('Virtual machine processor number');
        $tab[164]['datatype'] = 'number';
        $tab[164]['forcegroupby'] = true;
        $tab[164]['massiveaction'] = false;
        $tab[164]['joinparams'] = array('jointype' => 'child');
        $tab[165]['table'] = 'glpi_computervirtualmachines';
        $tab[165]['field'] = 'ram';
        $tab[165]['name'] = __('Memory of virtual machines');
        $tab[165]['datatype'] = 'number';
        $tab[165]['unit'] = __('Mio');
        $tab[165]['forcegroupby'] = true;
        $tab[165]['massiveaction'] = false;
        $tab[165]['joinparams'] = array('jointype' => 'child');
        $tab[166]['table'] = 'glpi_computervirtualmachines';
        $tab[166]['field'] = 'uuid';
        $tab[166]['name'] = __('Virtual machine UUID');
        $tab[165]['datatype'] = 'string';
        $tab[166]['forcegroupby'] = true;
        $tab[166]['massiveaction'] = false;
        $tab[166]['joinparams'] = array('jointype' => 'child');
        $tab += ComputerAntivirus::getSearchOptionsToAdd();
        return $tab;
    }

Usage Example

 function getSearchOptions()
 {
     $computer = new Computer();
     $options = $computer->getSearchOptions();
     $options['6000']['name'] = __('Static group', 'fusioninventory');
     $options['6000']['table'] = getTableForItemType('PluginFusioninventoryDeployGroup');
     $options['6000']['massiveaction'] = FALSE;
     $options['6000']['field'] = 'name';
     $options['6000']['forcegroupby'] = true;
     $options['6000']['usehaving'] = true;
     $options['6000']['datatype'] = 'dropdown';
     $options['6000']['joinparams'] = array('beforejoin' => array('table' => 'glpi_plugin_fusioninventory_deploygroups_staticdatas', 'joinparams' => array('jointype' => 'itemtype_item', 'specific_itemtype' => 'Computer')));
     return $options;
 }