. -------------------------------------------------------------------------- */ // ---------------------------------------------------------------------- // Original Author of file: // Purpose of file: // ---------------------------------------------------------------------- // Class of the defined type class PluginExampleExample extends CommonDBTM { // Should return the localized name of the type static function getTypeName() { return 'Example Type'; } function canCreate() { if (isset($_SESSION["glpi_plugin_example_profile"])) { return ($_SESSION["glpi_plugin_example_profile"]['example'] == 'w'); } return false; } function canView() { if (isset($_SESSION["glpi_plugin_example_profile"])) { return ($_SESSION["glpi_plugin_example_profile"]['example'] == 'w' || $_SESSION["glpi_plugin_example_profile"]['example'] == 'r'); } return false; } function getSearchOptions() { $tab = array(); $tab['common'] = "Header Needed"; $tab[1]['table'] = 'glpi_plugin_example_examples'; $tab[1]['field'] = 'name'; $tab[1]['name'] = __('Name'); $tab[2]['table'] = 'glpi_plugin_example_dropdowns'; $tab[2]['field'] = 'name'; $tab[2]['name'] = __('Dropdown'); $tab[3]['table'] = 'glpi_plugin_example_examples'; $tab[3]['field'] = 'serial'; $tab[3]['name'] = __('Serial number'); $tab[3]['usehaving'] = true; $tab[3]['searchtype'] = 'equals'; $tab[30]['table'] = 'glpi_plugin_example_examples'; $tab[30]['field'] = 'id'; $tab[30]['name'] = __('ID'); return $tab; } /** * Give localized information about 1 task * * @param $name of the task * * @return array of strings */ static function cronInfo($name) { switch ($name) { case 'Sample' : return array('description' => __('Cron description for example'), 'parameter' => __('Cron parameter for example')); } return array(); } /** * Execute 1 task manage by the plugin * * @param $task Object of CronTask class for log / stat * * @return interger * >0 : done * <0 : to be run again (not finished) * 0 : nothing to do */ static function cronSample($task) { $task->log("Example log message from class"); $task->setVolume(mt_rand(0,$task->fields['param'])); return 1; } // Hook done on before add item case (data from form, not altered) static function pre_item_add_computer(Computer $item) { Session::addMessageAfterRedirect("Pre Add Computer Hook", true); } // Hook done on before add item case (data altered by object prepareInputForAdd) static function post_prepareadd_computer(Computer$item) { Session::addMessageAfterRedirect("Post prepareAdd Computer Hook", true); } // Hook done on add item case static function item_add_computer(Computer$item) { Session::addMessageAfterRedirect("Add Computer Hook, ID=".$item->getID(), true); return true; } function getTabNameForItem(CommonGLPI $item, $withtemplate=0) { if (!$withtemplate) { switch ($item->getType()) { case 'Profile' : if ($item->getField('central')) { return __('Example'); } break; case 'Phone' : if ($_SESSION['glpishow_count_on_tabs']) { return self::createTabEntry(__('Example'), countElementsInTable($this->getTable())); } return __('Example'); case 'ComputerDisk' : case 'Supplier' : return array(1 => __("Test PLugin"), 2 => __("Test PLugin 2")); case 'Computer' : case 'Central' : case 'Preference': case 'Notification': return array(1 => __("Test PLugin")); } } return ''; } static function displayTabContentForItem(CommonGLPI $item, $tabnum=1, $withtemplate=0) { switch ($item->getType()) { case 'Phone' : _e("Plugin Example on Phone"); break; case 'Central' : _e("Plugin central action"); break; case 'Preference' : // Complete form display $data = plugin_version_example(); echo "
"; break; case 'Notification' : _e("Plugin mailing action"); break; case 'ComputerDisk' : case 'Supplier' : if ($tabnum==1) { _e('First tab of Plugin example'); } else { _e('Second tab of Plugin example'); } break; default : //TRANS: %1$s is a class name, %2$d is an item ID printf(__('Plugin example CLASS=%1$s id=%2$d'), $item->getType(), $item->getField('id')); break; } return true; } static function getSpecificValueToDisplay($field, $values, array $options=array()) { if (!is_array($values)) { $values = array($field => $values); } switch ($field) { case 'serial' : return "S/N: ".$values[$field]; } return ''; } // Parm contains begin, end and who // Create data to be displayed in the planning of $parm["who"] or $parm["who_group"] between $parm["begin"] and $parm["end"] static function populatePlanning($parm) { // Add items in the output array // Items need to have an unique index beginning by the begin date of the item to display // needed to be correcly displayed $output = array(); $key = $parm["begin"]."$$$"."plugin_example1"; $output[$key]["plugin"] = "example"; $output[$key]["begin"] = date("Y-m-d 17:00:00"); $output[$key]["end"] = date("Y-m-d 18:00:00"); $output[$key]["name"] = __("test planning example 1"); // Set the ID using the ID of the item in the database to have unique ID $ID = date("Ymd"); // Current date for example $output[$key]["planningID"] = "plugin_example".$ID; // Specify the itemtype to be able to use specific display system $output[$key]["itemtype"] = "PluginExampleExample"; return $output; } } ?>