function get_tree_item_title($tree_item_id) { if (get_tree_item_type($tree_item_id) == "device") { $tree_item=db_fetch_row("SELECT device_id FROM graph_tree_items WHERE id='".$tree_item_id."'"); return get_device_description($tree_item["device_id"]); }else{ $tree_item=db_fetch_row("SELECT title FROM graph_tree_items WHERE id='".$tree_item_id."'"); return $tree_item["title"]; } }
function get_tree_leaf_items($tree_id, $leaf_id, $device_group_type, $include_parent = false) { global $current_user, $config; require(CACTI_BASE_PATH . "/include/graph_tree/graph_tree_arrays.php"); // prototype // $items = array($tree_id, $leaf_id, $type, $id, $name); // $tree_id = 'Tree where item exists' // $leaf_id = 'Leaf where item exists' // $type = 'graph|device|site|leaf|dqn|dqi|gtn'; // $id = 'local_graph_id|device_id|site_id|leaf_id|dqn_id|dqi_id|gtn_id' // the following types are only valid if $device_group_data = true // dqn|dqi|gtn include(CACTI_BASE_PATH . "/include/global_arrays.php"); include_once(CACTI_BASE_PATH . "/lib/data_query.php"); include_once(CACTI_BASE_PATH . "/lib/tree.php"); include_once(CACTI_BASE_PATH . "/lib/html_utility.php"); /* get the trees that the user has access to */ $items = array(); if ($tree_id <= 0) { return get_trees($tree_id); }elseif (tree_authorized($tree_id)) { if ($include_parent) { return get_trees($tree_id); } $search_key = ""; if ($leaf_id > 0) { /* return leaf, site, device, graph template or data query items */ $leaf = db_fetch_row("SELECT * FROM graph_tree_items WHERE id=$leaf_id"); $leaf_type = get_tree_item_type($leaf_id); /* get the "starting leaf" if the user clicked on a specific branch */ if (!empty($leaf_id)) { $search_key = substr($leaf["order_key"], 0, (tree_tier($leaf["order_key"]) * CHARS_PER_TIER)); } }else{ $leaf_type = "header"; } $user = db_fetch_row("SELECT * FROM user_auth WHERE id=" . $_SESSION["sess_user_id"]); if ($leaf_type == "header") { if (read_config_option("auth_method") != 0) { $tree_items = db_fetch_assoc("SELECT * FROM graph_tree_items WHERE graph_tree_id=$tree_id AND id!=$leaf_id AND order_key like '$search_key" . str_repeat('_', CHARS_PER_TIER) . str_repeat('0', (MAX_TREE_DEPTH * CHARS_PER_TIER) - (strlen($search_key) + CHARS_PER_TIER)) . "'"); if (sizeof($tree_items)) { foreach($tree_items AS $item) { if ($item["local_graph_id"]) { if (graph_authorized($item["local_graph_id"], $user)) { $new_tree_items[] = $item; } }elseif ($item["device_id"]) { if (device_authorized($item["device_id"], $user)) { $new_tree_items[] = $item; } }else{ $new_tree_items[] = $item; } } $tree_items = $new_tree_items; } }else{ $tree_items = db_fetch_assoc("SELECT * FROM graph_tree_items WHERE graph_tree_id=$tree_id AND id!=$leaf_id AND order_key like '$search_key" . str_repeat('_', CHARS_PER_TIER) . str_repeat('0', (MAX_TREE_DEPTH * CHARS_PER_TIER) - (strlen($search_key) + CHARS_PER_TIER)) . "'"); } if (sizeof($tree_items)) { foreach($tree_items as $item) { if ($item["local_graph_id"] > 0) { $items[] = array( "tree_id" => $tree_id, "leaf_id" => $item["id"], "type" => 'graph', "id" => $item["local_graph_id"], "name" => get_graph_title($item["local_graph_id"]) ); }elseif ($item["device_id"] > 0) { $items[] = array( "tree_id" => $tree_id, "leaf_id" => $item["id"], "type" => 'device', "id" => $item["device_id"], "name" => get_device_description($item["device_id"]) ); }else{ $items[] = array( "tree_id" => $tree_id, "leaf_id" => $item["id"], "type" => 'header', "id" => $item["id"], "name" => $item["title"] ); } } } return $items; }elseif ($leaf_type == "device") { if (read_graph_config_option("expand_devices") == CHECKED) { if ($leaf["device_grouping_type"] == TREE_DEVICE_GROUPING_GRAPH_TEMPLATE) { if ((isset($device_group_type)) && ($device_group_type[0] != 'gt')) { $items = get_device_grouping_graph_templates($leaf, $user); } }else{ if (isset($device_group_type)) { if (($device_group_type[0] != 'dqi') && ($device_group_type[0] != 'dq')) { $items = get_device_grouping_data_queries($leaf); }elseif ($device_group_type[0] != 'dqi') { $items = get_device_grouping_data_query_items($leaf, $device_group_type); } } } } return $items; }else{ return $items; } }else{ return $items; } }