Пример #1
0
function form_save()
{
    global $cnn_id;
    if (isset($_POST["save_component_template"])) {
        /* ================= input validation ================= */
        input_validate_input_number(get_request_var_post("data_input_id"));
        input_validate_input_number(get_request_var_post("data_template_id"));
        input_validate_input_number(get_request_var_post("data_template_data_id"));
        input_validate_input_number(get_request_var_post("data_template_rrd_id"));
        /* ==================================================== */
        /* save: data_template */
        $save1["id"] = $_POST["data_template_id"];
        $save1["hash"] = get_hash_data_template($_POST["data_template_id"]);
        $save1["name"] = form_input_validate($_POST["template_name"], "template_name", "", false, 3);
        /* save: data_template_data */
        $save2["id"] = $_POST["data_template_data_id"];
        $save2["local_data_template_data_id"] = 0;
        $save2["local_data_id"] = 0;
        $save2["data_input_id"] = form_input_validate($_POST["data_input_id"], "data_input_id", "^[0-9]+\$", true, 3);
        $save2["t_name"] = form_input_validate(isset($_POST["t_name"]) ? $_POST["t_name"] : "", "t_name", "", true, 3);
        $save2["name"] = form_input_validate($_POST["name"], "name", "", isset($_POST["t_name"]) ? true : false, 3);
        $save2["t_active"] = form_input_validate(isset($_POST["t_active"]) ? $_POST["t_active"] : "", "t_active", "", true, 3);
        $save2["active"] = form_input_validate(isset($_POST["active"]) ? $_POST["active"] : "", "active", "", true, 3);
        $save2["t_rrd_step"] = form_input_validate(isset($_POST["t_rrd_step"]) ? $_POST["t_rrd_step"] : "", "t_rrd_step", "", true, 3);
        $save2["rrd_step"] = form_input_validate($_POST["rrd_step"], "rrd_step", "^[0-9]+\$", isset($_POST["t_rrd_step"]) ? true : false, 3);
        $save2["t_rra_id"] = form_input_validate(isset($_POST["t_rra_id"]) ? $_POST["t_rra_id"] : "", "t_rra_id", "", true, 3);
        /* save: data_template_rrd */
        $save3["id"] = $_POST["data_template_rrd_id"];
        $save3["hash"] = get_hash_data_template($_POST["data_template_rrd_id"], "data_template_item");
        $save3["local_data_template_rrd_id"] = 0;
        $save3["local_data_id"] = 0;
        $save3["t_rrd_maximum"] = form_input_validate(isset($_POST["t_rrd_maximum"]) ? $_POST["t_rrd_maximum"] : "", "t_rrd_maximum", "", true, 3);
        $save3["rrd_maximum"] = form_input_validate($_POST["rrd_maximum"], "rrd_maximum", "^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U\$", isset($_POST["t_rrd_maximum"]) ? true : false, 3);
        $save3["t_rrd_minimum"] = form_input_validate(isset($_POST["t_rrd_minimum"]) ? $_POST["t_rrd_minimum"] : "", "t_rrd_minimum", "", true, 3);
        $save3["rrd_minimum"] = form_input_validate($_POST["rrd_minimum"], "rrd_minimum", "^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U\$", isset($_POST["t_rrd_minimum"]) ? true : false, 3);
        $save3["t_rrd_heartbeat"] = form_input_validate(isset($_POST["t_rrd_heartbeat"]) ? $_POST["t_rrd_heartbeat"] : "", "t_rrd_heartbeat", "", true, 3);
        $save3["rrd_heartbeat"] = form_input_validate($_POST["rrd_heartbeat"], "rrd_heartbeat", "^[0-9]+\$", isset($_POST["t_rrd_heartbeat"]) ? true : false, 3);
        $save3["t_data_source_type_id"] = form_input_validate(isset($_POST["t_data_source_type_id"]) ? $_POST["t_data_source_type_id"] : "", "t_data_source_type_id", "", true, 3);
        $save3["data_source_type_id"] = form_input_validate($_POST["data_source_type_id"], "data_source_type_id", "^[0-9]+\$", true, 3);
        $save3["t_data_source_name"] = form_input_validate(isset($_POST["t_data_source_name"]) ? $_POST["t_data_source_name"] : "", "t_data_source_name", "", true, 3);
        $save3["data_source_name"] = form_input_validate($_POST["data_source_name"], "data_source_name", "^[a-zA-Z0-9_]{1,19}\$", isset($_POST["t_data_source_name"]) ? true : false, 3);
        $save3["t_data_input_field_id"] = form_input_validate(isset($_POST["t_data_input_field_id"]) ? $_POST["t_data_input_field_id"] : "", "t_data_input_field_id", "", true, 3);
        $save3["data_input_field_id"] = form_input_validate(isset($_POST["data_input_field_id"]) ? $_POST["data_input_field_id"] : "0", "data_input_field_id", "^[0-9]+\$", true, 3);
        /* ok, first pull out all 'input' values so we know how much to save */
        $input_fields = db_fetch_assoc("select\n\t\t\tid,\n\t\t\tinput_output,\n\t\t\tregexp_match,\n\t\t\tallow_nulls,\n\t\t\ttype_code,\n\t\t\tdata_name\n\t\t\tfrom data_input_fields\n\t\t\twhere data_input_id=" . $_POST["data_input_id"] . "\n\t\t\tand input_output='in'");
        /* pass 1 for validation */
        if (sizeof($input_fields) > 0) {
            foreach ($input_fields as $input_field) {
                $form_value = "value_" . $input_field["data_name"];
                if (isset($_POST[$form_value]) && $input_field["type_code"] == "") {
                    if (isset($_POST["t_" . $form_value]) && $_POST["t_" . $form_value] == "on") {
                        $not_required = true;
                    } else {
                        if ($input_field["allow_nulls"] == "on") {
                            $not_required = true;
                        } else {
                            $not_required = false;
                        }
                    }
                    form_input_validate($_POST[$form_value], "value_" . $input_field["data_name"], $input_field["regexp_match"], $not_required, 3);
                }
            }
        }
        if (!is_error_message()) {
            $data_template_id = sql_save($save1, "data_template");
            if ($data_template_id) {
                raise_message(1);
            } else {
                raise_message(2);
            }
        }
        if (!is_error_message()) {
            $save2["data_template_id"] = $data_template_id;
            $data_template_data_id = sql_save($save2, "data_template_data");
            if ($data_template_data_id) {
                raise_message(1);
            } else {
                raise_message(2);
            }
        }
        /* update actual host template information for live hosts */
        if (!is_error_message() && $save2["id"] > 0) {
            db_execute("update data_template_data set data_input_id = " . $_POST["data_input_id"] . " where data_template_id = " . $_POST["data_template_id"] . ";");
        }
        if (!is_error_message()) {
            $save3["data_template_id"] = $data_template_id;
            $data_template_rrd_id = sql_save($save3, "data_template_rrd");
            if ($data_template_rrd_id) {
                raise_message(1);
            } else {
                raise_message(2);
            }
        }
        if (!is_error_message()) {
            /* save entries in 'selected rras' field */
            db_execute("delete from data_template_data_rra where data_template_data_id={$data_template_data_id}");
            if (isset($_POST["rra_id"])) {
                for ($i = 0; $i < count($_POST["rra_id"]); $i++) {
                    /* ================= input validation ================= */
                    input_validate_input_number($_POST["rra_id"][$i]);
                    /* ==================================================== */
                    db_execute("insert into data_template_data_rra (rra_id,data_template_data_id)\n\t\t\t\t\t\tvalues (" . $_POST["rra_id"][$i] . ",{$data_template_data_id})");
                }
            }
            if (!empty($_POST["data_template_id"])) {
                /* push out all data source settings to child data source using this template */
                push_out_data_source($data_template_data_id);
                push_out_data_source_item($data_template_rrd_id);
                db_execute("delete from data_input_data where data_template_data_id={$data_template_data_id}");
                reset($input_fields);
                if (sizeof($input_fields) > 0) {
                    foreach ($input_fields as $input_field) {
                        $form_value = "value_" . $input_field["data_name"];
                        if (isset($_POST[$form_value])) {
                            /* save the data into the 'host_template_data' table */
                            if (isset($_POST["t_value_" . $input_field["data_name"]])) {
                                $template_this_item = "on";
                            } else {
                                $template_this_item = "";
                            }
                            if (!empty($form_value) || !empty($_POST["t_value_" . $input_field["data_name"]])) {
                                db_execute("insert into data_input_data (data_input_field_id,data_template_data_id,t_value,value)\n\t\t\t\t\t\t\t\tvalues (" . $input_field["id"] . ",{$data_template_data_id}," . $cnn_id->qstr($template_this_item) . "," . $cnn_id->qstr(trim($_POST[$form_value])) . ")");
                            }
                        }
                    }
                }
                /* push out all "custom data" for this data source template */
                push_out_data_source_custom_data($data_template_id);
                push_out_host(0, 0, $data_template_id);
            }
        }
        header("Location: data_templates.php?action=template_edit&id=" . (empty($data_template_id) ? $_POST["data_template_id"] : $data_template_id) . (empty($_POST["current_rrd"]) ? "" : "&view_rrd=" . ($_POST["current_rrd"] ? $_POST["current_rrd"] : $data_template_rrd_id)));
    }
}
Пример #2
0
function form_save() {
	if (isset($_POST["save_component_template"])) {
		/* save: data_template */
		$save1["id"] = $_POST["data_template_id"];
		$save1["hash"] = get_hash_data_template($_POST["data_template_id"]);
		$save1["name"] = form_input_validate($_POST["template_name"], "template_name", "", false, 3);

		/* save: data_template_data */
		$save2["id"] = $_POST["data_template_data_id"];
		$save2["local_data_template_data_id"] = 0;
		$save2["local_data_id"] = 0;

		$save2["data_input_id"] = form_input_validate($_POST["data_input_id"], "data_input_id", "", true, 3);
		$save2["t_name"] = form_input_validate((isset($_POST["t_name"]) ? $_POST["t_name"] : ""), "t_name", "", true, 3);
		$save2["name"] = form_input_validate($_POST["name"], "name", "", false, 3);
		$save2["t_active"] = form_input_validate((isset($_POST["t_active"]) ? $_POST["t_active"] : ""), "t_active", "", true, 3);
		$save2["active"] = form_input_validate((isset($_POST["active"]) ? $_POST["active"] : ""), "active", "", true, 3);
		$save2["t_rrd_step"] = form_input_validate((isset($_POST["t_rrd_step"]) ? $_POST["t_rrd_step"] : ""), "t_rrd_step", "", true, 3);
		$save2["rrd_step"] = form_input_validate($_POST["rrd_step"], "rrd_step", "^[0-9]+$", false, 3);
		$save2["t_rra_id"] = form_input_validate((isset($_POST["t_rra_id"]) ? $_POST["t_rra_id"] : ""), "t_rra_id", "", true, 3);

		/* save: data_template_rrd */
		$save3["id"] = $_POST["data_template_rrd_id"];
		$save3["hash"] = get_hash_data_template($_POST["data_template_rrd_id"], "data_template_item");
		$save3["local_data_template_rrd_id"] = 0;
		$save3["local_data_id"] = 0;

		$save3["t_rrd_maximum"] = form_input_validate((isset($_POST["t_rrd_maximum"]) ? $_POST["t_rrd_maximum"] : ""), "t_rrd_maximum", "", true, 3);
		$save3["rrd_maximum"] = form_input_validate($_POST["rrd_maximum"], "rrd_maximum", "^-?[0-9]+$", false, 3);
		$save3["t_rrd_minimum"] = form_input_validate((isset($_POST["t_rrd_minimum"]) ? $_POST["t_rrd_minimum"] : ""), "t_rrd_minimum", "", true, 3);
		$save3["rrd_minimum"] = form_input_validate($_POST["rrd_minimum"], "rrd_minimum", "^-?[0-9]+$", false, 3);
		$save3["t_rrd_heartbeat"] = form_input_validate((isset($_POST["t_rrd_heartbeat"]) ? $_POST["t_rrd_heartbeat"] : ""), "t_rrd_heartbeat", "", true, 3);
		$save3["rrd_heartbeat"] = form_input_validate($_POST["rrd_heartbeat"], "rrd_heartbeat", "^[0-9]+$", false, 3);
		$save3["t_data_source_type_id"] = form_input_validate((isset($_POST["t_data_source_type_id"]) ? $_POST["t_data_source_type_id"] : ""), "t_data_source_type_id", "", true, 3);
		$save3["data_source_type_id"] = form_input_validate($_POST["data_source_type_id"], "data_source_type_id", "", true, 3);
		$save3["t_data_source_name"] = form_input_validate((isset($_POST["t_data_source_name"]) ? $_POST["t_data_source_name"] : ""), "t_data_source_name", "", true, 3);
		$save3["data_source_name"] = form_input_validate($_POST["data_source_name"], "data_source_name", "^[a-zA-Z0-9_]{1,19}$", false, 3);
		$save3["t_data_input_field_id"] = form_input_validate((isset($_POST["t_data_input_field_id"]) ? $_POST["t_data_input_field_id"] : ""), "t_data_input_field_id", "", true, 3);
		$save3["data_input_field_id"] = form_input_validate((isset($_POST["data_input_field_id"]) ? $_POST["data_input_field_id"] : "0"), "data_input_field_id", "", true, 3);

		if (!is_error_message()) {
			$data_template_id = sql_save($save1, "data_template");

			if ($data_template_id) {
				raise_message(1);
			}else{
				raise_message(2);
			}
		}

		if (!is_error_message()) {
			$save2["data_template_id"] = $data_template_id;
			$data_template_data_id = sql_save($save2, "data_template_data");

			if ($data_template_data_id) {
				raise_message(1);
			}else{
				raise_message(2);
			}
		}

		/* update actual host template information for live hosts */
		if (!is_error_message()) {
			db_execute("update data_template_data set	data_input_id = '" . $_POST["data_input_id"] . "' where data_template_id = " . $_POST["data_template_id"] . ";");
		}

		if (!is_error_message()) {
			$save3["data_template_id"] = $data_template_id;
			$data_template_rrd_id = sql_save($save3, "data_template_rrd");

			if ($data_template_rrd_id) {
				raise_message(1);
			}else{
				raise_message(2);
			}
		}

		if (!is_error_message()) {
			/* save entries in 'selected rras' field */
			db_execute("delete from data_template_data_rra where data_template_data_id=$data_template_data_id");

			if (isset($_POST["rra_id"])) {
				for ($i=0; ($i < count($_POST["rra_id"])); $i++) {
					db_execute("insert into data_template_data_rra (rra_id,data_template_data_id)
						values (" . $_POST["rra_id"][$i] . ",$data_template_data_id)");
				}
			}

			if (!empty($_POST["data_template_id"])) {
				/* push out all data source settings to child data source using this template */
				push_out_data_source($data_template_data_id);
				push_out_data_source_item($data_template_rrd_id);

				/* ok, first pull out all 'input' values so we know how much to save */
				$input_fields = db_fetch_assoc("select
					id,
					input_output,
					data_name
					from data_input_fields
					where data_input_id=" . $_POST["data_input_id"] . "
					and input_output='in'");

				db_execute("delete from data_input_data where data_template_data_id=$data_template_data_id");

				if (sizeof($input_fields) > 0) {
				foreach ($input_fields as $input_field) {
					$form_value = "value_" . $input_field["data_name"];

					if (isset($_POST[$form_value])) {
						/* save the data into the 'host_template_data' table */
						if (isset($_POST{"t_value_" . $input_field["data_name"]})) {
							$template_this_item = "on";
						}else{
							$template_this_item = "";
						}

						if ((!empty($form_value)) || (!empty($_POST{"t_value_" . $input_field["data_name"]}))) {
							db_execute("insert into data_input_data (data_input_field_id,data_template_data_id,t_value,value)
								values (" . $input_field["id"] . ",$data_template_data_id,'$template_this_item','" . $_POST[$form_value] . "')");
						}
					}
				}
				}

				/* push out all "custom data" for this data source template */
				push_out_data_source_custom_data($data_template_id);
				push_out_host(0, 0, $data_template_id);
			}
		}

		if ((is_error_message()) || (empty($_POST["data_template_id"]))) {
			header("Location: data_templates.php?action=template_edit&id=" . (empty($data_template_id) ? $_POST["data_template_id"] : $data_template_id) . (empty($_POST["current_rrd"]) ? "" : "&view_rrd=" . ($_POST["current_rrd"] ? $_POST["current_rrd"] : $data_template_rrd_id)));
		}else{
			header("Location: data_templates.php");
		}
	}
}
Пример #3
0
function form_save()
{
    if (isset($_POST['save_component_template'])) {
        /* ================= input validation ================= */
        input_validate_input_number(get_request_var_post('data_input_id'));
        input_validate_input_number(get_request_var_post('data_template_id'));
        /* ==================================================== */
        /* save: data_template */
        $save1['id'] = $_POST['data_template_id'];
        $save1['hash'] = get_hash_data_template($_POST['data_template_id']);
        $save1['name'] = form_input_validate($_POST['template_name'], 'template_name', '', false, 3);
        /* save: data_template_data */
        $save2['id'] = $_POST['data_template_data_id'];
        $save2['local_data_template_data_id'] = 0;
        $save2['local_data_id'] = 0;
        $save2['data_input_id'] = form_input_validate($_POST['data_input_id'], 'data_input_id', '', true, 3);
        $save2['t_name'] = form_input_validate(isset($_POST['t_name']) ? $_POST['t_name'] : '', 't_name', '', true, 3);
        $save2['name'] = form_input_validate($_POST['name'], 'name', '', isset($_POST['t_name']) ? true : false, 3);
        $save2['t_active'] = form_input_validate(isset($_POST['t_active']) ? $_POST['t_active'] : '', 't_active', '', true, 3);
        $save2['active'] = form_input_validate(isset($_POST['active']) ? $_POST['active'] : '', 'active', '', true, 3);
        $save2['t_rrd_step'] = form_input_validate(isset($_POST['t_rrd_step']) ? $_POST['t_rrd_step'] : '', 't_rrd_step', '', true, 3);
        $save2['rrd_step'] = form_input_validate($_POST['rrd_step'], 'rrd_step', '^[0-9]+$', isset($_POST['t_rrd_step']) ? true : false, 3);
        $save2['t_rra_id'] = form_input_validate(isset($_POST['t_rra_id']) ? $_POST['t_rra_id'] : '', 't_rra_id', '', true, 3);
        /* save: data_template_rrd */
        $save3['id'] = $_POST['data_template_rrd_id'];
        $save3['hash'] = get_hash_data_template($_POST['data_template_rrd_id'], 'data_template_item');
        $save3['local_data_template_rrd_id'] = 0;
        $save3['local_data_id'] = 0;
        $save3['t_rrd_maximum'] = form_input_validate(isset($_POST['t_rrd_maximum']) ? $_POST['t_rrd_maximum'] : '', 't_rrd_maximum', '', true, 3);
        $save3['rrd_maximum'] = form_input_validate($_POST['rrd_maximum'], 'rrd_maximum', '^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U$', isset($_POST['t_rrd_maximum']) ? true : false, 3);
        $save3['t_rrd_minimum'] = form_input_validate(isset($_POST['t_rrd_minimum']) ? $_POST['t_rrd_minimum'] : '', 't_rrd_minimum', '', true, 3);
        $save3['rrd_minimum'] = form_input_validate($_POST['rrd_minimum'], 'rrd_minimum', '^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U$', isset($_POST['t_rrd_minimum']) ? true : false, 3);
        $save3['t_rrd_heartbeat'] = form_input_validate(isset($_POST['t_rrd_heartbeat']) ? $_POST['t_rrd_heartbeat'] : '', 't_rrd_heartbeat', '', true, 3);
        $save3['rrd_heartbeat'] = form_input_validate($_POST['rrd_heartbeat'], 'rrd_heartbeat', '^[0-9]+$', isset($_POST['t_rrd_heartbeat']) ? true : false, 3);
        $save3['t_data_source_type_id'] = form_input_validate(isset($_POST['t_data_source_type_id']) ? $_POST['t_data_source_type_id'] : '', 't_data_source_type_id', '', true, 3);
        $save3['data_source_type_id'] = form_input_validate($_POST['data_source_type_id'], 'data_source_type_id', '', true, 3);
        $save3['t_data_source_name'] = form_input_validate(isset($_POST['t_data_source_name']) ? $_POST['t_data_source_name'] : '', 't_data_source_name', '', true, 3);
        $save3['data_source_name'] = form_input_validate($_POST['data_source_name'], 'data_source_name', '^[a-zA-Z0-9_]{1,19}$', isset($_POST['t_data_source_name']) ? true : false, 3);
        $save3['t_data_input_field_id'] = form_input_validate(isset($_POST['t_data_input_field_id']) ? $_POST['t_data_input_field_id'] : '', 't_data_input_field_id', '', true, 3);
        $save3['data_input_field_id'] = form_input_validate(isset($_POST['data_input_field_id']) ? $_POST['data_input_field_id'] : '0', 'data_input_field_id', '', true, 3);
        /* ok, first pull out all 'input' values so we know how much to save */
        $input_fields = db_fetch_assoc_prepared("SELECT\n\t\t\tid,\n\t\t\tinput_output,\n\t\t\tregexp_match,\n\t\t\tallow_nulls,\n\t\t\ttype_code,\n\t\t\tdata_name\n\t\t\tFROM data_input_fields\n\t\t\tWHERE data_input_id = ?\n\t\t\tAND input_output = 'in'", array($_POST['data_input_id']));
        /* pass 1 for validation */
        if (sizeof($input_fields) > 0) {
            foreach ($input_fields as $input_field) {
                $form_value = 'value_' . $input_field['data_name'];
                if (isset($_POST[$form_value]) && $input_field['type_code'] == '') {
                    if (isset($_POST['t_' . $form_value]) && $_POST['t_' . $form_value] == 'on') {
                        $not_required = true;
                    } else {
                        if ($input_field['allow_nulls'] == 'on') {
                            $not_required = true;
                        } else {
                            $not_required = false;
                        }
                    }
                    form_input_validate($_POST[$form_value], 'value_' . $input_field['data_name'], $input_field['regexp_match'], $not_required, 3);
                }
            }
        }
        if (!is_error_message()) {
            $data_template_id = sql_save($save1, 'data_template');
            if ($data_template_id) {
                raise_message(1);
            } else {
                raise_message(2);
            }
        }
        if (!is_error_message()) {
            $save2['data_template_id'] = $data_template_id;
            $data_template_data_id = sql_save($save2, 'data_template_data');
            if ($data_template_data_id) {
                raise_message(1);
            } else {
                raise_message(2);
            }
        }
        /* update actual host template information for live hosts */
        if (!is_error_message() && $save2['id'] > 0) {
            db_execute_prepared('UPDATE data_template_data set data_input_id = ? WHERE data_template_id = ?', array($_POST['data_input_id'], $_POST['data_template_id']));
        }
        if (!is_error_message()) {
            $save3['data_template_id'] = $data_template_id;
            $data_template_rrd_id = sql_save($save3, 'data_template_rrd');
            if ($data_template_rrd_id) {
                raise_message(1);
            } else {
                raise_message(2);
            }
        }
        if (!is_error_message()) {
            /* save entries in 'selected rras' field */
            db_execute_prepared('DELETE FROM data_template_data_rra WHERE data_template_data_id = ?', array($data_template_data_id));
            if (isset($_POST['rra_id'])) {
                for ($i = 0; $i < count($_POST['rra_id']); $i++) {
                    /* ================= input validation ================= */
                    input_validate_input_number($_POST['rra_id'][$i]);
                    /* ==================================================== */
                    db_execute_prepared('INSERT INTO data_template_data_rra (rra_id, data_template_data_id)
						VALUES (?, ?)', array($_POST['rra_id'][$i], $data_template_data_id));
                }
            }
            if (!empty($_POST['data_template_id'])) {
                /* push out all data source settings to child data source using this template */
                push_out_data_source($data_template_data_id);
                push_out_data_source_item($data_template_rrd_id);
                db_execute_prepared('DELETE FROM data_input_data WHERE data_template_data_id = ?', array($data_template_data_id));
                reset($input_fields);
                if (sizeof($input_fields) > 0) {
                    foreach ($input_fields as $input_field) {
                        $form_value = 'value_' . $input_field['data_name'];
                        if (isset($_POST[$form_value])) {
                            /* save the data into the 'host_template_data' table */
                            if (isset($_POST['t_value_' . $input_field['data_name']])) {
                                $template_this_item = 'on';
                            } else {
                                $template_this_item = '';
                            }
                            if (!empty($form_value) || !empty($_POST['t_value_' . $input_field['data_name']])) {
                                db_execute_prepared('INSERT INTO data_input_data (data_input_field_id, data_template_data_id, t_value, value)
								values (?, ?, ?, ?)', array($input_field['id'], $data_template_data_id, $template_this_item, trim($_POST[$form_value])));
                            }
                        }
                    }
                }
                /* push out all "custom data" for this data source template */
                push_out_data_source_custom_data($data_template_id);
                push_out_host(0, 0, $data_template_id);
            }
        }
        header('Location: data_templates.php?action=template_edit&id=' . (empty($data_template_id) ? $_POST['data_template_id'] : $data_template_id) . (empty($_POST['current_rrd']) ? '' : '&view_rrd=' . ($_POST['current_rrd'] ? $_POST['current_rrd'] : $data_template_rrd_id)));
    }
}
Пример #4
0
/**
 * data_source_template_save	- save to data_template and data_template_data
 */
function data_source_template_save() {
	require(CACTI_BASE_PATH . "/include/data_source/data_source_arrays.php");

	if (isset($_POST["save_component_template"])) {
		/* ================= input validation ================= */
		input_validate_input_number(get_request_var_post("data_input_id"));
		input_validate_input_number(get_request_var_post("data_template_id"));
		/* ==================================================== */

		/* save: data_template */
		$save1["id"] = $_POST["data_template_id"];
		$save1["hash"] = get_hash_data_template($_POST["data_template_id"]);
		$save1["name"] = form_input_validate($_POST["template_name"], "template_name", "", false, 3);
		$save1["description"] = form_input_validate($_POST["description"], "description", "", true, 3);

		/* save: data_template_data */
		$save2["id"] = $_POST["data_template_data_id"];
		$save2["local_data_template_data_id"] = 0;
		$save2["local_data_id"] = 0;

		$save2["data_input_id"] = form_input_validate($_POST["data_input_id"], "data_input_id", "", true, 3);
		$save2["t_name"] = form_input_validate((isset($_POST["t_name"]) ? $_POST["t_name"] : ""), "t_name", "", true, 3);
		$save2["name"] = form_input_validate($_POST["name"], "name", "", (isset($_POST["t_name"]) ? true : false), 3);
		$save2["t_active"] = form_input_validate((isset($_POST["t_active"]) ? $_POST["t_active"] : ""), "t_active", "", true, 3);
		$save2["active"] = form_input_validate((isset($_POST["active"]) ? $_POST["active"] : ""), "active", "", true, 3);
		$save2["t_rrd_step"] = form_input_validate((isset($_POST["t_rrd_step"]) ? $_POST["t_rrd_step"] : ""), "t_rrd_step", "", true, 3);
		$save2["rrd_step"] = form_input_validate($_POST["rrd_step"], "rrd_step", "^[0-9]+$", (isset($_POST["t_rrd_step"]) ? true : false), 3);
		$save2["t_rra_id"] = form_input_validate((isset($_POST["t_rra_id"]) ? $_POST["t_rra_id"] : ""), "t_rra_id", "", true, 3);

		if (!is_error_message()) {
			$data_template_id = sql_save($save1, "data_template");

			if ($data_template_id) {
				raise_message(1);
			}else{
				raise_message(2);
			}
		}

		if (!is_error_message()) {
			$save2["data_template_id"] = $data_template_id;
			$data_template_data_id = sql_save($save2, "data_template_data");

			if ($data_template_data_id) {
				raise_message(1);
			}else{
				raise_message(2);
			}
		}

		/* update actual device template information for live devices in table data_template_data */
		if ((!is_error_message()) && ($save2["id"] > 0)) {
			db_execute("UPDATE data_template_data SET data_input_id = '" . $_POST["data_input_id"] . "' WHERE data_template_id = " . $_POST["data_template_id"] . ";");
		}

		if (!is_error_message()) {
			/* ok, first pull out all 'input' values so we know how much to save */
			$input_fields = db_fetch_assoc("SELECT " .
				"id, " .
				"input_output, " .
				"regexp_match, " .
				"allow_nulls, " .
				"type_code, " .
				"data_name " .
				"FROM data_input_fields " .
				"WHERE data_input_id=" . $_POST["data_input_id"] . " " .
				"AND input_output='in'");

			/* pass#1 for validation */
			if (sizeof($input_fields) > 0) {
				foreach ($input_fields as $input_field) {
					$form_value = "value_" . $input_field["data_name"];

					if ((isset($_POST[$form_value])) && ($input_field["type_code"] == "")) {
						if ((isset($_POST["t_" . $form_value])) &&
							(get_request_var_post("t_" . $form_value) == CHECKED)) {
							$not_required = true;
						}else if ($input_field["allow_nulls"] == CHECKED) {
							$not_required = true;
						}else{
							$not_required = false;
						}

						form_input_validate(get_request_var_post($form_value), "value_" . $input_field["data_name"], $input_field["regexp_match"], $not_required, 3);
					}
				}
			}

			/* save entries in 'selected rras' field */
			db_execute("DELETE FROM data_template_data_rra WHERE data_template_data_id=$data_template_data_id");

			if (isset($_POST["rra_id"])) {
				for ($i=0; ($i < count($_POST["rra_id"])); $i++) {
					/* ================= input validation ================= */
					input_validate_input_number($_POST["rra_id"][$i]);
					/* ==================================================== */

					db_execute("INSERT INTO data_template_data_rra (rra_id,data_template_data_id)
						VALUES (" . $_POST["rra_id"][$i] . ",$data_template_data_id)");
				}
			}

			if (!empty($_POST["data_template_id"])) {
				/* push out all data source settings to child data source using this template */
				push_out_data_source($data_template_data_id);

				db_execute("DELETE FROM data_input_data WHERE data_template_data_id=$data_template_data_id");

				reset($input_fields);
				if (sizeof($input_fields) > 0) {
				foreach ($input_fields as $input_field) {
					$form_value = "value_" . $input_field["data_name"];

					if (isset($_POST[$form_value])) {
						/* save the data into the 'device_template_data' table */
						if (isset($_POST{"t_value_" . $input_field["data_name"]})) {
							$template_this_item = CHECKED;
						}else{
							$template_this_item = "";
						}

						if ((!empty($form_value)) || (!empty($_POST{"t_value_" . $input_field["data_name"]}))) {
							db_execute("INSERT INTO data_input_data (data_input_field_id,data_template_data_id,t_value,value)
								VALUES (" . $input_field["id"] . ",$data_template_data_id,'$template_this_item','" . trim(get_request_var_post($form_value)) . "')");
						}
					}
				}
				}

				/* push out all "custom data" for this data source template */
				push_out_data_source_custom_data($data_template_id);
				push_out_device(0, 0, $data_template_id);
			}
		}

	}

	if ((is_error_message()) || (empty($_POST["data_template_id"]))) {
		header("Location: data_templates.php?action=template_edit&id=" . (empty($data_template_id) ? $_POST["data_template_id"] : $data_template_id) . (empty($_POST["current_rrd"]) ? "" : "&view_rrd=" . ($_POST["current_rrd"] ? $_POST["current_rrd"] : $data_template_rrd_id)));
	}else{
		header("Location: data_templates.php");
	}

}