'" . db_fetch_cell("select description from host where id=" . $_GET["id"]) . "'?", getenv("HTTP_REFERER"), "host.php?action=remove&id=" . $_GET["id"]); include ('include/bottom_footer.php'); exit; } if ((read_config_option("remove_verification") == "") || ($_GET["confirm"] == "yes")) { db_execute("delete from host where id=" . $_GET["id"]); } } function host_new_graphs_save() { include_once ("include/utility_functions.php"); include_once ("include/xml_functions.php"); global $struct_graph, $struct_data_source, $struct_graph_item, $struct_data_source_item, $paths; $selected_graphs_array = unserialize(stripslashes($_POST["selected_graphs_array"])); while (list($form_type, $form_array) = each($selected_graphs_array)) { $current_form_type = $form_type; while (list($form_id1, $form_array2) = each($form_array)) { if ($form_type == "cg") { $graph_template_id = $form_id1; }elseif ($form_type == "sg") { while (list($form_id2, $form_array3) = each($form_array2)) { $snmp_query_id = $form_id1; $graph_template_id = $form_id2; $snmp_index_array = $form_array3; } $data = implode("",file(str_replace("", $paths["cacti"], db_fetch_cell("select xml_path from snmp_query where id=$snmp_query_id")))); $snmp_query_array = xml2array($data); } unset($save); $save["id"] = 0; $save["graph_template_id"] = $graph_template_id; if ($current_form_type == "cg") { $local_graph_id = sql_save($save, "graph_local"); change_graph_template($local_graph_id, $graph_template_id, true); $new_graph_templates["cg"][$graph_template_id] = $local_graph_id; }elseif ($current_form_type == "sg") { reset($snmp_index_array); while (list($snmp_index, $true) = each($snmp_index_array)) { $local_graph_id = sql_save($save, "graph_local"); change_graph_template($local_graph_id, $graph_template_id, true); /* cache arrays; used down below */ $new_graph_templates["sg"][$snmp_query_id][$graph_template_id] .= $local_graph_id . ":"; $new_graph_snmp_indexes[$snmp_query_id][$local_graph_id] = $snmp_index; $new_graph_index_to_local[$snmp_query_id][$snmp_index] = $local_graph_id; reset($snmp_query_array["suggested_values"][0]["graph"][0]); /* suggested values for snmp query code */ if (isset($snmp_query_array["suggested_values"][0]["graph"])) { while (list($sv_field_name, $sv_array) = each($snmp_query_array["suggested_values"][0]["graph"][0])) { while (list($sv_name, $sv_value) = each($sv_array[0])) { /* once we find a match; don't try to find more */ if (!isset($_POST{"g_" . $snmp_query_id . "_" . $graph_template_id . "_" . $snmp_index . "_" . $sv_field_name})) { $subs_string = subsitute_host_data($sv_value, "|", "|", $_POST["host_id"]); $subs_string = subsitute_snmp_query_data($subs_string, "|", "|", $_POST["host_id"], $snmp_query_id, $snmp_index); /* if there are no '|' characters, all of the subsitutions were successful */ if (!strstr($subs_string, "|")) { $_POST{"g_" . $snmp_query_id . "_" . $graph_template_id . "_" . $snmp_index . "_" . $sv_field_name} = $subs_string; } } } } } } } $data_templates = db_fetch_assoc("select data_template.id, data_template.name, data_template_rrd.data_source_name from data_template, data_template_rrd, graph_templates_item where graph_templates_item.task_item_id=data_template_rrd.id and data_template_rrd.data_template_id=data_template.id and data_template_rrd.local_data_id=0 and graph_templates_item.local_graph_id=0 and graph_templates_item.graph_template_id=" . $graph_template_id . " group by data_template.id order by data_template.name"); if (sizeof($data_templates) > 0) { foreach ($data_templates as $data_template) { unset($save); $save["id"] = 0; $save["data_template_id"] = $data_template["id"]; $save["host_id"] = $_POST["host_id"]; if ($current_form_type == "cg") { $local_data_id = sql_save($save, "data_local"); change_data_template($local_data_id, $data_template["id"]); $new_data_templates["cg"][$graph_template_id]{$data_template["id"]} = $local_data_id; }elseif ($current_form_type == "sg") { reset($snmp_index_array); while (list($snmp_index, $true) = each($snmp_index_array)) { $local_data_id = sql_save($save, "data_local"); change_data_template($local_data_id, $data_template["id"]); /* cache arrays; used down below */ $new_data_templates["sg"][$snmp_query_id]{$data_template["id"]} .= $local_data_id . ":"; $new_data_snmp_indexes[$snmp_query_id][$local_data_id] = $snmp_index; $new_data_index_to_local[$snmp_query_id]{$data_template["id"]}[$snmp_index] = $local_data_id; reset($snmp_query_array["suggested_values"][0]{"ds_" . $data_template["data_source_name"]}[0]); /* suggested values for snmp query code */ if (isset($snmp_query_array["suggested_values"][0]{"ds_" . $data_template["data_source_name"]})) { while (list($sv_field_name, $sv_array) = each($snmp_query_array["suggested_values"][0]{"ds_" . $data_template["data_source_name"]}[0])) { while (list($sv_name, $sv_value) = each($sv_array[0])) { /* once we find a match; don't try to find more */ if (!isset($_POST{"d_" . $snmp_query_id . "_" . $graph_template_id . "_" . $data_template["id"] . "_" . $snmp_index . "_" . $sv_field_name})) { $subs_string = subsitute_host_data($sv_value, "|", "|", $_POST["host_id"]); $subs_string = subsitute_snmp_query_data($subs_string, "|", "|", $_POST["host_id"], $snmp_query_id, $snmp_index); /* if there are no '|' characters, all of the subsitutions were successful */ if (!strstr($subs_string, "|")) { $_POST{"d_" . $snmp_query_id . "_" . $graph_template_id . "_" . $data_template["id"] . "_" . $snmp_index . "_" . $sv_field_name} = $subs_string; } } } } } } } } } /* connect the dots: graph -> data source(s) */ $template_item_list = db_fetch_assoc("select graph_templates_item.id, data_template_rrd.id as data_template_rrd_id, data_template_rrd.data_template_id from graph_templates_item,data_template_rrd where graph_templates_item.task_item_id=data_template_rrd.id and graph_templates_item.graph_template_id=$graph_template_id and local_graph_id=0 and task_item_id>0"); /* loop through each item affected and update column data */ if (sizeof($template_item_list) > 0) { foreach ($template_item_list as $template_item) { if ($current_form_type == "cg") { $graph_template_item_id = db_fetch_cell("select id from graph_templates_item where local_graph_template_item_id=" . $template_item["id"] . " and local_graph_id=" . $new_graph_templates["cg"][$graph_template_id]); $data_template_rrd_id = db_fetch_cell("select id from data_template_rrd where local_data_template_rrd_id=" . $template_item["data_template_rrd_id"] . " and local_data_id=" . $new_data_templates["cg"][$graph_template_id]{$template_item["data_template_id"]}); db_execute("update graph_templates_item set task_item_id='$data_template_rrd_id' where id=$graph_template_item_id"); }elseif (($current_form_type == "sg") && (isset($new_graph_snmp_indexes[$snmp_query_id])) && (isset($new_data_snmp_indexes[$snmp_query_id]))) { reset($new_graph_snmp_indexes[$snmp_query_id]); while (list($local_graph_id, $snmp_index) = each($new_graph_snmp_indexes[$snmp_query_id])) { $local_data_id = $new_data_index_to_local[$snmp_query_id]{$template_item["data_template_id"]}[$snmp_index]; $graph_template_item_id = db_fetch_cell("select id from graph_templates_item where local_graph_template_item_id=" . $template_item["id"] . " and local_graph_id=$local_graph_id"); $data_template_rrd_id = db_fetch_cell("select id from data_template_rrd where local_data_template_rrd_id=" . $template_item["data_template_rrd_id"] . " and local_data_id=$local_data_id"); if (!empty($data_template_rrd_id)) { db_execute("update graph_templates_item set task_item_id='$data_template_rrd_id' where id=$graph_template_item_id"); } } } } } } } /* go ahead and write out values from the POST form to our new data */ while (list($var, $val) = each($_POST)) { if (preg_match("/^g_(\d+)_(\d+)_(\d+)_(\w+)/", $var, $matches)) { /* 1: snmp_query_id, 2: graph_template_id, 3: (opt) snmp index, 4: field_name */ if (empty($matches[3])) { /* ALL new graphs */ db_execute("update graph_templates_graph set " . $matches[4] . "='$val' where " . (empty($matches[1]) ? "local_graph_id=" . $new_graph_templates["cg"]{$matches[2]} : array_to_sql_or(split(":", $new_graph_templates["sg"]{$matches[1]}{$matches[2]}),"local_graph_id"))); }else{ /* only new graphs for this snmp_index */ db_execute("update graph_templates_graph set " . $matches[4] . "='$val' where local_graph_id=" . $new_graph_index_to_local{$matches[1]}{$matches[3]}); } }elseif (preg_match("/^gi_(\d+)_(\d+)_(\d+)_(\w+)/", $var, $matches)) { /* 1: snmp_query_id, 2: graph_template_id, 3: graph_template_input_id, 4:field_name */ /* we need to find out which graph items will be affected by saving this particular item */ $item_list = db_fetch_assoc("select graph_templates_item.id from graph_template_input_defs,graph_templates_item where graph_template_input_defs.graph_template_item_id=graph_templates_item.local_graph_template_item_id and " . (empty($matches[1]) ? "graph_templates_item.local_graph_id=" . $new_graph_templates["cg"]{$matches[2]} : array_to_sql_or(split(":", $new_graph_templates["sg"]{$matches[1]}{$matches[2]}),"graph_templates_item.local_graph_id")) . " and graph_template_input_defs.graph_template_input_id=" . $matches[3]); /* loop through each item affected and update column data */ if (sizeof($item_list) > 0) { foreach ($item_list as $item) { db_execute("update graph_templates_item set " . $matches[4] . "='$val' where id=" . $item["id"]); } } }elseif (preg_match("/^d_(\d+)_(\d+)_(\d+)_(\d+)_(\w+)/", $var, $matches)) { /* 1: snmp_query_id, 2: graph_template_id, 3: data_template_id, 4: (opt) snmp_index, 5:field_name */ if (empty($matches[4])) { /* ALL new graphs */ db_execute("update data_template_data set " . $matches[5] . "='$val' where " . (empty($matches[1]) ? "local_data_id=" . $new_data_templates["cg"]{$matches[2]}{$matches[3]} : array_to_sql_or(split(":", $new_data_templates["sg"]{$matches[1]}{$matches[3]}),"local_data_id"))); }else{ /* only new data sources for this snmp_index */ db_execute("update data_template_data set " . $matches[5] . "='$val' where local_data_id=" . $new_data_index_to_local{$matches[1]}{$matches[3]}{$matches[4]}); } }elseif (preg_match("/^di_(\d+)_(\d+)_(\d+)_(\d+)_(\w+)/", $var, $matches)) { /* 1: snmp_query_id, 2: graph_template_id, 3: data_template_id, 4:local_data_template_rrd_id, 5:field_name */ db_execute("update data_template_rrd set " . $matches[5] . "='$val' where " . (empty($matches[1]) ? "local_data_id=" . $new_data_templates["cg"]{$matches[2]}{$matches[3]} : array_to_sql_or(split(":", $new_data_templates["sg"]{$matches[1]}{$matches[3]}),"local_data_id")) . " and local_data_template_rrd_id=" . $matches[4]); }elseif ((preg_match("/^sg_(\d+)_(\d+)_(\d+)/", $var, $matches)) && (isset($new_data_snmp_indexes{$matches[1]}))) { /* 1: snmp_query_id, 2: data_template_id, 3: data_input_field_id */ reset($new_data_snmp_indexes{$matches[1]}); while (list($local_data_id, $snmp_index) = each($new_data_snmp_indexes{$matches[1]})) { $data_template_data_id = db_fetch_cell("select id from data_template_data where local_data_id=$local_data_id"); /* save the value to index on (ie. ifindex, ifip, etc) */ db_execute("replace into data_input_data (data_input_field_id,data_template_data_id,t_value,value) values (" . $matches[3] . ",$data_template_data_id,'','$val')"); $data_input_field_id = db_fetch_cell("select data_input_field_id from snmp_query_dt_field where snmp_query_id=" . $matches[1] . " and data_template_id=" . $matches[2] . " and action_id=2"); $snmp_cache_value = db_fetch_cell("select field_value from host_snmp_cache where host_id=" . $_POST["host_id"] . " and field_name='$val' and snmp_index=$snmp_index"); /* save the actual value (ie. 3, 192.168.1.101, etc) */ db_execute("replace into data_input_data (data_input_field_id,data_template_data_id,t_value,value) values ($data_input_field_id,$data_template_data_id,'','$snmp_cache_value')"); } } } /* lastly push host-specific information to our data sources */ push_out_host($_POST["host_id"]); } function host_save() { } function host_new_graphs($host_id, $host_template_id, $selected_graphs_array) { include_once ("include/xml_functions.php"); include_once ("include/top_header.php"); global $colors, $paths, $struct_graph, $row_counter, $struct_data_source, $struct_graph_item, $struct_data_source_item; print "
\n"; $snmp_query_id = 0; while (list($form_type, $form_array) = each($selected_graphs_array)) { while (list($form_id1, $form_array2) = each($form_array)) { if ($form_type == "cg") { $graph_template_id = $form_id1; start_box("Create 1 Graph from Host Template", "98%", $colors["header"], "3", "center", ""); }elseif ($form_type == "sg") { while (list($form_id2, $form_array3) = each($form_array2)) { $snmp_query_id = $form_id1; $graph_template_id = $form_id2; $num_graphs = sizeof($form_array3); $snmp_query = db_fetch_row("select snmp_query.name, snmp_query.xml_path from snmp_query where snmp_query.id=$snmp_query_id"); } /* DRAW: SNMP Query */ start_box("Create $num_graphs Graph" . (($num_graphs>1) ? "s" : "") . " from SNMP Query", "98%", $colors["header"], "3", "center", ""); print "SNMP Query [" . $snmp_query["name"] . "]"; $fields = db_fetch_assoc("select data_template.id as data_template_id, data_template.name, data_input_fields.name as field_name, data_input_fields.id as data_input_field_id from snmp_query_dt_field,data_input_fields,data_template where snmp_query_dt_field.data_input_field_id=data_input_fields.id and snmp_query_dt_field.data_template_id=data_template.id and snmp_query_dt_field.snmp_query_id=$snmp_query_id and snmp_query_dt_field.action_id=1 group by snmp_query_dt_field.data_template_id"); if (sizeof($fields) > 0) { foreach ($fields as $field) { print " " . $field["name"] . " -> " . $field["field_name"] . "
When these graphs are created, the following data input field will be filled with data from the SNMP host. "; $data = implode("",file(str_replace("", $paths["cacti"], $snmp_query["xml_path"]))); $snmp_queries = xml2array($data); $xml_outputs = array(); /* list each of the input fields for this snmp query */ while (list($field_name, $field_array) = each($snmp_queries["fields"][0])) { $field_array = $field_array[0]; if ($field_array["direction"] == "input") { $xml_outputs[$field_name] = $field_name . " (" . $field_array["name"] . ")"; } } form_dropdown("sg_" . $snmp_query_id . "_" . $field["data_template_id"] . "_" . $field["data_input_field_id"],$xml_outputs,"","","","",""); print "\n"; } } } $data_templates = db_fetch_assoc("select data_template.name as data_template_name, data_template_rrd.data_source_name, data_template_data.* from data_template, data_template_rrd, data_template_data, graph_templates_item where graph_templates_item.task_item_id=data_template_rrd.id and data_template_rrd.data_template_id=data_template.id and data_template_data.data_template_id=data_template.id and data_template_rrd.local_data_id=0 and data_template_data.local_data_id=0 and graph_templates_item.local_graph_id=0 and graph_templates_item.graph_template_id=" . $graph_template_id . " group by data_template.id order by data_template.name"); $graph_template = db_fetch_row("select graph_templates.name as graph_template_name, graph_templates_graph.* from graph_templates, graph_templates_graph where graph_templates.id=graph_templates_graph.graph_template_id and graph_templates.id=" . $graph_template_id . " and graph_templates_graph.local_graph_id=0"); $graph_template_name = db_fetch_cell("select name from graph_templates where id=" . $graph_template_id); $graph_inputs = db_fetch_assoc("select * from graph_template_input where graph_template_id=" . $graph_template_id . " and column_name != 'task_item_id' order by name"); reset($struct_graph); $drew_items = false; while (list($field_name, $field_array) = each($struct_graph)) { if ($graph_template{"t_" . $field_name} == "on") { if ($drew_items == false) { print "Graph [Template: " . $graph_template["graph_template_name"] . "]"; } /* we must treat suggested values for snmp queries different because one entry here might might 20 graphs... so we can't automatically fill in the values */ if ((!empty($snmp_query_id)) && ($snmp_queries["suggested_values"][0]["graph"][0][$field_name])) { print ""; print "" . $struct_graph[$field_name]["title"] . ""; print "Using Suggested Values (see XML file)"; print "\n"; }else{ draw_templated_row($field_array, "g_" . $snmp_query_id . "_" . $graph_template_id . "_0_" . $field_name, $data_template[$field_name]); } $row_counter = 0; $drew_items = true; } } /* DRAW: Graphs Inputs */ if (sizeof($graph_inputs) > 0) { foreach ($graph_inputs as $graph_input) { if ($drew_items == false) { print "Graph Items [Template: " . $graph_template_name . "]"; } $current_value = db_fetch_cell("select graph_templates_item." . $graph_input["column_name"] . " from graph_templates_item,graph_template_input_defs where graph_template_input_defs.graph_template_item_id=graph_templates_item.local_graph_template_item_id and graph_template_input_defs.graph_template_input_id=" . $graph_input["id"] . " and graph_templates_item.graph_template_id=" . $graph_template_id . " limit 0,1"); $field_name = $item["column_name"]; print ""; print " " . $graph_input["name"] . ""; if (!empty($graph_input["description"])) { print "
" . $graph_input["description"]; } print " \n"; draw_nontemplated_item($struct_graph_item{$graph_input["column_name"]}, "gi_" . $snmp_query_id . "_" . $graph_template_id . "_" . $graph_input["id"] . "_" . $graph_input["column_name"], $current_value); print "\n"; $row_counter = 0; $drew_items = true; } } /* DRAW: Data Sources */ if (sizeof($data_templates) > 0) { foreach ($data_templates as $data_template) { reset($struct_data_source); $drew_items = false; while (list($field_name, $field_array) = each($struct_data_source)) { if ($data_template{"t_" . $field_name} == "on") { if ($drew_items == false) { print "Data Source [Template: " . $data_template["data_template_name"] . "]"; } /* we must treat suggested values for snmp queries different because one entry here might might 20 graphs... so we can't automatically fill in the values */ if ((!empty($snmp_query_id)) && (isset($snmp_queries["suggested_values"][0]{"ds_" . $data_template["data_source_name"]}[0][$field_name]))) { print ""; print "" . $struct_data_source[$field_name]["title"] . ""; print "Using Suggested Values (see XML file)"; print "\n"; }else{ draw_templated_row($field_array, "d_" . $snmp_query_id . "_" . $graph_template_id . "_" . $data_template["data_template_id"] . "_0_" . $field_name, $data_template[$field_name]); } $row_counter = 0; $drew_items = true; } } /* DRAW: Data Source Items */ $data_template_items = db_fetch_assoc("select data_template_rrd.* from data_template_rrd where data_template_rrd.data_template_id=" . $data_template["data_template_id"] . " and local_data_id=0"); if (sizeof($data_template_items) > 0) { foreach ($data_template_items as $data_template_item) { reset($struct_data_source_item); $drew_items = false; while (list($field_name, $field_array) = each($struct_data_source_item)) { if ($data_template_item{"t_" . $field_name} == "on") { if ($drew_items == false) { //print "Data Source Item - " . $data_template_item["data_source_name"] . " - [Template: " . $data_template["data_template_name"] . "]"; } $row_counter = 1; draw_templated_row($field_array, "di_" . $snmp_query_id . "_" . $graph_template_id . "_" . $data_template["data_template_id"] . "_" . $data_template_item["id"] . "_" . $field_name, $data_template_item[$field_name]); $drew_items = true; } } } } } } end_box(); } } form_hidden_id("host_template_id",$host_template_id); form_hidden_id("host_id",$host_id); form_hidden_box("save_component_new_graphs","1",""); print "\n"; form_save_button("host.php?action=edit&id=$host_id"); include_once ("include/bottom_footer.php"); } function host_edit() { include_once ("include/xml_functions.php"); global $colors, $snmp_versions, $paths; display_output_messages(); start_box("Polling Hosts [edit]", "98%", $colors["header"], "3", "center", ""); if (isset($_GET["id"])) { $host = db_fetch_row("select * from host where id=" . $_GET["id"]); }else{ unset($host); } ?> Description
Give this host a meaningful description. Host Template
Choose what type of host, host template this is. The host template will govern what kinds of data should be gathered from this type of host. Hostname
Fill in the fully qualified hostname for this device. Management IP
Choose the IP address that will be used to gather data from this host. The hostname will be used a fallback in case this fails. SNMP Community
Fill in the SNMP read community for this device. SNMP Username
Fill in the SNMP username for this device (v3). SNMP Community
Fill in the SNMP password for this device (v3). SNMP Version
Choose the SNMP version for this host.
Associated SNMP Query
If you choose to add this SNMP query to this host, information will be queried from this host upon addition.
 
