function &data_query_to_xml($data_query_id) { global $fields_data_query_edit, $fields_data_query_item_edit; $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"])) { return "Invalid data query."; } $xml_text .= "<hash_" . $hash["data_query"] . ">\n"; /* XML Branch: <> */ 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")) { $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"; 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")) { $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_to_xml($data_query_id) { global $fields_data_query_edit, $fields_data_query_item_edit, $export_errors; $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"])) { $export_errors++; raise_message(28); cacti_log("ERROR: Invalid Data Query found during Export. Please run database repair script to identify and/or correct.", false, "WEBUI"); return; } $xml_text .= "<hash_" . $hash["data_query"] . ">\n"; /* XML Branch: <> */ 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") { $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"; 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") { $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; }