Completion of the URL $_GET values with the $_SESSION values or define default values
static public manageParams ( $itemtype, $params = [], $usesession = true, $forcebookmark = false ) : parsed | ||
$itemtype | item type to manage | |
$params | array params to parse | |
$usesession | Use datas save in session (true by default) | |
$forcebookmark | force trying to load parameters from default bookmark: used for global search (false by default) | |
return | parsed | params array |
private function doSearch($itemtype, $params, array $forcedisplay = array()) { global $DEBUG_SQL; // check param itemtype exists (to avoid search errors) $this->assertTrue(is_subclass_of($itemtype, "CommonDBTM")); // login to glpi if needed if (!isset($_SESSION['glpiname'])) { $this->Login(); } // force session in debug mode (to store & retrieve sql errors) $glpi_use_mode = $_SESSION['glpi_use_mode']; $_SESSION['glpi_use_mode'] = Session::DEBUG_MODE; // don't compute last request from session $params['reset'] = 'reset'; // do search $params = Search::manageParams($itemtype, $params); $data = Search::getDatas($itemtype, $params, $forcedisplay); // append existing errors to returned data $data['last_errors'] = array(); if (isset($DEBUG_SQL['errors'])) { $data['last_errors'] = implode(', ', $DEBUG_SQL['errors']); unset($DEBUG_SQL['errors']); } // restore glpi mode to previous $_SESSION['glpi_use_mode'] = $glpi_use_mode; // do not store this search from session Search::resetSaveSearch(); return $data; }
switch ($params["type"]) { case "comp_champ": $val = Stat::getItems($_GET["itemtype"], $params["date1"], $params["date2"], $params["dropdown"]); Stat::showTable($_GET["itemtype"], $params["type"], $params["date1"], $params["date2"], $params["start"], $val, $params["dropdown"]); break; case "device": $val = Stat::getItems($_GET["itemtype"], $params["date1"], $params["date2"], $params["dropdown"]); Stat::showTable($_GET["itemtype"], $params["type"], $params["date1"], $params["date2"], $params["start"], $val, $params["dropdown"]); break; default: $val2 = isset($params['value2']) ? $params['value2'] : 0; $val = Stat::getItems($_GET["itemtype"], $params["date1"], $params["date2"], $params["type"], $val2); Stat::showTable($_GET["itemtype"], $params["type"], $params["date1"], $params["date2"], $params["start"], $val, $val2); } } else { if (isset($_GET["type"]) && $_GET["type"] == "hardwares") { Stat::showItems("", $_GET["date1"], $_GET["date2"], $_GET['start']); } } break; default: // Plugin case if ($plug = isPluginItemType($_GET["item_type"])) { if (Plugin::doOneHook($plug['plugin'], 'dynamicReport', $_GET)) { exit; } } $params = Search::manageParams($_GET["item_type"], $_GET); Search::showList($_GET["item_type"], $params); } }
------------------------------------------------------------------------- LICENSE This file is part of GLPI. GLPI is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GLPI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GLPI. If not, see <http://www.gnu.org/licenses/>. -------------------------------------------------------------------------- */ /** @file * @brief */ include '../inc/includes.php'; Session::checkLoginUser(); Html::popHeader(__('Setup'), $_SERVER['PHP_SELF']); $params = Search::manageParams('DocumentType', $_GET); $params['target'] = $_SERVER['PHP_SELF']; Search::showList('DocumentType', $params); Html::popFooter();
@comment @copyright Copyright (c) 2011-2014 Plugin Monitoring for GLPI team @license AGPL License 3.0 or (at your option) any later version http://www.gnu.org/licenses/agpl-3.0-standalone.html @link https://forge.indepnet.net/projects/monitoring/ @since 2011 ------------------------------------------------------------------------ */ include "../../../inc/includes.php"; Session::checkCentralAccess(); Html::header(__('Monitoring - dashboard (resources)', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "PluginMonitoringDashboard", "dashboard"); if (!isset($_GET['itemtype'])) { $_GET['itemtype'] = "PluginMonitoringService"; } $params = Search::manageParams("PluginMonitoringService", $_GET); /* // Display ressources perfdata ? if (isset($_SESSION['plugin_monitoring']['ressources_perfdata'])) { Html::redirect($CFG_GLPI['root_doc']."/plugins/monitoring/front/perfdatas.php"); unset($_SESSION['plugin_monitoring']['ressources_perfdata']); } */ // Reduced or normal interface ? if (!isset($_SESSION['plugin_monitoring_reduced_interface'])) { $_SESSION['plugin_monitoring_reduced_interface'] = false; } if (isset($_POST['reduced_interface'])) { $_SESSION['plugin_monitoring_reduced_interface'] = $_POST['reduced_interface']; } $pmDisplay = new PluginMonitoringDisplay();
static function showResults(PluginFusioninventoryDeployGroup $group) { $computers_params['metacriteria'] = array(); $computers_params['criteria'][] = array('searchtype' => 'equals', 'value' => $_GET['id'], 'field' => 6000); $search_params = Search::manageParams('PluginFusioninventoryComputer', $computers_params); //Add extra parameters for massive action display : only the Delete action should be displayed $search_params['massiveactionparams']['extraparams']['id'] = $_GET['id']; $search_params['massiveactionparams']['extraparams']['custom_action'] = 'delete_from_group'; $search_params['massiveactionparams']['extraparams']['massive_action_fields'] = array('action', 'id'); Search::showList('PluginFusioninventoryComputer', $search_params); }
along with GLPI. If not, see <http://www.gnu.org/licenses/>. -------------------------------------------------------------------------- */ /** @file * @brief */ include '../inc/includes.php'; Session::checkCentralAccess(); Html::header(__('Search'), $_SERVER['PHP_SELF']); if (!$CFG_GLPI['allow_search_global']) { Html::displayRightError(); } if (isset($_GET["globalsearch"])) { $searchtext = trim($_GET["globalsearch"]); foreach ($CFG_GLPI["globalsearch_types"] as $itemtype) { if (($item = getItemForItemtype($itemtype)) && $item->canView()) { $_GET["reset"] = 'reset'; $params = Search::manageParams($itemtype, $_GET, false, true); $params["display_type"] = Search::GLOBAL_SEARCH; $count = count($params["criteria"]); $params["criteria"][$count]["field"] = 'view'; $params["criteria"][$count]["searchtype"] = 'contains'; $params["criteria"][$count]["value"] = $searchtext; // $_SESSION["glpisearchcount"][$itemtype] = $count+1; // $_SESSION["glpisearchcount2"][$itemtype] = 0; Search::showList($itemtype, $params); echo "<hr>"; } } } Html::footer();
/** * Display services associated with host * * @param $itemtype value type of item * @param $items_id integer id of the object * **/ function listByHost($itemtype, $items_id) { global $CFG_GLPI,$DB; $params = Search::manageParams("PluginMonitoringService", array(), false); $num = 20; // Computer if ($itemtype == 'Printer') { $num = 21; } else if ($itemtype == 'NetworkEquipment') { $num = 22; } $params['criteria'][0] = array( 'field' => $num, 'searchtype' => 'is', 'value' => $items_id ); $col_to_display = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); $data = Search::prepareDatasForSearch('PluginMonitoringService', $params, $col_to_display); $data['tocompute'] = $data['toview']; Search::constructSQL($data); Search::constructDatas($data); $pmComponentscatalog = new PluginMonitoringComponentscatalog(); $services_id = array(); foreach ($data['data']['rows'] as $row) { $services_id[] = $row['id']; } $oldvalue = current(getAllDatasFromTable( 'glpi_plugin_monitoring_serviceevents', "`plugin_monitoring_services_id` IN ('".implode("', '", $services_id)."')", false, 'date ASC LIMIT 1')); $date = new DateTime($oldvalue['date']); $start = time(); if ($date->getTimestamp() < $start) { $start = $date->getTimestamp(); } $nbdays = round((date('U') - $start) / 86400); echo "<script type=\"text/javascript\"> $(function() { $( \"#custom_date\" ).datepicker({ minDate: -".$nbdays.", maxDate: \"+0D\", dateFormat:'mm/dd/yy' }); $( \"#custom_time\" ).timepicker(); }); </script>"; echo '<center><input type="text" id="custom_date" value="'.date('m/d/Y').'"> ' . ' <input type="text" id="custom_time" value="'.date('H:i').'"></center>'; echo '<div id="custom_date" style="display:none"></div>'; echo '<div id="custom_time" style="display:none"></div>'; echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'>"; echo "<th colspan='5'>"; echo __('Resources', 'monitoring'); $item = new $itemtype(); $item->getFromDB($items_id); echo " - ".$item->getTypeName(); echo " - ".$item->getName(); echo "</th>"; echo "</tr>"; echo "<table class='tab_cadre_fixe'>"; foreach ($data['data']['rows'] as $row) { $pmComponentscatalog->getFromDB($row[8][0]['id']); echo "<tr class='tab_bg_1'>"; echo "<th colspan='14'>".$pmComponentscatalog->getTypeName()." : ".$pmComponentscatalog->getLink()."</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; // echo "<th>"; // echo __('Show counters', 'monitoring'); // echo "</th>"; echo "<th>"; echo __('Show graphics', 'monitoring'); echo "</th>"; echo "<th>"; echo __('Component', 'monitoring'); echo "</th>"; echo "<th>"; echo __('Resource state', 'monitoring'); echo "</th>"; echo "<th>"; echo __('Last check', 'monitoring'); echo "</th>"; echo "<th>"; echo __('Result details', 'monitoring'); echo "</th>"; echo "<th>"; echo __('Check period', 'monitoring'); echo "</th>"; echo "<th>".__('Current month', 'monitoring')." ".Html::showToolTip(__('Availability', 'monitoring'), array('display'=>false))."</th>"; echo "<th>".__('Last month', 'monitoring')." ".Html::showToolTip(__('Availability', 'monitoring'), array('display'=>false))."</th>"; echo "<th>".__('Current year', 'monitoring')." ".Html::showToolTip(__('Availability', 'monitoring'), array('display'=>false))."</th>"; echo "<th>".__('Detail', 'monitoring')."</th>"; echo '<th>'.__('Acknowledge', 'monitoring').'</th>'; echo "<th>".__('Arguments', 'monitoring')."</th>"; echo "</tr>"; // $querys = "SELECT `glpi_plugin_monitoring_services`.* FROM `glpi_plugin_monitoring_services` // LEFT JOIN `glpi_plugin_monitoring_components` // on `plugin_monitoring_components_id` = `glpi_plugin_monitoring_components`.`id` // WHERE `plugin_monitoring_componentscatalogs_hosts_id`='".$row['id']."' // ORDER BY `name`"; // $results = $DB->query($querys); // while ($datas=$DB->fetch_array($results)) { // $this->getFromDB($datas['id']); echo "<tr class='tab_bg_1'>"; PluginMonitoringDisplay::displayLine($row, 0); echo "</tr>"; // } echo "<tr style='border:1px solid #ccc;background-color:#ffffff'>"; echo "<td colspan='14' height='5'></td>"; echo "</tr>"; } echo "</table>"; Html::closeForm(); }
function prepareRun($taskjob_id, $definitions_filter = NULL) { global $DB; $task = new PluginFusioninventoryTask(); $job = new PluginFusioninventoryTaskjob(); $joblog = new PluginFusioninventoryTaskjoblog(); $jobstate = new PluginFusioninventoryTaskjobstate(); $agent = new PluginFusioninventoryAgent(); $agentmodule = new PluginFusioninventoryAgentmodule(); $job->getFromDB($taskjob_id); $task->getFromDB($job->fields['plugin_fusioninventory_tasks_id']); $communication = $task->fields['communication']; $actions = importArrayFromDB($job->fields['action']); $definitions = importArrayFromDB($job->fields['definition']); $taskvalid = 0; $computers = array(); foreach ($actions as $action) { $itemtype = key($action); $items_id = current($action); switch ($itemtype) { case 'Computer': if ($this->definitionFiltered("Computer", $definitions_filter)) { break; } $computers[] = $items_id; break; case 'Group': if ($this->definitionFiltered("Group", $definitions_filter)) { break; } $computer_object = new Computer(); //find computers by user associated with this group $group_users = new Group_User(); $group = new Group(); $group->getFromDB($items_id); $members = array(); $computers_a_1 = array(); $computers_a_2 = array(); //array_keys($group_users->find("groups_id = '$items_id'")); $members = $group_users->getGroupUsers($items_id); foreach ($members as $member) { $computers = $computer_object->find("users_id = '{$member['id']}' " . " AND `is_deleted`='0' AND `is_template`='0'"); foreach ($computers as $computer) { $computers_a_1[] = $computer['id']; } } //find computers directly associated with this group $computers = $computer_object->find("groups_id = '{$items_id}' " . " AND `is_deleted`='0' AND `is_template`='0'"); foreach ($computers as $computer) { $computers_a_2[] = $computer['id']; } //merge two previous array and deduplicate entries $computers = array_unique(array_merge($computers_a_1, $computers_a_2)); break; case 'PluginFusioninventoryDeployGroup': $group = new PluginFusioninventoryDeployGroup(); $group->getFromDB($items_id); switch ($group->getField('type')) { case 'STATIC': if ($this->definitionFiltered("PluginFusioninventoryDeployGroupStatic", $definitions_filter)) { break; } $query = "SELECT items_id\n FROM glpi_plugin_fusioninventory_deploygroups_staticdatas\n WHERE groups_id = '{$items_id}'\n AND itemtype = 'Computer'"; $res = $DB->query($query); while ($row = $DB->fetch_assoc($res)) { $computers[] = $row['items_id']; } break; case 'DYNAMIC': if ($this->definitionFiltered("PluginFusioninventoryDeployGroupDynamic", $definitions_filter)) { break; } //$definitions_filter is NULL = update by crontask ! if ($definitions_filter != NULL) { $where = " AND `can_update_group`='1'"; } else { $where = ""; } $query = "SELECT fields_array\n FROM glpi_plugin_fusioninventory_deploygroups_dynamicdatas\n WHERE groups_id = '{$items_id}' {$where}\n LIMIT 1"; $res = $DB->query($query); $row = $DB->fetch_assoc($res); //No dynamic groups have been found : break if ($DB->numrows($res) == 0) { break; } if (isset($_GET)) { $get_tmp = $_GET; } if (isset($_SESSION["glpisearchcount"]['Computer'])) { unset($_SESSION["glpisearchcount"]['Computer']); } if (isset($_SESSION["glpisearchcount2"]['Computer'])) { unset($_SESSION["glpisearchcount2"]['Computer']); } $_GET = importArrayFromDB($row['fields_array']); $_GET["glpisearchcount"] = count($_GET['field']); if (isset($_GET['field2'])) { $_GET["glpisearchcount2"] = count($_GET['field2']); } $pfSearch = new PluginFusioninventorySearch(); Search::manageParams('Computer'); $glpilist_limit = $_SESSION['glpilist_limit']; $_SESSION['glpilist_limit'] = 999999999; $result = $pfSearch->constructSQL('Computer', $_GET); $_SESSION['glpilist_limit'] = $glpilist_limit; while ($data = $DB->fetch_array($result)) { $computers[] = $data['id']; } if (count($get_tmp) > 0) { $_GET = $get_tmp; } break; } break; } } //Remove duplicatas from array //We are using isset for faster processing than array_unique because we might have many //entries in this list. $tmp_computers = array(); foreach ($computers as $computer) { if (!isset($tmp_computers[$computer])) { $tmp_computers[$computer] = 1; } } $computers = array_keys($tmp_computers); $c_input = array(); $c_input['plugin_fusioninventory_taskjobs_id'] = $job->fields['id']; $c_input['state'] = 0; $c_input['plugin_fusioninventory_agents_id'] = 0; $c_input['execution_id'] = $task->fields['execution_id']; $package = new PluginFusioninventoryDeployPackage(); foreach ($computers as $computer_id) { //Unique Id match taskjobstatuses for an agent(computer) foreach ($definitions as $definition) { $uniqid = uniqid(); $package->getFromDB($definition['PluginFusioninventoryDeployPackage']); $c_input['state'] = 0; $c_input['itemtype'] = 'PluginFusioninventoryDeployPackage'; $c_input['items_id'] = $package->fields['id']; $c_input['date'] = date("Y-m-d H:i:s"); $c_input['uniqid'] = $uniqid; //get agent for this computer $agents_id = $agent->getAgentWithComputerid($computer_id); if ($agents_id === FALSE) { $jobstates_id = $jobstate->add($c_input); $jobstate->changeStatusFinish($jobstates_id, 0, '', 1, "No agent found for [[Computer::" . $computer_id . "]]", 0, 0); } else { if ($agentmodule->isAgentCanDo('DEPLOY', $agents_id)) { $c_input['plugin_fusioninventory_agents_id'] = $agents_id; $jobstates_running = $jobstate->find(implode(" ", array(" `itemtype` = 'PluginFusioninventoryDeployPackage'", "AND `items_id` = " . $package->fields['id'], "AND `state` <> " . PluginFusioninventoryTaskjobstate::FINISHED, "AND `plugin_fusioninventory_agents_id` = " . $agents_id))); if (count($jobstates_running) == 0) { # Push the agent, in the stack of agent to awake if ($communication == "push") { $_SESSION['glpi_plugin_fusioninventory']['agents'][$agents_id] = 1; } $jobstates_id = $jobstate->add($c_input); //Add log of taskjob $c_input['plugin_fusioninventory_taskjobstates_id'] = $jobstates_id; $c_input['state'] = PluginFusioninventoryTaskjoblog::TASK_PREPARED; $taskvalid++; $joblog->add($c_input); unset($c_input['state']); unset($c_input['plugin_fusioninventory_agents_id']); } } } } } if ($taskvalid > 0) { $job->fields['status'] = 1; $job->update($job->fields); } else { $job->reinitializeTaskjobs($job->fields['plugin_fusioninventory_tasks_id']); } }
static function getItemsDynamicly($parm) { global $DB; $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview_item = new PluginMonitoringDisplayview_item(); $pmDisplayview = new PluginMonitoringDisplayview(); $pmSearch = new PluginMonitoringSearch(); $pmService = new PluginMonitoringService(); $devices_present = array(); if ($pmDisplayview_rule->getFromDB($parm->fields['id'])) { if ($pmDisplayview->getFromDB($pmDisplayview_rule->fields['plugin_monitoring_displayviews_id'])) { // Load right entity $default_entity = 0; if (isset($_SESSION['glpiactive_entity'])) { $default_entity = $_SESSION['glpiactive_entity']; } $entities_isrecursive = 0; if (isset($_SESSION['glpiactiveentities']) and count($_SESSION['glpiactiveentities']) > 1) { $entities_isrecursive = 1; } Session::changeActiveEntities($pmDisplayview->fields['entities_id'], $pmDisplayview->fields['is_recursive']); $get_tmp = ''; $itemtype = $pmDisplayview_rule->fields['itemtype']; if (isset($_GET)) { $get_tmp = $_GET; } if (isset($_SESSION["glpisearchcount"][$pmDisplayview_rule->fields['itemtype']])) { unset($_SESSION["glpisearchcount"][$pmDisplayview_rule->fields['itemtype']]); } if (isset($_SESSION["glpisearchcount2"][$pmDisplayview_rule->fields['itemtype']])) { unset($_SESSION["glpisearchcount2"][$pmDisplayview_rule->fields['itemtype']]); } $_GET = importArrayFromDB($pmDisplayview_rule->fields['condition']); $_GET["glpisearchcount"] = count($_GET['field']); if (isset($_GET['field2'])) { $_GET["glpisearchcount2"] = count($_GET['field2']); } $params = Search::manageParams($pmDisplayview_rule->fields['itemtype'], $_GET); // Search::manageGetValues($pmDisplayview_rule->fields['itemtype']); $queryd = "SELECT * FROM `glpi_plugin_monitoring_displayviews_items`\n WHERE `plugin_monitoring_displayviews_id`='" . $pmDisplayview_rule->fields["plugin_monitoring_displayviews_id"] . "'\n AND `itemtype`='" . $pmDisplayview_rule->fields['type'] . "'\n AND `extra_infos`='" . $pmDisplayview_rule->fields['itemtype'] . "'"; $result = $DB->query($queryd); while ($data = $DB->fetch_array($result)) { $devices_present[$data['items_id']] = $data['id']; } $glpilist_limit = $_SESSION['glpilist_limit']; $_SESSION['glpilist_limit'] = 500000; $result = $pmSearch->constructSQL($itemtype, $_GET); $_SESSION['glpilist_limit'] = $glpilist_limit; while ($data = $DB->fetch_array($result)) { if (!isset($devices_present[$data['id']])) { // Verify this device has one or more resources $query_h = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`" . " LEFT JOIN `glpi_plugin_monitoring_services`" . " ON `plugin_monitoring_componentscatalogs_hosts_id`=" . " `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`" . " WHERE `items_id`='" . $data['id'] . "'" . " AND `itemtype`='" . $pmDisplayview_rule->fields['itemtype'] . "'" . " AND `glpi_plugin_monitoring_services`.`id` IS NOT NULL"; $result_h = $DB->query($query_h); if ($DB->numrows($result_h) > 0) { $input = array(); $input['plugin_monitoring_displayviews_id'] = $pmDisplayview_rule->fields["plugin_monitoring_displayviews_id"]; $input['x'] = '1'; $input['y'] = '1'; $input['items_id'] = $data['id']; $input['itemtype'] = $pmDisplayview_rule->fields['type']; $input['extra_infos'] = $pmDisplayview_rule->fields['itemtype']; $pmDisplayview_item->add($input); } } else { // Verify this device has one or more resources $query_h = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`" . " LEFT JOIN `glpi_plugin_monitoring_services`" . " ON `plugin_monitoring_componentscatalogs_hosts_id`=" . " `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`" . " WHERE `items_id`='" . $data['id'] . "'" . " AND `itemtype`='" . $pmDisplayview_rule->fields['itemtype'] . "'" . " AND `glpi_plugin_monitoring_services`.`id` IS NOT NULL"; $result_h = $DB->query($query_h); if ($DB->numrows($result_h) > 0) { unset($devices_present[$data['id']]); } } } // Reload current entity Session::changeActiveEntities($default_entity, $entities_isrecursive); } else { $pmDisplayview->delete(array('id' => $pmDisplayview_rule->fields['plugin_monitoring_displayviews_id'])); } } foreach ($devices_present as $id) { $pmDisplayview_item->delete(array('id' => $id)); } return true; }
static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $withtemplate = 0) { switch ($item->getType()) { case 'Central': $pmDisplay = new PluginMonitoringDisplay(); // $pmDisplay->showHostsCounters("Hosts", 1, 1); $params = Search::manageParams("PluginMonitoringHost", array()); $pmDisplay->showHostsBoard($params); return true; } if ($item->getID() > 0) { if ($tabnum == 0) { PluginMonitoringToolbox::loadLib(); $pmService = new PluginMonitoringService(); $pmService->manageServices(get_class($item), $item->fields['id']); $pmHostconfig = new PluginMonitoringHostconfig(); $pmHostconfig->showForm($item->getID(), get_class($item)); } else { if ($tabnum == 1) { $pmService = new PluginMonitoringService(); $pmService->showGraphsByHost(get_class($item), $item->fields['id']); } } } return true; }
@license AGPL License 3.0 or (at your option) any later version http://www.gnu.org/licenses/agpl-3.0-standalone.html @link https://forge.indepnet.net/projects/monitoring/ @since 2011 ------------------------------------------------------------------------ */ include ("../../../inc/includes.php"); Session::checkCentralAccess(); Html::header(__('Monitoring - dashboard (hosts)', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "PluginMonitoringDashboard", "dashboard"); $params = Search::manageParams("PluginMonitoringHost", $_GET); // Display ressources perfdata ? if (isset($_SESSION['plugin_monitoring']['ressources_perfdata'])) { unset($_SESSION['plugin_monitoring']['ressources_perfdata']); } // Reduced or normal interface ? if (! isset($_SESSION['plugin_monitoring_reduced_interface'])) { $_SESSION['plugin_monitoring_reduced_interface'] = false; } if (isset($_POST['reduced_interface'])) { $_SESSION['plugin_monitoring_reduced_interface'] = $_POST['reduced_interface']; } $pmDisplay = new PluginMonitoringDisplay(); $pmMessage = new PluginMonitoringMessage();
/** * */ static function getSearchParamsAsAnArray(PluginFusioninventoryDeployGroup $group, $check_post_values = FALSE, $getAll = FALSE) { global $DB; $computers_params = array(); unset($_SESSION['glpisearch']['PluginFusioninventoryComputer']); //Check criteria from DB if (!$check_post_values) { if ($group->fields['type'] == PluginFusioninventoryDeployGroup::DYNAMIC_GROUP) { $query = "SELECT `fields_array`\n FROM `glpi_plugin_fusioninventory_deploygroups_dynamicdatas`\n WHERE `plugin_fusioninventory_deploygroups_id`='" . $group->getID() . "'"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { $fields_array = $DB->result($result, 0, 'fields_array'); $computers_params = unserialize($fields_array); } } } else { $computers_params = $_GET; } if ($getAll) { $computers_params['export_all'] = true; } return Search::manageParams('PluginFusioninventoryComputer', $computers_params); }
static function isThisItemCheckRule($parm) { global $DB; $itemtype = get_class($parm); $items_id = $parm->fields['id']; $session_glpisearch = array(); if (isset($_SESSION['glpisearch'])) { $session_glpisearch = $_SESSION['glpisearch']; } $session_glpisearchcount = array(); if (isset($_SESSION['glpisearchcount'])) { $session_glpisearchcount = $_SESSION['glpisearchcount']; } $session_glpisearchcount2 = array(); if (isset($_SESSION['glpisearchcount2'])) { $session_glpisearchcount2 = $_SESSION['glpisearchcount2']; } $a_find = array(); $pmComponentscatalog_rule = new PluginMonitoringComponentscatalog_rule(); $pmComponentscatalog = new PluginMonitoringComponentscatalog(); $query = "SELECT * FROM `" . $pmComponentscatalog_rule->getTable() . "`\n WHERE `itemtype`='" . $itemtype . "'"; $result = $DB->query($query); $get_tmp = array(); if (isset($_GET)) { $get_tmp = $_GET; } while ($data = $DB->fetch_array($result)) { if (!isset($_SESSION['glpiactiveentities_string'])) { $_SESSION['glpiactiveentities_string'] = $parm->fields['entities_id']; } // Load right entity $pmComponentscatalog->getFromDB($data['plugin_monitoring_componentscalalog_id']); $default_entity = 0; if (isset($_SESSION['glpiactive_entity'])) { $default_entity = $_SESSION['glpiactive_entity']; } $entities_isrecursive = 0; if (isset($_SESSION['glpiactiveentities']) and count($_SESSION['glpiactiveentities']) > 1) { $entities_isrecursive = 1; } if (!isset($_SESSION['glpiactiveprofile']['entities'])) { $_SESSION['glpiactiveprofile']['entities'] = array($pmComponentscatalog->fields['entities_id'] => array('id' => $pmComponentscatalog->fields['entities_id'], 'name' => '', 'is_recursive' => $pmComponentscatalog->fields['is_recursive'])); } Session::changeActiveEntities($pmComponentscatalog->fields['entities_id'], $pmComponentscatalog->fields['is_recursive']); $itemtype = $data['itemtype']; $condition = importArrayFromDB($data['condition']); $params = Search::manageParams($itemtype, $condition, FALSE); $datar = Search::prepareDatasForSearch($itemtype, $params); Search::constructSQL($datar); $DBread = DBConnection::getReadConnection(); $DBread->query("SET SESSION group_concat_max_len = 16384;"); $resultr = $DBread->query($datar['sql']['search']); /// Check group concat limit : if warning : increase limit if ($result2 = $DBread->query('SHOW WARNINGS')) { if ($DBread->numrows($result2) > 0) { $res = $DBread->fetch_assoc($result2); if ($res['Code'] == 1260) { $DBread->query("SET SESSION group_concat_max_len = 4194304;"); $resultr = $DBread->query($datar['sql']['search']); } } } $find = 0; while ($datar = $DB->fetch_array($resultr)) { if ($datar['id'] == $items_id) { $find = 1; break; } } if ($find == 1) { $a_find[$data['plugin_monitoring_componentscalalog_id']] = 1; } else { if (!isset($a_find[$data['plugin_monitoring_componentscalalog_id']])) { $a_find[$data['plugin_monitoring_componentscalalog_id']] = 0; } } // Reload current entity Session::changeActiveEntities($default_entity, $entities_isrecursive); } if (count($get_tmp) > 0) { $_GET = $get_tmp; } $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); foreach ($a_find as $componentscalalog_id => $is_present) { if ($is_present == '0') { // * Remove from dynamic if present $query = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `plugin_monitoring_componentscalalog_id`='" . $componentscalalog_id . "'\n AND `itemtype`='" . $itemtype . "'\n AND `items_id`='" . $items_id . "'\n AND`is_static`='0'"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $pmComponentscatalog_Host->delete(array('id' => $data['id'])); } } else { // add if not present $query = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `plugin_monitoring_componentscalalog_id`='" . $componentscalalog_id . "'\n AND `itemtype`='" . $itemtype . "'\n AND `items_id`='" . $items_id . "'\n LIMIT 1"; $result = $DB->query($query); if ($DB->numrows($result) == '0') { $input = array(); $input['plugin_monitoring_componentscalalog_id'] = $componentscalalog_id; $input['is_static'] = '0'; $input['items_id'] = $items_id; $input['itemtype'] = $itemtype; $pmComponentscatalog_Host->add($input); } else { $data2 = $DB->fetch_assoc($result); // modify entity of services (if entity of device is changed) $item = new $itemtype(); $item->getFromDB($items_id); $queryu = "UPDATE `glpi_plugin_monitoring_services`\n SET `entities_id`='" . $item->fields['entities_id'] . "'\n WHERE `plugin_monitoring_componentscatalogs_hosts_id`='" . $data2['id'] . "'"; $DB->query($queryu); } } } if ($itemtype == 'NetworkEquipment') { //Get networkports $pmComponentscatalog_rule->isThisItemCheckRuleNetworkport($parm); } $_SESSION['glpisearch'] = $session_glpisearch; $_SESSION['glpisearchcount'] = $session_glpisearchcount; $_SESSION['glpisearchcount2'] = $session_glpisearchcount2; }
$_POST = $_GET; $pmComponentscatalog_rule->delete($_POST); Html::redirect($CFG_GLPI['root_doc'] . "/plugins/monitoring/front/componentscatalog.form.php?id=" . $_POST['plugin_monitoring_componentscalalog_id']); } else { if (isset($_GET['criteria']) or isset($_GET['reset'])) { // if (isset($_SESSION['plugin_monitoring_rules'])) { // unset($_SESSION['plugin_monitoring_rules']); // } // $_SESSION['plugin_monitoring_rules'] = $_POST; // $_SESSION['plugin_monitoring_rules_REQUEST_URI'] = $_SERVER['REQUEST_URI']; //Html::back(); } else { if (isset($_GET['id']) and !isset($_GET['itemtype'])) { $pmComponentscatalog_rule->getFromDB($_GET['id']); $val = importArrayFromDB($pmComponentscatalog_rule->fields['condition']); $params = Search::manageParams($pmComponentscatalog_rule->fields['itemtype'], $val); $url = str_replace("?id=" . $_GET['id'], "", $_SERVER['REQUEST_URI']); $url .= "?" . Toolbox::append_params($params); $url .= "&plugin_monitoring_componentscalalog_id=" . $pmComponentscatalog_rule->fields['plugin_monitoring_componentscalalog_id']; $url .= "&name=" . $pmComponentscatalog_rule->fields['name']; $url .= "&id=" . $_GET['id']; Html::redirect($url); } } } } } if (isset($_POST['name'])) { $a_construct = array(); foreach ($_POST as $key => $value) { $a_construct[] = $key . "=" . $value;