function get_viewed_nodes() { global $ZBX_LOCALNODEID; $result = array('selected' => 0, 'nodes' => array(), 'nodeids' => array()); if (!defined('ZBX_NOT_ALLOW_ALL_NODES')) { $result['nodes'][0] = array('nodeid' => 0, 'name' => _('All')); } $available_nodes = get_accessible_nodes_by_user(CWebUser::$data, PERM_READ_LIST, PERM_RES_DATA_ARRAY); $available_nodes = get_tree_by_parentid($ZBX_LOCALNODEID, $available_nodes, 'masterid'); // remove parent nodes $selected_nodeids = get_request('selected_nodes', get_node_profile(array(CWebUser::$data['node']['nodeid']))); // +++ Fill $result['NODEIDS'], $result['NODES'] +++ $nodeids = array(); foreach ($selected_nodeids as $num => $nodeid) { if (isset($available_nodes[$nodeid])) { $result['nodes'][$nodeid] = array('nodeid' => $available_nodes[$nodeid]['nodeid'], 'name' => $available_nodes[$nodeid]['name'], 'masterid' => $available_nodes[$nodeid]['masterid']); $nodeids[$nodeid] = $nodeid; } } $switch_node = get_request('switch_node', CProfile::get('web.nodes.switch_node', -1)); if (!isset($available_nodes[$switch_node]) || !uint_in_array($switch_node, $selected_nodeids)) { // check switch_node $switch_node = 0; } $result['nodeids'] = $nodeids; if (!defined('ZBX_NOT_ALLOW_ALL_NODES')) { $result['selected'] = $switch_node; } elseif (!empty($nodeids)) { $result['selected'] = $switch_node > 0 ? $switch_node : array_shift($nodeids); } return $result; }
function get_viewed_nodes($options = array()) { global $USER_DETAILS; global $ZBX_LOCALNODEID, $ZBX_AVAILABLE_NODES; $config = select_config(); $def_options = array('allow_all' => 0); $options = zbx_array_merge($def_options, $options); $result = array('selected' => 0, 'nodes' => array(), 'nodeids' => array()); if (!defined('ZBX_NOT_ALLOW_ALL_NODES')) { $result['nodes'][0] = array('nodeid' => 0, 'name' => S_ALL_S); } $available_nodes = get_accessible_nodes_by_user($USER_DETAILS, PERM_READ_LIST, PERM_RES_DATA_ARRAY); $available_nodes = get_tree_by_parentid($ZBX_LOCALNODEID, $available_nodes, 'masterid'); //remove parent nodes // $selected_nodeids = get_request('selected_nodes', CProfile::get('web.nodes.selected', array($USER_DETAILS['node']['nodeid']))); $selected_nodeids = get_request('selected_nodes', get_node_profile(array($USER_DETAILS['node']['nodeid']))); // +++ Fill $result['NODEIDS'], $result['NODES'] +++ $nodes = array(); $nodeids = array(); foreach ($selected_nodeids as $num => $nodeid) { if (isset($available_nodes[$nodeid])) { $result['nodes'][$nodeid] = array('nodeid' => $available_nodes[$nodeid]['nodeid'], 'name' => $available_nodes[$nodeid]['name'], 'masterid' => $available_nodes[$nodeid]['masterid']); $nodeids[$nodeid] = $nodeid; } } // --- --- $switch_node = get_request('switch_node', CProfile::get('web.nodes.switch_node', -1)); if (!isset($available_nodes[$switch_node]) || !uint_in_array($switch_node, $selected_nodeids)) { //check switch_node $switch_node = 0; } $result['nodeids'] = $nodeids; if (!defined('ZBX_NOT_ALLOW_ALL_NODES')) { $result['selected'] = $switch_node; } else { if (!empty($nodeids)) { $result['selected'] = $switch_node > 0 ? $switch_node : array_shift($nodeids); } } return $result; }