function plugin_init_racks() { global $PLUGIN_HOOKS, $CFG_GLPI; $PLUGIN_HOOKS['csrf_compliant']['racks'] = true; //load changeprofile function $PLUGIN_HOOKS['change_profile']['racks'] = array('PluginRacksProfile', 'initProfile'); $plugin = new Plugin(); if ($plugin->isInstalled('racks') && $plugin->isActivated('racks')) { //Ability to add a rack to a project $CFG_GLPI["project_asset_types"][] = 'PluginRacksRack'; $PLUGIN_HOOKS['assign_to_ticket']['racks'] = true; Plugin::registerClass('PluginRacksRack', array('document_types' => true, 'location_types' => true, 'unicity_types' => true, 'linkgroup_tech_types' => true, 'linkuser_tech_types' => true, 'infocom_types' => true, 'ticket_types' => true)); Plugin::registerClass('PluginRacksProfile', array('addtabon' => 'Profile')); $types = array('PluginAppliancesAppliance', 'PluginManufacturersimportsConfig', 'PluginTreeviewConfig', 'PluginPositionsPosition'); foreach ($types as $itemtype) { if (class_exists($itemtype)) { $itemtype::registerType('PluginRacksRack'); } } //If treeview plugin is installed, add rack as a type of item //that can be shown in the tree if (class_exists('PluginTreeviewConfig')) { $PLUGIN_HOOKS['treeview']['PluginRacksRack'] = '../racks/pics/racks.png'; } if (Session::getLoginUserID()) { include_once GLPI_ROOT . "/plugins/racks/inc/rack.class.php"; if (PluginRacksRack::canView()) { //Display menu entry only if user has right to see it ! $PLUGIN_HOOKS["menu_toadd"]['racks'] = array('assets' => 'PluginRacksMenu'); $PLUGIN_HOOKS['use_massive_action']['racks'] = 1; } if (PluginRacksRack::canCreate() || Config::canUpdate()) { $PLUGIN_HOOKS['config_page']['racks'] = 'front/config.form.php'; } $PLUGIN_HOOKS['add_css']['racks'] = "racks.css"; $PLUGIN_HOOKS['post_init']['racks'] = 'plugin_racks_postinit'; $PLUGIN_HOOKS['reports']['racks'] = array('front/report.php' => __("Report - Bays management", "racks")); } } }
static function getMenuContent() { global $CFG_GLPI; $menu = array(); //Menu entry in tools $menu['title'] = self::getMenuName(2); $menu['page'] = PluginRacksRack::getSearchURL(false); $menu['links']['search'] = PluginRacksRack::getSearchURL(false); $menu['options']['racks']['links']['search'] = PluginRacksRack::getSearchURL(false); $menu['options']['racks']['links']['config'] = PluginRacksConfig::getFormURL(false); $menu['options']['config']['title'] = __('Setup'); $menu['options']['config']['page'] = PluginRacksConfig::getSearchURL(false); $menu['options']['specifications']['title'] = __('Specifications', 'racks'); $menu['options']['specifications']['page'] = PluginRacksItemSpecification::getSearchURL(false); $menu['options']['specifications']['links']['search'] = PluginRacksItemSpecification::getSearchURL(false); if (PluginRacksRack::canCreate()) { $menu['options']['racks']['links']['add'] = PluginRacksRack::getFormURL(false); } if (PluginRacksRackModel::canView()) { $menu['options']['racks']['links']['template'] = '/plugins/racks/front/setup.templates.php?add=0'; $menu['options']['racks']['links']["<img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png' title=\"" . __('Equipments models specifications', 'racks') . "\" alt=\"" . __('Equipments models specifications', 'racks') . "\">"] = PluginRacksItemSpecification::getSearchURL(false); } return $menu; }
} else { if (isset($_POST["addDevice"])) { if (!isset($_POST['rack_size'])) { $PluginRacksRack->getFromDB($_POST['racks_id']); $_POST['rack_size'] = $PluginRacksRack->fields['rack_size']; } $test = explode(";", $_POST['itemtype']); $_POST['itemtype'] = $test[0]; $_POST['items_id'] = $test[1]; $_POST['plugin_racks_itemspecifications_id'] = $test[2]; if ($_POST['itemtype'] == 'PluginRacksOtherModel') { $newid = $PluginRacksOther->addOthers($_POST['items_id']); $_POST['items_id'] = $newid; } if (!empty($_POST['itemtype']) && $_POST['items_id'] > 0 && !empty($_POST['pos'])) { if ($PluginRacksRack->canCreate()) { $space_left = $PluginRacksRack_Item->addItem($_POST['plugin_racks_racks_id'], $_POST['rack_size'], $_POST['faces_id'], $_POST['items_id'], $_POST['itemtype'], $_POST['plugin_racks_itemspecifications_id'], $_POST['pos']); if ($space_left < 0) { Session::addMessageAfterRedirect(__('No more place for insertion', 'racks'), false, ERROR); } } } Html::back(); } elseif (isset($_POST["deleteDevice"])) { if ($PluginRacksRack->canCreate()) { foreach ($_POST["item"] as $key => $val) { $input = array('id' => $key); if ($val == 1) { $PluginRacksRack_Item->delete($input); } }
} else { if (isset($_POST["addDevice"])) { if (!isset($_POST['rack_size'])) { $PluginRacksRack->getFromDB($_POST['racks_id']); $_POST['rack_size'] = $PluginRacksRack->fields['rack_size']; } $test = explode(";", $_POST['itemtype']); $_POST['itemtype'] = $test[0]; $_POST['items_id'] = $test[1]; $_POST['plugin_racks_itemspecifications_id'] = $test[2]; if ($_POST['itemtype'] == 'PluginRacksOtherModel') { $newid = $PluginRacksOther->addOthers($_POST['items_id']); $_POST['items_id'] = $newid; } if (!empty($_POST['itemtype']) && $_POST['items_id'] > 0 && !empty($_POST['pos'])) { if ($PluginRacksRack->canCreate()) { $space_left = $PluginRacksRack_Item->addItem($_POST['plugin_racks_racks_id'], $_POST['rack_size'], $_POST['faces_id'], $_POST['items_id'], $_POST['itemtype'], $_POST['plugin_racks_itemspecifications_id'], $_POST['pos']); if ($space_left < 0) { if ($_POST['itemtype'] == 'PluginRacksOtherModel') { $PluginRacksOther->deleteOthers($_POST['items_id']); } Session::addMessageAfterRedirect(__('No more place for insertion', 'racks'), false, ERROR); } } } Html::back(); } elseif (isset($_POST["deleteDevice"])) { if ($PluginRacksRack->canCreate() && isset($_POST["item"])) { foreach ($_POST["item"] as $key => $val) { $input = array('id' => $key); if ($val == 1) {