clearCookies($goResult, $_REQUEST['hostid']); } /* * Display */ if (isset($_REQUEST['form'])) { $data = getItemFormData(array('is_discovery_rule' => true)); $data['page_header'] = _('CONFIGURATION OF DISCOVERY RULES'); // render view $itemView = new CView('configuration.item.edit', $data); $itemView->render(); $itemView->show(); } else { $data = array('hostid' => get_request('hostid', 0), 'host' => $host, 'showErrorColumn' => $host['status'] != HOST_STATUS_TEMPLATE); $sortfield = getPageSortField('name'); // discoveries $data['discoveries'] = API::DiscoveryRule()->get(array('hostids' => $data['hostid'], 'output' => API_OUTPUT_EXTEND, 'editable' => true, 'selectItems' => API_OUTPUT_COUNT, 'selectGraphs' => API_OUTPUT_COUNT, 'selectTriggers' => API_OUTPUT_COUNT, 'selectHostPrototypes' => API_OUTPUT_COUNT, 'sortfield' => $sortfield, 'limit' => $config['search_limit'] + 1)); $data['discoveries'] = CMacrosResolverHelper::resolveItemNames($data['discoveries']); if ($sortfield === 'status') { orderItemsByStatus($data['discoveries'], getPageSortOrder()); } else { order_result($data['discoveries'], $sortfield, getPageSortOrder()); } // paging $data['paging'] = getPagingLine($data['discoveries'], array('itemid'), array('hostid' => get_request('hostid'))); // render view $discoveryView = new CView('configuration.host.discovery.list', $data); $discoveryView->render(); $discoveryView->show(); } require_once dirname(__FILE__) . '/include/page_footer.php';
} } $data['flicker'] = getItemFilterForm($data['items']); // remove subfiltered items if (!empty($data['items'])) { foreach ($data['items'] as $number => $item) { foreach ($item['subfilters'] as $value) { if (!$value) { unset($data['items'][$number]); break; } } } } if ($sortField === 'status') { orderItemsByStatus($data['items'], $sortOrder); } else { order_result($data['items'], $sortField, $sortOrder); } $data['paging'] = getPagingLine($data['items']); $itemTriggerIds = array(); foreach ($data['items'] as $item) { $itemTriggerIds = array_merge($itemTriggerIds, zbx_objectValues($item['triggers'], 'triggerid')); } $data['itemTriggers'] = API::Trigger()->get(array('triggerids' => $itemTriggerIds, 'output' => API_OUTPUT_EXTEND, 'selectHosts' => array('hostid', 'name', 'host'), 'selectFunctions' => API_OUTPUT_EXTEND, 'selectItems' => array('itemid', 'hostid', 'key_', 'type', 'flags', 'status'), 'preservekeys' => true)); $data['triggerRealHosts'] = getParentHostsByTriggers($data['itemTriggers']); // determine, show or not column of errors if (isset($hosts)) { $host = reset($hosts); $data['showInfoColumn'] = $host['status'] != HOST_STATUS_TEMPLATE; } else {
} else { $sortField = getRequest('sort', CProfile::get('web.' . $page['file'] . '.sort', 'name')); $sortOrder = getRequest('sortorder', CProfile::get('web.' . $page['file'] . '.sortorder', ZBX_SORT_UP)); CProfile::update('web.' . $page['file'] . '.sort', $sortField, PROFILE_TYPE_STR); CProfile::update('web.' . $page['file'] . '.sortorder', $sortOrder, PROFILE_TYPE_STR); $config = select_config(); $data = ['hostid' => getRequest('hostid', 0), 'host' => $host, 'showInfoColumn' => $host['status'] != HOST_STATUS_TEMPLATE, 'sort' => $sortField, 'sortorder' => $sortOrder]; // discoveries $data['discoveries'] = API::DiscoveryRule()->get(['hostids' => $data['hostid'], 'output' => API_OUTPUT_EXTEND, 'editable' => true, 'selectItems' => API_OUTPUT_COUNT, 'selectGraphs' => API_OUTPUT_COUNT, 'selectTriggers' => API_OUTPUT_COUNT, 'selectHostPrototypes' => API_OUTPUT_COUNT, 'sortfield' => $sortField, 'limit' => $config['search_limit'] + 1]); // hide zeroes for trapper and SNMP trap items foreach ($data['discoveries'] as &$discovery) { if ($discovery['type'] == ITEM_TYPE_TRAPPER || $discovery['type'] == ITEM_TYPE_SNMPTRAP) { $discovery['delay'] = ''; } } unset($discovery); $data['discoveries'] = CMacrosResolverHelper::resolveItemNames($data['discoveries']); if ($sortField === 'status') { orderItemsByStatus($data['discoveries'], $sortOrder); } else { order_result($data['discoveries'], $sortField, $sortOrder); } // paging $url = (new CUrl('host_discovery.php'))->setArgument('hostid', $data['hostid']); $data['paging'] = getPagingLine($data['discoveries'], $sortOrder, $url); // render view $discoveryView = new CView('configuration.host.discovery.list', $data); $discoveryView->render(); $discoveryView->show(); } require_once dirname(__FILE__) . '/include/page_footer.php';
} } $data['flicker'] = getItemFilterForm($data['items']); // remove subfiltered items if (!empty($data['items'])) { foreach ($data['items'] as $number => $item) { foreach ($item['subfilters'] as $value) { if (!$value) { unset($data['items'][$number]); break; } } } } if ($data['sortfield'] === 'status') { orderItemsByStatus($data['items'], getPageSortOrder()); } else { order_result($data['items'], $data['sortfield'], getPageSortOrder()); } $data['paging'] = getPagingLine($data['items'], array('itemid')); $itemTriggerIds = array(); foreach ($data['items'] as $item) { $itemTriggerIds = array_merge($itemTriggerIds, zbx_objectValues($item['triggers'], 'triggerid')); } $data['itemTriggers'] = API::Trigger()->get(array('triggerids' => $itemTriggerIds, 'output' => API_OUTPUT_EXTEND, 'selectHosts' => array('hostid', 'name', 'host'), 'selectFunctions' => API_OUTPUT_EXTEND, 'selectItems' => array('itemid', 'hostid', 'key_', 'type', 'flags', 'status'), 'preservekeys' => true)); $data['triggerRealHosts'] = getParentHostsByTriggers($data['itemTriggers']); // nodes if ($data['displayNodes']) { foreach ($data['items'] as $key => $item) { $data['items'][$key]['nodename'] = get_node_name_by_elid($item['itemid'], true); }