Exemple #1
0
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"];
	}
}
Exemple #2
0
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;
	}
}