本文整理汇总了PHP中get_hash_graph_template函数的典型用法代码示例。如果您正苦于以下问题:PHP get_hash_graph_template函数的具体用法?PHP get_hash_graph_template怎么用?PHP get_hash_graph_template使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_hash_graph_template函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: form_save
function form_save()
{
if (isset($_POST["save_component_input"]) && !is_error_message()) {
$graph_input_values = array();
$selected_graph_items = array();
$save["id"] = $_POST["graph_template_input_id"];
$save["hash"] = get_hash_graph_template($_POST["graph_template_input_id"], "graph_template_input");
$save["graph_template_id"] = $_POST["graph_template_id"];
$save["name"] = form_input_validate($_POST["name"], "name", "", false, 3);
$save["description"] = form_input_validate($_POST["description"], "description", "", true, 3);
$save["column_name"] = form_input_validate($_POST["column_name"], "column_name", "", true, 3);
if (!is_error_message()) {
$graph_template_input_id = sql_save($save, "graph_template_input");
if ($graph_template_input_id) {
raise_message(1);
/* list all graph items from the db so we can compare them with the current form */
$db_selected_graph_item = array_rekey(db_fetch_assoc("select graph_template_item_id from graph_template_input_defs where graph_template_input_id={$graph_template_input_id}"), "graph_template_item_id", "graph_template_item_id");
/* list all select graph items for use down below */
while (list($var, $val) = each($_POST)) {
if (preg_match("/^i_(\\d+)\$/", $var, $matches)) {
/* ================= input validation ================= */
input_validate_input_number($matches[1]);
/* ==================================================== */
$selected_graph_items[$matches[1]] = $matches[1];
if (isset($db_selected_graph_item[$matches[1]])) {
/* is selected and exists in the db; old item */
$old_members[$matches[1]] = $matches[1];
} else {
/* is selected and does not exist the db; new item */
$new_members[$matches[1]] = $matches[1];
}
}
}
if (isset($new_members) && sizeof($new_members) > 0) {
while (list($item_id, $item_id) = each($new_members)) {
push_out_graph_input($graph_template_input_id, $item_id, isset($new_members) ? $new_members : array());
}
}
db_execute("delete from graph_template_input_defs where graph_template_input_id={$graph_template_input_id}");
if (sizeof($selected_graph_items) > 0) {
foreach ($selected_graph_items as $graph_template_item_id) {
db_execute("insert into graph_template_input_defs (graph_template_input_id,graph_template_item_id)\n\t\t\t\t\t\tvalues ({$graph_template_input_id},{$graph_template_item_id})");
}
}
} else {
raise_message(2);
}
}
if (is_error_message()) {
header("Location: graph_templates_inputs.php?action=input_edit&graph_template_input_id=" . (empty($graph_template_input_id) ? $_POST["graph_template_input_id"] : $graph_template_input_id) . "&graph_template_id=" . $_POST["graph_template_id"]);
exit;
} else {
header("Location: graph_templates.php?action=template_edit&id=" . $_POST["graph_template_id"]);
exit;
}
}
}
示例2: db_fetch_assoc
echo "NOTE: Repairing Graph Templates\n";
} else {
echo "NOTE: Performing Check of Graph Templates\n";
}
$damaged_template_ids = db_fetch_assoc("SELECT DISTINCT graph_template_id FROM graph_template_input WHERE hash=''");
if (sizeof($damaged_template_ids)) {
foreach ($damaged_template_ids as $id) {
$template_name = db_fetch_cell("SELECT name FROM graph_templates WHERE id=" . $id["graph_template_id"]);
echo "NOTE: Graph Template '{$template_name}' is Damaged and can be repaired\n";
}
$damaged_templates = db_fetch_assoc("SELECT * FROM graph_template_input WHERE hash=''");
if (sizeof($damaged_templates)) {
echo "NOTE: -- Damaged Graph Templates Objects Found is '" . sizeof($damaged_templates) . "'\n";
if ($execute) {
foreach ($damaged_templates as $template) {
$hash = get_hash_graph_template(0, "graph_template_input");
db_execute("UPDATE graph_template_input SET hash='{$hash}' WHERE id=" . $template["id"]);
}
}
}
} else {
echo "NOTE: No Damaged Graph Templates Found\n";
}
/* display_help - displays the usage of the function */
function display_help()
{
print "Cacti Database Template Repair Tool v1.0, Copyright 2004-2015 - The Cacti Group\n\n";
print "usage: repair_templates.php --execute [--help]\n\n";
print "--execute - Perform the repair\n";
print "--help - display this help message\n";
}
示例3: graph_to_graph_template
/** graph_to_graph_template - converts a graph to a graph template
@param int $local_graph_id - the id of the graph to be converted
@param string $graph_title - the graph title to use for the new graph template. the variable
<graph_title> will be substituted for the current graph title */
function graph_to_graph_template($local_graph_id, $graph_title) {
/* create a new graph template entry */
db_execute("insert into graph_templates (id,name,hash) values (0,'" . str_replace("<graph_title>", db_fetch_cell("select title from graph_templates_graph where local_graph_id=$local_graph_id"), $graph_title) . "','" . get_hash_graph_template(0) . "')");
$graph_template_id = db_fetch_insert_id();
/* update graph to point to the new template */
db_execute("update graph_templates_graph set local_graph_id=0,local_graph_template_graph_id=0,graph_template_id=$graph_template_id where local_graph_id=$local_graph_id");
db_execute("update graph_templates_item set local_graph_id=0,local_graph_template_item_id=0,graph_template_id=$graph_template_id,task_item_id=0 where local_graph_id=$local_graph_id");
/* create hashes for the graph template items */
$items = db_fetch_assoc("select id from graph_templates_item where graph_template_id='$graph_template_id' and local_graph_id=0");
for ($j=0; $j<count($items); $j++) {
db_execute("update graph_templates_item set hash='" . get_hash_graph_template($items[$j]["id"], "graph_template_item") . "' where id=" . $items[$j]["id"]);
}
/* delete the old graph local entry */
db_execute("delete from graph_local where id=$local_graph_id");
db_execute("delete from graph_tree_items where local_graph_id=$local_graph_id");
}
示例4: get_hash_version
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";
//.........这里部分代码省略.........
示例5: upgrade_to_0_8_4
//.........这里部分代码省略.........
db_execute("update snmp_query set hash='8ffa36c1864124b38bcda2ae9bd61f46' where id=6;");
db_execute("update snmp_query_graph set hash='a0b3e7b63c2e66f9e1ea24a16ff245fc' where id=15;");
db_execute("update snmp_query_graph_rrd_sv set hash='cb09784ba05e401a3f1450126ed1e395' where id=69;");
db_execute("update snmp_query_graph_sv set hash='f21b23df740bc4a2d691d2d7b1b18dba' where id=30;");
db_execute("update snmp_query set hash='30ec734bc0ae81a3d995be82c73f46c1' where id=7;");
db_execute("update snmp_query_graph set hash='f6db4151aa07efa401a0af6c9b871844' where id=17;");
db_execute("update snmp_query_graph_rrd_sv set hash='42277993a025f1bfd85374d6b4deeb60' where id=92;");
db_execute("update snmp_query_graph_sv set hash='d99f8db04fd07bcd2260d246916e03da' where id=40;");
db_execute("update snmp_query set hash='9343eab1f4d88b0e61ffc9d020f35414' where id=8;");
db_execute("update snmp_query_graph set hash='46c4ee688932cf6370459527eceb8ef3' where id=18;");
db_execute("update snmp_query_graph_rrd_sv set hash='a3f280327b1592a1a948e256380b544f' where id=93;");
db_execute("update snmp_query_graph_sv set hash='9852782792ede7c0805990e506ac9618' where id=38;");
db_execute("update snmp_query set hash='0d1ab53fe37487a5d0b9e1d3ee8c1d0d' where id=9;");
db_execute("update snmp_query_graph set hash='4a515b61441ea5f27ab7dee6c3cb7818' where id=19;");
db_execute("update snmp_query_graph_rrd_sv set hash='b5a724edc36c10891fa2a5c370d55b6f' where id=94;");
db_execute("update snmp_query_graph_sv set hash='fa2f07ab54fce72eea684ba893dd9c95' where id=39;");
db_execute("update host_template set hash='4855b0e3e553085ed57219690285f91f' where id=1;");
db_execute("update host_template set hash='07d3fe6a52915f99e642d22e27d967a4' where id=3;");
db_execute("update host_template set hash='4e5dc8dd115264c2e9f3adb725c29413' where id=4;");
db_execute("update host_template set hash='cae6a879f86edacb2471055783bec6d0' where id=5;");
db_execute("update host_template set hash='9ef418b4251751e09c3c416704b01b01' where id=6;");
db_execute("update host_template set hash='5b8300be607dce4f030b026a381b91cd' where id=7;");
db_execute("update host_template set hash='2d3e47f416738c2d22c87c40218cc55e' where id=8;");
db_execute("update rra set hash='c21df5178e5c955013591239eb0afd46' where id=1;");
db_execute("update rra set hash='0d9c0af8b8acdc7807943937b3208e29' where id=2;");
db_execute("update rra set hash='6fc2d038fb42950138b0ce3e9874cc60' where id=3;");
db_execute("update rra set hash='e36f3adb9f152adfa5dc50fd2b23337e' where id=4;");
$item = db_fetch_assoc("select id from cdef");
for ($i=0; $i<count($item); $i++) {
db_execute("update cdef set hash='" . get_hash_cdef($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
$item2 = db_fetch_assoc("select id from cdef_items where cdef_id=" . $item[$i]["id"]);
for ($j=0; $j<count($item2); $j++) {
db_execute("update cdef_items set hash='" . get_hash_cdef($item2[$j]["id"], "cdef_item") . "' where id=" . $item2[$j]["id"] . ";");
}
}
$item = db_fetch_assoc("select id from graph_templates_gprint");
for ($i=0; $i<count($item); $i++) {
db_execute("update graph_templates_gprint set hash='" . get_hash_gprint($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
}
$item = db_fetch_assoc("select id from data_input");
for ($i=0; $i<count($item); $i++) {
db_execute("update data_input set hash='" . get_hash_data_input($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
$item2 = db_fetch_assoc("select id from data_input_fields where data_input_id=" . $item[$i]["id"]);
for ($j=0; $j<count($item2); $j++) {
db_execute("update data_input_fields set hash='" . get_hash_data_input($item2[$j]["id"], "data_input_field") . "' where id=" . $item2[$j]["id"] . ";");
}
}
$item = db_fetch_assoc("select id from data_template");
for ($i=0; $i<count($item); $i++) {
db_execute("update data_template set hash='" . get_hash_data_template($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
$item2 = db_fetch_assoc("select id from data_template_rrd where data_template_id=" . $item[$i]["id"] . " and local_data_id=0");
for ($j=0; $j<count($item2); $j++) {
db_execute("update data_template_rrd set hash='" . get_hash_data_template($item2[$j]["id"], "data_template_item") . "' where id=" . $item2[$j]["id"] . ";");
}
}
$item = db_fetch_assoc("select id from graph_templates");
for ($i=0; $i<count($item); $i++) {
db_execute("update graph_templates set hash='" . get_hash_graph_template($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
$item2 = db_fetch_assoc("select id from graph_templates_item where graph_template_id=" . $item[$i]["id"] . " and local_graph_id=0");
for ($j=0; $j<count($item2); $j++) {
db_execute("update graph_templates_item set hash='" . get_hash_graph_template($item2[$j]["id"], "graph_template_item") . "' where id=" . $item2[$j]["id"] . ";");
}
$item2 = db_fetch_assoc("select id from graph_template_input where graph_template_id=" . $item[$i]["id"]);
for ($j=0; $j<count($item2); $j++) {
db_execute("update graph_template_input set hash='" . get_hash_graph_template($item2[$j]["id"], "graph_template_input") . "' where id=" . $item2[$j]["id"] . ";");
}
}
$item = db_fetch_assoc("select id from snmp_query");
for ($i=0; $i<count($item); $i++) {
db_execute("update snmp_query set hash='" . get_hash_data_query($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
$item2 = db_fetch_assoc("select id from snmp_query_graph where snmp_query_id=" . $item[$i]["id"]);
for ($j=0; $j<count($item2); $j++) {
db_execute("update snmp_query_graph set hash='" . get_hash_data_query($item2[$j]["id"], "data_query_graph") . "' where id=" . $item2[$j]["id"] . ";");
$item3 = db_fetch_assoc("select id from snmp_query_graph_rrd_sv where snmp_query_graph_id=" . $item2[$j]["id"]);
for ($k=0; $k<count($item3); $k++) {
db_execute("update snmp_query_graph_rrd_sv set hash='" . get_hash_data_query($item3[$k]["id"], "data_query_sv_data_source") . "' where id=" . $item3[$k]["id"] . ";");
}
$item3 = db_fetch_assoc("select id from snmp_query_graph_sv where snmp_query_graph_id=" . $item2[$j]["id"]);
for ($k=0; $k<count($item3); $k++) {
db_execute("update snmp_query_graph_sv set hash='" . get_hash_data_query($item3[$k]["id"], "data_query_sv_graph") . "' where id=" . $item3[$k]["id"] . ";");
}
}
}
$item = db_fetch_assoc("select id from host_template");
for ($i=0; $i<count($item); $i++) {
db_execute("update host_template set hash='" . get_hash_host_template($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
}
$item = db_fetch_assoc("select id from rra");
for ($i=0; $i<count($item); $i++) {
db_execute("update rra set hash='" . get_hash_round_robin_archive($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
}
}
示例6: form_save
function form_save() {
if (isset($_POST["save_component_item"])) {
/* ================= input validation ================= */
input_validate_input_number(get_request_var_post("graph_template_id"));
input_validate_input_number(get_request_var_post("task_item_id"));
/* ==================================================== */
global $graph_item_types;
$items[0] = array();
if ($graph_item_types{$_POST["graph_type_id"]} == "LEGEND") {
/* this can be a major time saver when creating lots of graphs with the typical
GPRINT LAST/AVERAGE/MAX legends */
$items = array(
0 => array(
"color_id" => "0",
"graph_type_id" => "9",
"consolidation_function_id" => "4",
"text_format" => "Current:",
"hard_return" => ""
),
1 => array(
"color_id" => "0",
"graph_type_id" => "9",
"consolidation_function_id" => "1",
"text_format" => "Average:",
"hard_return" => ""
),
2 => array(
"color_id" => "0",
"graph_type_id" => "9",
"consolidation_function_id" => "3",
"text_format" => "Maximum:",
"hard_return" => "on"
));
}
foreach ($items as $item) {
/* generate a new sequence if needed */
if (empty($_POST["sequence"])) {
$_POST["sequence"] = get_sequence($_POST["sequence"], "sequence", "graph_templates_item", "graph_template_id=" . $_POST["graph_template_id"] . " and local_graph_id=0");
}
$save["id"] = $_POST["graph_template_item_id"];
$save["hash"] = get_hash_graph_template($_POST["graph_template_item_id"], "graph_template_item");
$save["graph_template_id"] = $_POST["graph_template_id"];
$save["local_graph_id"] = 0;
$save["task_item_id"] = form_input_validate($_POST["task_item_id"], "task_item_id", "", true, 3);
$save["color_id"] = form_input_validate((isset($item["color_id"]) ? $item["color_id"] : $_POST["color_id"]), "color_id", "", true, 3);
/* if alpha is disabled, use invisible_alpha instead */
if (!isset($_POST["alpha"])) {$_POST["alpha"] = $_POST["invisible_alpha"];}
$save["alpha"] = form_input_validate((isset($item["alpha"]) ? $item["alpha"] : $_POST["alpha"]), "alpha", "", true, 3);
$save["graph_type_id"] = form_input_validate((isset($item["graph_type_id"]) ? $item["graph_type_id"] : $_POST["graph_type_id"]), "graph_type_id", "", true, 3);
$save["cdef_id"] = form_input_validate($_POST["cdef_id"], "cdef_id", "", true, 3);
$save["consolidation_function_id"] = form_input_validate((isset($item["consolidation_function_id"]) ? $item["consolidation_function_id"] : $_POST["consolidation_function_id"]), "consolidation_function_id", "", true, 3);
$save["text_format"] = form_input_validate((isset($item["text_format"]) ? $item["text_format"] : $_POST["text_format"]), "text_format", "", true, 3);
$save["value"] = form_input_validate($_POST["value"], "value", "", true, 3);
$save["hard_return"] = form_input_validate(((isset($item["hard_return"]) ? $item["hard_return"] : (isset($_POST["hard_return"]) ? $_POST["hard_return"] : ""))), "hard_return", "", true, 3);
$save["gprint_id"] = form_input_validate($_POST["gprint_id"], "gprint_id", "", true, 3);
$save["sequence"] = $_POST["sequence"];
if (!is_error_message()) {
/* Before we save the item, let's get a look at task_item_id <-> input associations */
$orig_data_source_graph_inputs = db_fetch_assoc("select
graph_template_input.id,
graph_template_input.name,
graph_templates_item.task_item_id
from (graph_template_input,graph_template_input_defs,graph_templates_item)
where graph_template_input.id=graph_template_input_defs.graph_template_input_id
and graph_template_input_defs.graph_template_item_id=graph_templates_item.id
and graph_template_input.graph_template_id=" . $save["graph_template_id"] . "
and graph_template_input.column_name='task_item_id'
group by graph_templates_item.task_item_id");
$orig_data_source_to_input = array_rekey($orig_data_source_graph_inputs, "task_item_id", "id");
$graph_template_item_id = sql_save($save, "graph_templates_item");
if ($graph_template_item_id) {
raise_message(1);
if (!empty($save["task_item_id"])) {
/* old item clean-up. Don't delete anything if the item <-> task_item_id association remains the same. */
if ($_POST["_task_item_id"] != $_POST["task_item_id"]) {
/* It changed. Delete any old associations */
db_execute("delete from graph_template_input_defs where graph_template_item_id=$graph_template_item_id");
/* Input for current data source exists and has changed. Update the association */
if (isset($orig_data_source_to_input{$save["task_item_id"]})) {
db_execute("replace into graph_template_input_defs (graph_template_input_id,
graph_template_item_id) values (" . $orig_data_source_to_input{$save["task_item_id"]}
. ",$graph_template_item_id)");
}
}
/* an input for the current data source does NOT currently exist, let's create one */
if (!isset($orig_data_source_to_input{$save["task_item_id"]})) {
$ds_name = db_fetch_cell("select data_source_name from data_template_rrd where id=" . $_POST["task_item_id"]);
//.........这里部分代码省略.........
示例7: upgrade_to_0_8_6a
function upgrade_to_0_8_6a()
{
/* fix import/export template bug */
$item = db_fetch_assoc("select id from data_template");
for ($i = 0; $i < count($item); $i++) {
db_execute("update data_template set hash='" . get_hash_data_template($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
$item2 = db_fetch_assoc("select id from data_template_rrd where data_template_id=" . $item[$i]["id"] . " and local_data_id=0");
for ($j = 0; $j < count($item2); $j++) {
db_execute("update data_template_rrd set hash='" . get_hash_data_template($item2[$j]["id"], "data_template_item") . "' where id=" . $item2[$j]["id"] . ";");
}
}
$item = db_fetch_assoc("select id from graph_templates");
for ($i = 0; $i < count($item); $i++) {
db_execute("update graph_templates set hash='" . get_hash_graph_template($item[$i]["id"]) . "' where id=" . $item[$i]["id"] . ";");
$item2 = db_fetch_assoc("select id from graph_templates_item where graph_template_id=" . $item[$i]["id"] . " and local_graph_id=0");
for ($j = 0; $j < count($item2); $j++) {
db_execute("update graph_templates_item set hash='" . get_hash_graph_template($item2[$j]["id"], "graph_template_item") . "' where id=" . $item2[$j]["id"] . ";");
}
$item2 = db_fetch_assoc("select id from graph_template_input where graph_template_id=" . $item[$i]["id"]);
for ($j = 0; $j < count($item2); $j++) {
db_execute("update graph_template_input set hash='" . get_hash_graph_template($item2[$j]["id"], "graph_template_input") . "' where id=" . $item2[$j]["id"] . ";");
}
}
/* clean up data template item orphans left behind by the graph->graph template bug */
$graph_templates = db_fetch_assoc("select id from graph_templates");
if (sizeof($graph_templates) > 0) {
foreach ($graph_templates as $graph_template) {
/* find non-templated graph template items */
$non_templated_items = array_rekey(db_fetch_assoc("select\n\t\t\t\tgraph_template_input_defs.graph_template_item_id\n\t\t\t\tfrom (graph_template_input,graph_template_input_defs)\n\t\t\t\twhere graph_template_input_defs.graph_template_input_id=graph_template_input.id\n\t\t\t\tand graph_template_input.column_name = 'task_item_id'\n\t\t\t\tand graph_template_input.graph_template_id = '" . $graph_template["id"] . "'"), "graph_template_item_id", "graph_template_item_id");
/* find all graph items */
$graph_template_items = db_fetch_assoc("select\n\t\t\t\tgraph_templates_item.id,\n\t\t\t\tgraph_templates_item.task_item_id\n\t\t\t\tfrom graph_templates_item\n\t\t\t\twhere graph_templates_item.graph_template_id = '" . $graph_template["id"] . "'\n\t\t\t\tand graph_templates_item.local_graph_id = 0");
if (sizeof($graph_template_items) > 0) {
foreach ($graph_template_items as $graph_template_item) {
if (!isset($non_templated_items[$graph_template_item["id"]])) {
if ($graph_template_item["task_item_id"] > 0) {
$dest_dti = db_fetch_row("select local_data_id from data_template_rrd where id = '" . $graph_template_item["task_item_id"] . "'");
/* it's an orphan! */
if (!isset($dest_dti["local_data_id"]) || $dest_dti["local_data_id"] > 0) {
/* clean graph template */
db_execute("update graph_templates_item set task_item_id = 0 where id = '" . $graph_template_item["id"] . "' and local_graph_id = 0 and graph_template_id = '" . $graph_template["id"] . "'");
/* clean attached graphs */
db_execute("update graph_templates_item set task_item_id = 0 where local_graph_template_item_id = '" . $graph_template_item["id"] . "' and local_graph_id > 0 and graph_template_id = '" . $graph_template["id"] . "'");
}
}
}
}
}
}
}
/* make sure the 'host_graph' table is populated (problem from 0.8.4) */
$hosts = db_fetch_assoc("select id,host_template_id from host where host_template_id > 0");
if (sizeof($hosts) > 0) {
foreach ($hosts as $host) {
$graph_templates = db_fetch_assoc("select graph_template_id from host_template_graph where host_template_id=" . $host["host_template_id"]);
if (sizeof($graph_templates) > 0) {
foreach ($graph_templates as $graph_template) {
db_execute("replace into host_graph (host_id,graph_template_id) values (" . $host["id"] . "," . $graph_template["graph_template_id"] . ")");
}
}
}
}
}
示例8: duplicate_graph
function duplicate_graph($_local_graph_id, $_graph_template_id, $graph_title) {
require_once(CACTI_BASE_PATH . "/lib/graph/graph_info.php");
if (!empty($_local_graph_id)) {
$graph_local = db_fetch_row("select * from graph_local where id=$_local_graph_id");
$graph_template_graph = db_fetch_row("select * from graph_templates_graph where local_graph_id=$_local_graph_id");
$graph_template_items = db_fetch_assoc("select * from graph_templates_item where local_graph_id=$_local_graph_id");
/* create new entry: graph_local */
$save["id"] = 0;
$save["graph_template_id"] = $graph_local["graph_template_id"];
$save["device_id"] = $graph_local["device_id"];
$save["snmp_query_id"] = $graph_local["snmp_query_id"];
$save["snmp_index"] = $graph_local["snmp_index"];
$local_graph_id = sql_save($save, "graph_local");
$graph_template_graph["title"] = str_replace(__("<graph_title>"), $graph_template_graph["title"], $graph_title);
}elseif (!empty($_graph_template_id)) {
$graph_template = db_fetch_row("select * from graph_templates where id=$_graph_template_id");
$graph_template_graph = db_fetch_row("select * from graph_templates_graph where graph_template_id=$_graph_template_id and local_graph_id=0");
$graph_template_items = db_fetch_assoc("select * from graph_templates_item where graph_template_id=$_graph_template_id and local_graph_id=0");
$graph_template_inputs = db_fetch_assoc("select * from graph_template_input where graph_template_id=$_graph_template_id");
/* create new entry: graph_templates */
$save["id"] = 0;
$save["hash"] = get_hash_graph_template(0);
$save["name"] = str_replace(__("<template_title>"), $graph_template["name"], $graph_title);
$graph_template_id = sql_save($save, "graph_templates");
}
unset($save);
$struct_graph = graph_form_list();
reset($struct_graph);
/* create new entry: graph_templates_graph */
$save["id"] = 0;
$save["local_graph_id"] = (isset($local_graph_id) ? $local_graph_id : 0);
$save["local_graph_template_graph_id"] = (isset($graph_template_graph["local_graph_template_graph_id"]) ? $graph_template_graph["local_graph_template_graph_id"] : 0);
$save["graph_template_id"] = (!empty($_local_graph_id) ? $graph_template_graph["graph_template_id"] : $graph_template_id);
$save["title_cache"] = $graph_template_graph["title_cache"];
reset($struct_graph);
while (list($field, $array) = each($struct_graph)) {
$save{$field} = $graph_template_graph{$field};
$save{"t_" . $field} = $graph_template_graph{"t_" . $field};
}
$graph_templates_graph_id = sql_save($save, "graph_templates_graph");
/* create new entry(s): graph_templates_item */
if (sizeof($graph_template_items) > 0) {
$struct_graph_item = graph_item_form_list();
foreach ($graph_template_items as $graph_template_item) {
unset($save);
reset($struct_graph_item);
$save["id"] = 0;
/* save a hash only for graph_template copy operations */
$save["hash"] = (!empty($_graph_template_id) ? get_hash_graph_template(0, "graph_template_item") : 0);
$save["local_graph_id"] = (isset($local_graph_id) ? $local_graph_id : 0);
$save["graph_template_id"] = (!empty($_local_graph_id) ? $graph_template_item["graph_template_id"] : $graph_template_id);
$save["local_graph_template_item_id"] = (isset($graph_template_item["local_graph_template_item_id"]) ? $graph_template_item["local_graph_template_item_id"] : 0);
while (list($field, $array) = each($struct_graph_item)) {
$save{$field} = $graph_template_item{$field};
}
$graph_item_mappings{$graph_template_item["id"]} = sql_save($save, "graph_templates_item");
}
}
if (!empty($_graph_template_id)) {
/* create new entry(s): graph_template_input (graph template only) */
if (sizeof($graph_template_inputs) > 0) {
foreach ($graph_template_inputs as $graph_template_input) {
unset($save);
$save["id"] = 0;
$save["graph_template_id"] = $graph_template_id;
$save["name"] = $graph_template_input["name"];
$save["description"] = $graph_template_input["description"];
$save["column_name"] = $graph_template_input["column_name"];
$save["hash"] = get_hash_graph_template(0, "graph_template_input");
$graph_template_input_id = sql_save($save, "graph_template_input");
$graph_template_input_defs = db_fetch_assoc("select * from graph_template_input_defs where graph_template_input_id=" . $graph_template_input["id"]);
/* create new entry(s): graph_template_input_defs (graph template only) */
if (sizeof($graph_template_input_defs) > 0) {
foreach ($graph_template_input_defs as $graph_template_input_def) {
db_execute("insert into graph_template_input_defs (graph_template_input_id,graph_template_item_id)
values ($graph_template_input_id," . $graph_item_mappings{$graph_template_input_def["graph_template_item_id"]} . ")");
}
}
}
}
}
//.........这里部分代码省略.........
示例9: form_save
function form_save()
{
if (isset($_POST["save_component_template"])) {
$save1["id"] = $_POST["graph_template_id"];
$save1["hash"] = get_hash_graph_template($_POST["graph_template_id"]);
$save1["name"] = form_input_validate($_POST["name"], "name", "", false, 3);
$save2["id"] = $_POST["graph_template_graph_id"];
$save2["local_graph_template_graph_id"] = 0;
$save2["local_graph_id"] = 0;
$save2["t_image_format_id"] = isset($_POST["t_image_format_id"]) ? $_POST["t_image_format_id"] : "";
$save2["image_format_id"] = form_input_validate($_POST["image_format_id"], "image_format_id", "", true, 3);
$save2["t_title"] = form_input_validate(isset($_POST["t_title"]) ? $_POST["t_title"] : "", "t_title", "", true, 3);
$save2["title"] = form_input_validate($_POST["title"], "title", "", isset($_POST["t_title"]) ? true : false, 3);
$save2["t_height"] = form_input_validate(isset($_POST["t_height"]) ? $_POST["t_height"] : "", "t_height", "", true, 3);
$save2["height"] = form_input_validate($_POST["height"], "height", "^[0-9]+\$", isset($_POST["t_height"]) ? true : false, 3);
$save2["t_width"] = form_input_validate(isset($_POST["t_width"]) ? $_POST["t_width"] : "", "t_width", "", true, 3);
$save2["width"] = form_input_validate($_POST["width"], "width", "^[0-9]+\$", isset($_POST["t_width"]) ? true : false, 3);
$save2["t_upper_limit"] = form_input_validate(isset($_POST["t_upper_limit"]) ? $_POST["t_upper_limit"] : "", "t_upper_limit", "", true, 3);
$save2["upper_limit"] = form_input_validate($_POST["upper_limit"], "upper_limit", "^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U\$", isset($_POST["t_upper_limit"]) ? true : false, 3);
$save2["t_lower_limit"] = form_input_validate(isset($_POST["t_lower_limit"]) ? $_POST["t_lower_limit"] : "", "t_lower_limit", "", true, 3);
$save2["lower_limit"] = form_input_validate($_POST["lower_limit"], "lower_limit", "^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U\$", isset($_POST["t_lower_limit"]) ? true : false, 3);
$save2["t_vertical_label"] = form_input_validate(isset($_POST["t_vertical_label"]) ? $_POST["t_vertical_label"] : "", "t_vertical_label", "", true, 3);
$save2["vertical_label"] = form_input_validate($_POST["vertical_label"], "vertical_label", "", true, 3);
$save2["t_slope_mode"] = form_input_validate(isset($_POST["t_slope_mode"]) ? $_POST["t_slope_mode"] : "", "t_slope_mode", "", true, 3);
$save2["slope_mode"] = form_input_validate(isset($_POST["slope_mode"]) ? $_POST["slope_mode"] : "", "slope_mode", "", true, 3);
$save2["t_auto_scale"] = form_input_validate(isset($_POST["t_auto_scale"]) ? $_POST["t_auto_scale"] : "", "t_auto_scale", "", true, 3);
$save2["auto_scale"] = form_input_validate(isset($_POST["auto_scale"]) ? $_POST["auto_scale"] : "", "auto_scale", "", true, 3);
$save2["t_auto_scale_opts"] = form_input_validate(isset($_POST["t_auto_scale_opts"]) ? $_POST["t_auto_scale_opts"] : "", "t_auto_scale_opts", "", true, 3);
$save2["auto_scale_opts"] = form_input_validate($_POST["auto_scale_opts"], "auto_scale_opts", "", true, 3);
$save2["t_auto_scale_log"] = form_input_validate(isset($_POST["t_auto_scale_log"]) ? $_POST["t_auto_scale_log"] : "", "t_auto_scale_log", "", true, 3);
$save2["auto_scale_log"] = form_input_validate(isset($_POST["auto_scale_log"]) ? $_POST["auto_scale_log"] : "", "auto_scale_log", "", true, 3);
$save2["t_scale_log_units"] = form_input_validate(isset($_POST["t_scale_log_units"]) ? $_POST["t_scale_log_units"] : "", "t_scale_log_units", "", true, 3);
$save2["scale_log_units"] = form_input_validate(isset($_POST["scale_log_units"]) ? $_POST["scale_log_units"] : "", "scale_log_units", "", true, 3);
$save2["t_auto_scale_rigid"] = form_input_validate(isset($_POST["t_auto_scale_rigid"]) ? $_POST["t_auto_scale_rigid"] : "", "t_auto_scale_rigid", "", true, 3);
$save2["auto_scale_rigid"] = form_input_validate(isset($_POST["auto_scale_rigid"]) ? $_POST["auto_scale_rigid"] : "", "auto_scale_rigid", "", true, 3);
$save2["t_auto_padding"] = form_input_validate(isset($_POST["t_auto_padding"]) ? $_POST["t_auto_padding"] : "", "t_auto_padding", "", true, 3);
$save2["auto_padding"] = form_input_validate(isset($_POST["auto_padding"]) ? $_POST["auto_padding"] : "", "auto_padding", "", true, 3);
$save2["t_base_value"] = form_input_validate(isset($_POST["t_base_value"]) ? $_POST["t_base_value"] : "", "t_base_value", "", true, 3);
$save2["base_value"] = form_input_validate($_POST["base_value"], "base_value", "^[0-9]+\$", isset($_POST["t_base_value"]) ? true : false, 3);
$save2["t_export"] = form_input_validate(isset($_POST["t_export"]) ? $_POST["t_export"] : "", "t_export", "", true, 3);
$save2["export"] = form_input_validate(isset($_POST["export"]) ? $_POST["export"] : "", "export", "", true, 3);
$save2["t_unit_value"] = form_input_validate(isset($_POST["t_unit_value"]) ? $_POST["t_unit_value"] : "", "t_unit_value", "", true, 3);
$save2["unit_value"] = form_input_validate($_POST["unit_value"], "unit_value", "", true, 3);
$save2["t_unit_exponent_value"] = form_input_validate(isset($_POST["t_unit_exponent_value"]) ? $_POST["t_unit_exponent_value"] : "", "t_unit_exponent_value", "", true, 3);
$save2["unit_exponent_value"] = form_input_validate($_POST["unit_exponent_value"], "unit_exponent_value", "^-?[0-9]+\$", true, 3);
if (!is_error_message()) {
$graph_template_id = sql_save($save1, "graph_templates");
if ($graph_template_id) {
raise_message(1);
} else {
raise_message(2);
}
}
if (!is_error_message()) {
$save2["graph_template_id"] = $graph_template_id;
$graph_template_graph_id = sql_save($save2, "graph_templates_graph");
if ($graph_template_graph_id) {
raise_message(1);
push_out_graph($graph_template_graph_id);
} else {
raise_message(2);
}
}
}
if (is_error_message() || empty($_POST["graph_template_id"])) {
header("Location: graph_templates.php?action=template_edit&id=" . (empty($graph_template_id) ? $_POST["graph_template_id"] : $graph_template_id));
} else {
header("Location: graph_templates.php");
}
}
示例10: data_query_to_xml
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;
}
示例11: duplicate_graph
function duplicate_graph($_local_graph_id, $_graph_template_id, $graph_title)
{
global $struct_graph, $struct_graph_item;
if (!empty($_local_graph_id)) {
$graph_local = db_fetch_row("select * from graph_local where id={$_local_graph_id}");
$graph_template_graph = db_fetch_row("select * from graph_templates_graph where local_graph_id={$_local_graph_id}");
$graph_template_items = db_fetch_assoc("select * from graph_templates_item where local_graph_id={$_local_graph_id}");
/* create new entry: graph_local */
$save["id"] = 0;
$save["graph_template_id"] = $graph_local["graph_template_id"];
$save["host_id"] = $graph_local["host_id"];
$save["snmp_query_id"] = $graph_local["snmp_query_id"];
$save["snmp_index"] = $graph_local["snmp_index"];
$local_graph_id = sql_save($save, "graph_local");
$graph_template_graph["title"] = str_replace("<graph_title>", $graph_template_graph["title"], $graph_title);
} elseif (!empty($_graph_template_id)) {
$graph_template = db_fetch_row("select * from graph_templates where id={$_graph_template_id}");
$graph_template_graph = db_fetch_row("select * from graph_templates_graph where graph_template_id={$_graph_template_id} and local_graph_id=0");
$graph_template_items = db_fetch_assoc("select * from graph_templates_item where graph_template_id={$_graph_template_id} and local_graph_id=0");
$graph_template_inputs = db_fetch_assoc("select * from graph_template_input where graph_template_id={$_graph_template_id}");
/* create new entry: graph_templates */
$save["id"] = 0;
$save["hash"] = get_hash_graph_template(0);
$save["name"] = str_replace("<template_title>", $graph_template["name"], $graph_title);
$graph_template_id = sql_save($save, "graph_templates");
}
unset($save);
reset($struct_graph);
/* create new entry: graph_templates_graph */
$save["id"] = 0;
$save["local_graph_id"] = isset($local_graph_id) ? $local_graph_id : 0;
$save["local_graph_template_graph_id"] = isset($graph_template_graph["local_graph_template_graph_id"]) ? $graph_template_graph["local_graph_template_graph_id"] : 0;
$save["graph_template_id"] = !empty($_local_graph_id) ? $graph_template_graph["graph_template_id"] : $graph_template_id;
$save["title_cache"] = $graph_template_graph["title_cache"];
reset($struct_graph);
while (list($field, $array) = each($struct_graph)) {
$save[$field] = $graph_template_graph[$field];
$save["t_" . $field] = $graph_template_graph["t_" . $field];
}
$graph_templates_graph_id = sql_save($save, "graph_templates_graph");
/* create new entry(s): graph_templates_item */
if (sizeof($graph_template_items) > 0) {
foreach ($graph_template_items as $graph_template_item) {
unset($save);
reset($struct_graph_item);
$save["id"] = 0;
/* save a hash only for graph_template copy operations */
$save["hash"] = !empty($_graph_template_id) ? get_hash_graph_template(0, "graph_template_item") : 0;
$save["local_graph_id"] = isset($local_graph_id) ? $local_graph_id : 0;
$save["graph_template_id"] = !empty($_local_graph_id) ? $graph_template_item["graph_template_id"] : $graph_template_id;
$save["local_graph_template_item_id"] = isset($graph_template_item["local_graph_template_item_id"]) ? $graph_template_item["local_graph_template_item_id"] : 0;
while (list($field, $array) = each($struct_graph_item)) {
$save[$field] = $graph_template_item[$field];
}
$graph_item_mappings[$graph_template_item["id"]] = sql_save($save, "graph_templates_item");
}
}
if (!empty($_graph_template_id)) {
/* create new entry(s): graph_template_input (graph template only) */
if (sizeof($graph_template_inputs) > 0) {
foreach ($graph_template_inputs as $graph_template_input) {
unset($save);
$save["id"] = 0;
$save["graph_template_id"] = $graph_template_id;
$save["name"] = $graph_template_input["name"];
$save["description"] = $graph_template_input["description"];
$save["column_name"] = $graph_template_input["column_name"];
$save["hash"] = get_hash_graph_template(0, "graph_template_input");
$graph_template_input_id = sql_save($save, "graph_template_input");
$graph_template_input_defs = db_fetch_assoc("select * from graph_template_input_defs where graph_template_input_id=" . $graph_template_input["id"]);
/* create new entry(s): graph_template_input_defs (graph template only) */
if (sizeof($graph_template_input_defs) > 0) {
foreach ($graph_template_input_defs as $graph_template_input_def) {
db_execute("insert into graph_template_input_defs (graph_template_input_id,graph_template_item_id)\n\t\t\t\t\tvalues ({$graph_template_input_id}," . $graph_item_mappings[$graph_template_input_def["graph_template_item_id"]] . ")");
}
}
}
}
}
if (!empty($_local_graph_id)) {
update_graph_title_cache($local_graph_id);
}
}
示例12: graph_to_graph_template
function graph_to_graph_template($local_graph_id, $graph_title)
{
/* create a new graph template entry */
db_execute("INSERT INTO graph_templates (id,name,hash) values (0,'" . str_replace("<graph_title>", db_fetch_cell("SELECT title FROM graph_templates_graph WHERE local_graph_id={$local_graph_id}"), $graph_title) . "','" . get_hash_graph_template(0) . "')");
$graph_template_id = db_fetch_insert_id();
/* update graph to point to the new template */
db_execute("UPDATE graph_templates_graph SET local_graph_id=0,local_graph_template_graph_id=0,graph_template_id={$graph_template_id} WHERE local_graph_id={$local_graph_id}");
db_execute("UPDATE graph_templates_item SET local_graph_id=0,local_graph_template_item_id=0,graph_template_id={$graph_template_id},task_item_id=0 WHERE local_graph_id={$local_graph_id}");
/* create hashes for the graph template items */
$items = db_fetch_assoc("SELECT id FROM graph_templates_item WHERE graph_template_id='{$graph_template_id}' AND local_graph_id=0");
for ($j = 0; $j < count($items); $j++) {
db_execute("UPDATE graph_templates_item SET hash='" . get_hash_graph_template($items[$j]["id"], "graph_template_item") . "' WHERE id=" . $items[$j]["id"]);
}
/* delete the old graph local entry */
db_execute("DELETE FROM graph_local WHERE id={$local_graph_id}");
db_execute("DELETE FROM graph_tree_items WHERE local_graph_id={$local_graph_id}");
}
示例13: form_save
function form_save() {
require(CACTI_BASE_PATH . "/include/graph/graph_arrays.php");
if (isset($_POST["save_component_item"])) {
/* ================= input validation ================= */
input_validate_input_number(get_request_var_post("graph_template_id"));
input_validate_input_number(get_request_var_post("task_item_id"));
/* ==================================================== */
$items[0] = array();
if (get_request_var_post("graph_type_id") == GRAPH_ITEM_TYPE_LEGEND) {
/* this can be a major time saver when creating lots of graphs with the typical
GPRINT LAST/AVERAGE/MAX legends */
$items = array(
0 => array(
"color_id" => "0",
"graph_type_id" => GRAPH_ITEM_TYPE_GPRINT_LAST,
"consolidation_function_id" => RRA_CF_TYPE_AVERAGE,
"text_format" => __("Current:"),
"hard_return" => ""
),
1 => array(
"color_id" => "0",
"graph_type_id" => GRAPH_ITEM_TYPE_GPRINT_AVERAGE,
"consolidation_function_id" => RRA_CF_TYPE_AVERAGE,
"text_format" => __("Average:"),
"hard_return" => ""
),
2 => array(
"color_id" => "0",
"graph_type_id" => GRAPH_ITEM_TYPE_GPRINT_MAX,
"consolidation_function_id" => RRA_CF_TYPE_AVERAGE,
"text_format" => __("Maximum:"),
"hard_return" => CHECKED
));
}
if ($_POST["graph_type_id"] == GRAPH_ITEM_TYPE_CUSTOM_LEGEND) {
/* this can be a major time saver when creating lots of graphs with the typical VDEFs */
$items = array(
0 => array(
"color_id" => "0",
"graph_type_id" => read_config_option("cl1_gt_id"),
"consolidation_function_id" => read_config_option("cl1_cf_id"),
"vdef_id" => read_config_option("cl1_vdef_id"),
"text_format" => read_config_option("cl1_text_format"),
"hard_return" => read_config_option("cl1_hard_return")
),
1 => array(
"color_id" => "0",
"graph_type_id" => read_config_option("cl2_gt_id"),
"consolidation_function_id" => read_config_option("cl2_cf_id"),
"vdef_id" => read_config_option("cl2_vdef_id"),
"text_format" => read_config_option("cl2_text_format"),
"hard_return" => read_config_option("cl2_hard_return")
),
2 => array(
"color_id" => "0",
"graph_type_id" => read_config_option("cl3_gt_id"),
"consolidation_function_id" => read_config_option("cl3_cf_id"),
"vdef_id" => read_config_option("cl3_vdef_id"),
"text_format" => read_config_option("cl3_text_format"),
"hard_return" => read_config_option("cl3_hard_return")
),
3 => array(
"color_id" => "0",
"graph_type_id" => read_config_option("cl4_gt_id"),
"consolidation_function_id" => read_config_option("cl4_cf_id"),
"vdef_id" => read_config_option("cl4_vdef_id"),
"text_format" => read_config_option("cl4_text_format"),
"hard_return" => read_config_option("cl4_hard_return")
),
);
foreach ($items as $key => $item) { #drop "empty" custom legend items
if (empty($item["text_format"])) unset($items[$key]);
}
}
foreach ($items as $item) {
$save["id"] = form_input_validate($_POST["graph_template_item_id"], "graph_template_item_id", "^[0-9]+$", false, 3);
$save["hash"] = get_hash_graph_template($_POST["graph_template_item_id"], "graph_template_item");
$save["graph_template_id"] = form_input_validate($_POST["graph_template_id"], "graph_template_id", "^[0-9]+$", false, 3);
$save["local_graph_id"] = 0;
$save["task_item_id"] = form_input_validate(((isset($item["task_item_id"]) ? $item["task_item_id"] : (isset($_POST["task_item_id"]) ? $_POST["task_item_id"] : 0))), "task_item_id", "^[0-9]+$", true, 3);
$save["color_id"] = form_input_validate(((isset($item["color_id"]) ? $item["color_id"] : (isset($_POST["color_id"]) ? $_POST["color_id"] : 0))), "color_id", "^[0-9]+$", true, 3);
$save["alpha"] = form_input_validate(((isset($item["alpha"]) ? $item["alpha"] : (isset($_POST["alpha"]) ? $_POST["alpha"] : "FF"))), "alpha", "^[a-fA-F0-9]+$", true, 3);
$save["graph_type_id"] = form_input_validate(((isset($item["graph_type_id"]) ? $item["graph_type_id"] : (isset($_POST["graph_type_id"]) ? $_POST["graph_type_id"] : 0))), "graph_type_id", "^[0-9]+$", true, 3);
if (isset($_POST["line_width"]) || isset($item["line_width"])) {
$save["line_width"] = form_input_validate((isset($item["line_width"]) ? $item["line_width"] : $_POST["line_width"]), "line_width", "^[0-9]+[\.,]+[0-9]+$", true, 3);
}else { # make sure to transfer old LINEx style into line_width on save
switch ($save["graph_type_id"]) {
case GRAPH_ITEM_TYPE_LINE1:
$save["line_width"] = 1;
break;
case GRAPH_ITEM_TYPE_LINE2:
$save["line_width"] = 2;
break;
case GRAPH_ITEM_TYPE_LINE3:
$save["line_width"] = 3;
//.........这里部分代码省略.........
示例14: form_save
function form_save()
{
if (isset($_POST['save_component_input']) && !is_error_message()) {
$graph_input_values = array();
$selected_graph_items = array();
/* ================= input validation ================= */
input_validate_input_number(get_request_var_post('graph_template_input_id'));
input_validate_input_number(get_request_var_post('graph_template_id'));
/* ==================================================== */
$save['id'] = $_POST['graph_template_input_id'];
$save['hash'] = get_hash_graph_template($_POST['graph_template_input_id'], 'graph_template_input');
$save['graph_template_id'] = $_POST['graph_template_id'];
$save['name'] = form_input_validate($_POST['name'], 'name', '', false, 3);
$save['description'] = form_input_validate($_POST['description'], 'description', '', true, 3);
$save['column_name'] = form_input_validate($_POST['column_name'], 'column_name', '', true, 3);
if (!is_error_message()) {
$graph_template_input_id = sql_save($save, 'graph_template_input');
if ($graph_template_input_id) {
raise_message(1);
/* list all graph items from the db so we can compare them with the current form */
$db_selected_graph_item = array_rekey(db_fetch_assoc_prepared('SELECT graph_template_item_id FROM graph_template_input_defs WHERE graph_template_input_id = ?', array($graph_template_input_id)), 'graph_template_item_id', 'graph_template_item_id');
/* list all select graph items for use down below */
while (list($var, $val) = each($_POST)) {
if (preg_match("/^i_(\\d+)\$/", $var, $matches)) {
/* ================= input validation ================= */
input_validate_input_number($matches[1]);
/* ==================================================== */
$selected_graph_items[$matches[1]] = $matches[1];
if (isset($db_selected_graph_item[$matches[1]])) {
/* is selected and exists in the db; old item */
$old_members[$matches[1]] = $matches[1];
} else {
/* is selected and does not exist the db; new item */
$new_members[$matches[1]] = $matches[1];
}
}
}
if (isset($new_members) && sizeof($new_members) > 0) {
while (list($item_id, $item_id) = each($new_members)) {
push_out_graph_input($graph_template_input_id, $item_id, isset($new_members) ? $new_members : array());
}
}
db_execute_prepared('DELETE FROM graph_template_input_defs WHERE graph_template_input_id = ?', array($graph_template_input_id));
if (sizeof($selected_graph_items) > 0) {
foreach ($selected_graph_items as $graph_template_item_id) {
db_execute_prepared('INSERT INTO graph_template_input_defs (graph_template_input_id, graph_template_item_id) VALUES (?, ?)', array($graph_template_input_id, $graph_template_item_id));
}
}
} else {
raise_message(2);
}
}
if (is_error_message()) {
header('Location: graph_templates_inputs.php?action=input_edit&graph_template_input_id=' . (empty($graph_template_input_id) ? $_POST['graph_template_input_id'] : $graph_template_input_id) . '&graph_template_id=' . $_POST['graph_template_id']);
exit;
} else {
header('Location: graph_templates.php?action=template_edit&id=' . $_POST['graph_template_id']);
exit;
}
}
}
示例15: form_save
function form_save()
{
if (isset($_POST['save_component_item'])) {
/* ================= input validation ================= */
input_validate_input_number(get_request_var_post('graph_template_id'));
input_validate_input_number(get_request_var_post('graph_template_item_id'));
input_validate_input_number(get_request_var_post('task_item_id'));
/* ==================================================== */
global $graph_item_types;
$items[0] = array();
if ($graph_item_types[$_POST['graph_type_id']] == 'LEGEND') {
/* this can be a major time saver when creating lots of graphs with the typical
GPRINT LAST/AVERAGE/MAX legends */
$items = array(0 => array('color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '4', 'text_format' => 'Current:', 'hard_return' => ''), 1 => array('color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '1', 'text_format' => 'Average:', 'hard_return' => ''), 2 => array('color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '3', 'text_format' => 'Maximum:', 'hard_return' => 'on'));
}
foreach ($items as $item) {
/* generate a new sequence if needed */
if (empty($_POST['sequence'])) {
$_POST['sequence'] = get_sequence($_POST['sequence'], 'sequence', 'graph_templates_item', 'graph_template_id=' . $_POST['graph_template_id'] . ' AND local_graph_id=0');
}
$save['id'] = $_POST['graph_template_item_id'];
$save['hash'] = get_hash_graph_template($_POST['graph_template_item_id'], 'graph_template_item');
$save['graph_template_id'] = $_POST['graph_template_id'];
$save['local_graph_id'] = 0;
$save['task_item_id'] = form_input_validate($_POST['task_item_id'], 'task_item_id', '', true, 3);
$save['color_id'] = form_input_validate(isset($item['color_id']) ? $item['color_id'] : $_POST['color_id'], 'color_id', '', true, 3);
/* if alpha is disabled, use invisible_alpha instead */
if (!isset($_POST['alpha'])) {
$_POST['alpha'] = $_POST['invisible_alpha'];
}
$save['alpha'] = form_input_validate(isset($item['alpha']) ? $item['alpha'] : $_POST['alpha'], 'alpha', '', true, 3);
$save['graph_type_id'] = form_input_validate(isset($item['graph_type_id']) ? $item['graph_type_id'] : $_POST['graph_type_id'], 'graph_type_id', '', true, 3);
$save['cdef_id'] = form_input_validate($_POST['cdef_id'], 'cdef_id', '', true, 3);
$save['consolidation_function_id'] = form_input_validate(isset($item['consolidation_function_id']) ? $item['consolidation_function_id'] : $_POST['consolidation_function_id'], 'consolidation_function_id', '', true, 3);
$save['text_format'] = form_input_validate(isset($item['text_format']) ? $item['text_format'] : $_POST['text_format'], 'text_format', '', true, 3);
$save['value'] = form_input_validate($_POST['value'], 'value', '', true, 3);
$save['hard_return'] = form_input_validate(isset($item['hard_return']) ? $item['hard_return'] : (isset($_POST['hard_return']) ? $_POST['hard_return'] : ''), 'hard_return', '', true, 3);
$save['gprint_id'] = form_input_validate($_POST['gprint_id'], 'gprint_id', '', true, 3);
$save['sequence'] = $_POST['sequence'];
if (!is_error_message()) {
/* Before we save the item, let's get a look at task_item_id <-> input associations */
$orig_data_source_graph_inputs = db_fetch_assoc_prepared("SELECT\n\t\t\t\t\tgraph_template_input.id,\n\t\t\t\t\tgraph_template_input.name,\n\t\t\t\t\tgraph_templates_item.task_item_id\n\t\t\t\t\tFROM (graph_template_input, graph_template_input_defs, graph_templates_item)\n\t\t\t\t\tWHERE graph_template_input.id = graph_template_input_defs.graph_template_input_id\n\t\t\t\t\tAND graph_template_input_defs.graph_template_item_id = graph_templates_item.id\n\t\t\t\t\tAND graph_template_input.graph_template_id = ?\n\t\t\t\t\tAND graph_template_input.column_name = 'task_item_id'\n\t\t\t\t\tGROUP BY graph_templates_item.task_item_id", array($save['graph_template_id']));
$orig_data_source_to_input = array_rekey($orig_data_source_graph_inputs, 'task_item_id', 'id');
$graph_template_item_id = sql_save($save, 'graph_templates_item');
if ($graph_template_item_id) {
raise_message(1);
if (!empty($save['task_item_id'])) {
/* old item clean-up. Don't delete anything if the item <-> task_item_id association remains the same. */
if ($_POST['_task_item_id'] != $_POST['task_item_id']) {
/* It changed. Delete any old associations */
db_execute_prepared('DELETE FROM graph_template_input_defs WHERE graph_template_item_id = ?', array($graph_template_item_id));
/* Input for current data source exists and has changed. Update the association */
if (isset($orig_data_source_to_input[$save['task_item_id']])) {
db_execute_prepared('REPLACE INTO graph_template_input_defs (graph_template_input_id, graph_template_item_id) values (?, ?)', array($orig_data_source_to_input[$save['task_item_id']], $graph_template_item_id));
}
}
/* an input for the current data source does NOT currently exist, let's create one */
if (!isset($orig_data_source_to_input[$save['task_item_id']])) {
$ds_name = db_fetch_cell_prepared('SELECT data_source_name FROM data_template_rrd WHERE id = ?', array($_POST['task_item_id']));
db_execute_prepared("REPLACE INTO graph_template_input (hash, graph_template_id, name, column_name) VALUES (?, ?, ?, 'task_item_id')", array(get_hash_graph_template(0, 'graph_template_input'), $save['graph_template_id'], 'Data Source [$ds_name]'));
$graph_template_input_id = db_fetch_insert_id();
$graph_items = db_fetch_assoc_prepared('SELECT id FROM graph_templates_item WHERE graph_template_id = ? AND task_item_id = ?', array($save['graph_template_id'], $_POST['task_item_id']));
if (sizeof($graph_items) > 0) {
foreach ($graph_items as $graph_item) {
db_execute_prepared('REPLACE INTO graph_template_input_defs (graph_template_input_id, graph_template_item_id) VALUES (?, ?)', array($graph_template_input_id, $graph_item['id']));
}
}
}
}
push_out_graph_item($graph_template_item_id);
if (isset($orig_data_source_to_input[$_POST['task_item_id']])) {
/* make sure all current graphs using this graph input are aware of this change */
push_out_graph_input($orig_data_source_to_input[$_POST['task_item_id']], $graph_template_item_id, array($graph_template_item_id => $graph_template_item_id));
}
} else {
raise_message(2);
}
}
$_POST['sequence'] = 0;
}
if (is_error_message()) {
header('Location: graph_templates_items.php?action=item_edit&graph_template_item_id=' . (empty($graph_template_item_id) ? $_POST['graph_template_item_id'] : $graph_template_item_id) . '&id=' . $_POST['graph_template_id']);
exit;
} else {
header('Location: graph_templates.php?action=template_edit&id=' . $_POST['graph_template_id']);
exit;
}
}
}