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; }
@package Plugin Monitoring for GLPI @author David Durieux @co-author @comment @copyright Copyright (c) 2011-2013 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"; header("Content-Type: text/html; charset=UTF-8"); Html::header_nocache(); Session::checkCentralAccess(); //print_r($_POST); if (isset($_POST['id']) and isset($_POST['x']) and isset($_POST['y'])) { $pmDisplayview_item = new PluginMonitoringDisplayview_item(); if ($pmDisplayview_item->getFromDB($_POST['id'])) { if ($_POST['x'] < 1 or $_POST['y'] < 0) { $pmDisplayview_item->delete(array('id' => $_POST['id'])); } else { $input = array(); $input['id'] = $_POST['id']; $input['x'] = $_POST['x']; $input['y'] = $_POST['y']; $pmDisplayview_item->update($input); } } }
@since 2011 ------------------------------------------------------------------------ */ include "../../../inc/includes.php"; Session::checkRight("plugin_monitoring_displayview", READ); Html::header(__('Monitoring', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "monitoring", "displayview_item"); $pmDisplayview_item = new PluginMonitoringDisplayview_item(); if (isset($_POST['plugin_monitoring_services_id']) and $_POST['plugin_monitoring_services_id'] > 0) { $_POST['items_id'] = $_POST['plugin_monitoring_services_id']; $_POST['itemtype'] = "PluginMonitoringService"; } if (isset($_POST["add"])) { if ($_POST['itemtype'] == 'host' || $_POST['itemtype'] == 'service') { $input = $_POST; $input['itemtype'] = $_POST['type']; $input['type'] = $_POST['itemtype']; $input['condition'] = exportArrayToDB(array('name' => '', 'itemtype' => $input['itemtype'], 'field' => array(1), 'searchtype' => array('contains'))); $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview_rule->add($input); } else { $pmDisplayview_item->add($_POST); } Html::back(); } else { if (isset($_POST["delete"])) { $pmDisplayview_item->delete($_POST); Html::back(); } } Html::footer();