function data_query_to_xml($data_query_id) { require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_info.php"); $hash["data_query"] = get_hash_version("data_query") . get_hash_data_query($data_query_id); $xml_text = ""; $snmp_query = db_fetch_row("select * from snmp_query where id=$data_query_id"); $snmp_query_graph = db_fetch_assoc("select * from snmp_query_graph where snmp_query_id=$data_query_id"); if (empty($snmp_query["id"])) { $err_msg = "Invalid Data Query."; return $err_msg; } $xml_text .= "<hash_" . $hash["data_query"] . ">\n"; /* XML Branch: <> */ $fields_data_query_edit = data_query_form_list(); reset($fields_data_query_edit); while (list($field_name, $field_array) = each($fields_data_query_edit)) { if (($field_name == "data_input_id") && (!empty($snmp_query{$field_name}))) { $xml_text .= "\t<$field_name>hash_" . get_hash_version("data_input_method") . get_hash_data_input($snmp_query{$field_name}) . "</$field_name>\n"; }else{ if (($field_array["method"] != "hidden_zero") && ($field_array["method"] != "hidden") && ($field_array["method"] != "spacer")) { $xml_text .= "\t<$field_name>" . xml_character_encode($snmp_query{$field_name}) . "</$field_name>\n"; } } } /* XML Branch: <graphs> */ $xml_text .= "\t<graphs>\n"; $i = 0; if (sizeof($snmp_query_graph) > 0) { foreach ($snmp_query_graph as $item) { $hash["data_query_graph"] = get_hash_version("data_query_graph") . get_hash_data_query($item["id"], "data_query_graph"); $xml_text .= "\t\t<hash_" . $hash["data_query_graph"] . ">\n"; $fields_data_query_item_edit = data_query_item_form_list(); reset($fields_data_query_item_edit); while (list($field_name, $field_array) = each($fields_data_query_item_edit)) { if (($field_name == "graph_template_id") && (!empty($item{$field_name}))) { $xml_text .= "\t\t\t<$field_name>hash_" . get_hash_version("graph_template") . get_hash_graph_template($item{$field_name}) . "</$field_name>\n"; }else{ if (($field_array["method"] != "hidden_zero") && ($field_array["method"] != "hidden") && ($field_array["method"] != "spacer")) { $xml_text .= "\t\t\t<$field_name>" . xml_character_encode($item{$field_name}) . "</$field_name>\n"; } } } $snmp_query_graph_rrd_sv = db_fetch_assoc("select * from snmp_query_graph_rrd_sv where snmp_query_graph_id=" . $item["id"] . " order by sequence"); $snmp_query_graph_sv = db_fetch_assoc("select * from snmp_query_graph_sv where snmp_query_graph_id=" . $item["id"] . " order by sequence"); $snmp_query_graph_rrd = db_fetch_assoc("select * from snmp_query_graph_rrd where snmp_query_graph_id=" . $item["id"] . " and data_template_id > 0"); /* XML Branch: <graphs/rrd> */ $xml_text .= "\t\t\t<rrd>\n"; $i = 0; if (sizeof($snmp_query_graph_rrd) > 0) { foreach ($snmp_query_graph_rrd as $item2) { $xml_text .= "\t\t\t\t<item_" . str_pad(strval($i), 3, "0", STR_PAD_LEFT) . ">\n"; $xml_text .= "\t\t\t\t\t<snmp_field_name>" . $item2{"snmp_field_name"} . "</snmp_field_name>\n"; $xml_text .= "\t\t\t\t\t<data_template_id>hash_" . get_hash_version("data_template") . get_hash_data_template($item2{"data_template_id"}) . "</data_template_id>\n"; $xml_text .= "\t\t\t\t\t<data_template_rrd_id>hash_" . get_hash_version("data_template_item") . get_hash_data_template($item2{"data_template_rrd_id"}, "data_template_item") . "</data_template_rrd_id>\n"; $xml_text .= "\t\t\t\t</item_" . str_pad(strval($i), 3, "0", STR_PAD_LEFT) . ">\n"; $i++; } } $xml_text .= "\t\t\t</rrd>\n"; /* XML Branch: <graphs/sv_graph> */ $xml_text .= "\t\t\t<sv_graph>\n"; $j = 0; if (sizeof($snmp_query_graph_sv) > 0) { foreach ($snmp_query_graph_sv as $item2) { $hash["data_query_sv_graph"] = get_hash_version("data_query_sv_graph") . get_hash_data_query($item2["id"], "data_query_sv_graph"); $xml_text .= "\t\t\t\t<hash_" . $hash["data_query_sv_graph"] . ">\n"; $xml_text .= "\t\t\t\t\t<field_name>" . xml_character_encode($item2{"field_name"}) . "</field_name>\n"; $xml_text .= "\t\t\t\t\t<sequence>" . $item2{"sequence"} . "</sequence>\n"; $xml_text .= "\t\t\t\t\t<text>" . xml_character_encode($item2{"text"}) . "</text>\n"; $xml_text .= "\t\t\t\t</hash_" . $hash["data_query_sv_graph"] . ">\n"; $j++; } } $xml_text .= "\t\t\t</sv_graph>\n"; /* XML Branch: <graphs/sv_data_source> */ $xml_text .= "\t\t\t<sv_data_source>\n"; $j = 0; if (sizeof($snmp_query_graph_rrd_sv) > 0) { foreach ($snmp_query_graph_rrd_sv as $item2) { $hash["data_query_sv_data_source"] = get_hash_version("data_query_sv_data_source") . get_hash_data_query($item2["id"], "data_query_sv_data_source"); $xml_text .= "\t\t\t\t<hash_" . $hash["data_query_sv_data_source"] . ">\n"; $xml_text .= "\t\t\t\t\t<field_name>" . xml_character_encode($item2{"field_name"}) . "</field_name>\n"; $xml_text .= "\t\t\t\t\t<data_template_id>hash_" . get_hash_version("data_template") . get_hash_data_template($item2{"data_template_id"}) . "</data_template_id>\n"; $xml_text .= "\t\t\t\t\t<sequence>" . $item2{"sequence"} . "</sequence>\n"; $xml_text .= "\t\t\t\t\t<text>" . xml_character_encode($item2{"text"}) . "</text>\n"; $xml_text .= "\t\t\t\t</hash_" . $hash["data_query_sv_data_source"] . ">\n"; $j++; } } $xml_text .= "\t\t\t</sv_data_source>\n"; $xml_text .= "\t\t</hash_" . $hash["data_query_graph"] . ">\n"; $i++; } } $xml_text .= "\t</graphs>\n"; $xml_text .= "</hash_" . $hash["data_query"] . ">"; return $xml_text; }
function data_query_edit() { global $colors, $config; require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_info.php"); /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); /* ==================================================== */ if (!empty($_GET["id"])) { $snmp_query = db_fetch_row("select * from snmp_query where id=" . $_GET["id"]); $header_label = "[edit: " . $snmp_query["name"] . "]"; }else{ $header_label = "[new]"; } print "<form method='post' action='" . basename($_SERVER["PHP_SELF"]) . "' name='data_query_edit'>\n"; html_start_box("<strong>" . __("Data Queries") . "</strong> $header_label", "100", $colors["header"], 0, "center", ""); $header_items = array(__("Field"), __("Value")); print "<tr><td>"; html_header($header_items, 1, false, 'data_query', 'left wp100'); draw_edit_form(array( "config" => array(), "fields" => inject_form_variables(data_query_form_list(), (isset($snmp_query) ? $snmp_query : array())) )); print "</table></td></tr>"; /* end of html_header */ html_end_box(); if (!empty($snmp_query["id"])) { $xml_filename = str_replace("<path_cacti>", CACTI_BASE_PATH, $snmp_query["xml_path"]); if ((file_exists($xml_filename)) && (is_file($xml_filename))) { $text = "<font color='#0d7c09'><strong>" . __("Successfully located XML file") . "</strong></font>"; $xml_file_exists = true; }else{ $text = "<span class='warning'" . __("Could not locate XML file.") . "</span>"; $xml_file_exists = false; } html_start_box("", "100", "aaaaaa", "3", "center", ""); print "<tr class='textArea'><td>$text</td></tr>"; html_end_box(); if ($xml_file_exists == true) { html_start_box("<strong>" . __("Associated Graph Templates") . "</strong>", "100", $colors["header"], "0", "center", "data_queries.php?action=item_edit&snmp_query_id=" . $snmp_query["id"]); $header_items = array(__("Name"), __("Graph Template Name")); print "<tr><td>"; html_header($header_items, 2, true, 'assoc_graph_templates', 'left wp100'); $snmp_query_graphs = db_fetch_assoc("select snmp_query_graph.id, graph_templates.name as graph_template_name, snmp_query_graph.name from snmp_query_graph left join graph_templates on (snmp_query_graph.graph_template_id=graph_templates.id) where snmp_query_graph.snmp_query_id=" . $snmp_query["id"] . " order by snmp_query_graph.name"); if (sizeof($snmp_query_graphs) > 0) { foreach ($snmp_query_graphs as $snmp_query_graph) { form_alternate_row_color("id" . $snmp_query["id"] . "_" . $snmp_query_graph["id"], true); ?> <td> <strong><a href="<?php print htmlspecialchars("data_queries.php?action=item_edit&id=". $snmp_query_graph["id"] . "&snmp_query_id=" . $snmp_query["id"]);?>"><?php print $snmp_query_graph["name"];?></a></strong> </td> <td> <?php print $snmp_query_graph["graph_template_name"];?> </td> <td align="right"> <a href="<?php print htmlspecialchars("data_queries.php?action=item_remove&id=" . $snmp_query_graph["id"] . "&snmp_query_id=" . $snmp_query["id"]);?>"> <img class="buttonSmall" src="images/delete_icon.gif" alt="<?php print __("Delete");?>" align='right'> </a> </td> <?php form_end_row(); } }else{ print "<tr><td><em>" . __("No Graph Templates Defined.") . "</em></td></tr>"; } print "</table></td></tr>"; /* end of html_header */ html_end_box(); } } form_save_button_alt("path!data_queries.php"); }