Host Template Items
", "98%", $colors["header"], "3", "center", ""); $graph_templates = db_fetch_assoc("select graph_templates.id as graph_template_id, data_template.id as data_template_id, graph_templates.name as graph_template_name, data_template.name as data_template_name from host_template_graph_template, graph_templates, graph_templates_item, data_template, data_template_rrd where host_template_graph_template.graph_template_id=graph_templates.id and graph_templates.id=graph_templates_item.graph_template_id and graph_templates_item.task_item_id=data_template_rrd.id and data_template_rrd.data_template_id=data_template.id and host_template_graph_template.host_template_id=" . $host["host_template_id"] . " and data_template_rrd.local_data_id=0 and graph_templates_item.local_graph_id=0 group by data_template.id,graph_templates.id order by graph_templates.id,data_template.name"); $j = 0; if (sizeof($graph_templates) > 0) { foreach ($graph_templates as $graph_template) { if ($graph_template["graph_template_id"] != $_graph_template_id) { form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); $i++; print ""; print "Create Graph: " . $graph_template["graph_template_name"] . "
"; } print "   + " . $graph_template["data_template_name"] . "
"; $_graph_template_id = $graph_template["graph_template_id"]; if ($graph_templates{$j+1}["graph_template_id"] != $_graph_template_id) { print "\n"; form_checkbox("cg_" . $graph_template["graph_template_id"],"","Create this Graph",""); print ""; } $j++; } } end_box(); } $snmp_queries = db_fetch_assoc("select snmp_query.id, snmp_query.name, snmp_query.xml_path, snmp_query.graph_template_id from snmp_query,host_snmp_query where host_snmp_query.snmp_query_id=snmp_query.id and host_snmp_query.host_id=" . $_GET["id"] . " order by snmp_query.name"); if (sizeof($snmp_queries) > 0) { foreach ($snmp_queries as $snmp_query) { start_box("SNMP Query [" . $snmp_query["name"] . "]", "98%", $colors["header"], "3", "center", ""); $data = implode("",file(str_replace("", $paths["cacti"], $snmp_query["xml_path"]))); $snmp_queries = xml2array($data); $xml_outputs = array(); print ""; $i = 0; while (list($field_name, $field_array) = each($snmp_queries["fields"][0])) { $i++; $field_array = $field_array[0]; if (($i+1) < count($snmp_queries["fields"][0])) { $colspan = 1; }else{ $colspan = 2; } if ($field_array["direction"] == "input") { DrawMatrixHeaderItem($field_array["name"],$colors["header_text"],$colspan); $raw_data = db_fetch_assoc("select field_value,snmp_index from host_snmp_cache where host_id=" . $_GET["id"] . " and field_name='$field_name'"); /* insert blank data so the TD is rendered even if there is no data */ $snmp_query_data[$field_name]{$data["snmp_index"]} = ""; if (sizeof($raw_data) > 0) { foreach ($raw_data as $data) { $snmp_query_data[$field_name]{$data["snmp_index"]} = $data["field_value"]; $snmp_query_indexes{$data["snmp_index"]} = $data["snmp_index"]; } } } } print ""; if (sizeof($snmp_query_indexes) > 0) { while (list($snmp_index, $snmp_index) = each($snmp_query_indexes)) { form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; reset($snmp_query_data); while (list($field_name, $field_array) = each($snmp_query_data)) { print "" . $field_array[$snmp_index] . ""; } form_checkbox("sg_" . $snmp_query["graph_template_id"] . "_" . $snmp_query["id"] . "_" . $snmp_index,"","",""); print "\n"; } } end_box(); } } form_save_button("host.php"); } function host() { global $colors; display_output_messages(); start_box("Polling Hosts", "98%", $colors["header"], "3", "center", "host.php?action=edit"); print ""; DrawMatrixHeaderItem("Description",$colors["header_text"],1); DrawMatrixHeaderItem("Hostname",$colors["header_text"],1); DrawMatrixHeaderItem(" ",$colors["header_text"],1); print ""; $hosts = db_fetch_assoc("select id,hostname,description from host order by description"); if (sizeof($hosts) > 0) { foreach ($hosts as $host) { form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; ?> "> ">Delete