Пример #1
0
function validate_data_query_fields(&$_fields_data_query, $data_query_field_name_format) {
	require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_info.php");

	if (sizeof($_fields_data_query) == 0) {
		return array();
	}

	/* array containing errored fields */
	$error_fields = array();

	/* get a complete field list */
	$fields_data_query = api_data_query_form_list();

	/* base fields */
	while (list($_field_name, $_field_array) = each($fields_data_query)) {
		if ((isset($_fields_data_query[$_field_name])) && (isset($_field_array["validate_regexp"])) && (isset($_field_array["validate_empty"]))) {
			$form_field_name = str_replace("|field|", $_field_name, $data_query_field_name_format);

			if (!form_input_validate($_fields_data_query[$_field_name], $form_field_name, $_field_array["validate_regexp"], $_field_array["validate_empty"])) {
				$error_fields[] = $form_field_name;
			}
		}
	}

	return $error_fields;
}
Пример #2
0
function api_data_query_save($data_query_id, &$_fields_data_query) {
	require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_info.php");

	/* sanity check for $data_query_id */
	if (!is_numeric($data_query_id)) {
		return false;
	}

	/* field: id */
	$_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $data_query_id);

	/* convert the input array into something that is compatible with db_replace() */
	$_fields += sql_get_database_field_array($_fields_data_query, api_data_query_form_list());

	/* check for an empty field list */
	if (sizeof($_fields) == 1) {
		return true;
	}

	if (db_replace("data_query", $_fields, array("id"))) {
		if (empty($data_query_id)) {
			return db_fetch_insert_id();
		}else{
			return $data_query_id;
		}
	}else{
		return false;
	}
}
Пример #3
0
function package_data_query_import(&$xml_array, $package_id, $object_hash) {
	require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_info.php");
	require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_update.php");

	/*
	 * XML Tag: <data_query>
	 */

	/* obtain a list of all data query specific fields */
	$data_query_fields = api_data_query_form_list();

	if (isset($xml_array["data_query"])) {
		$save_fields = array();

		/* tag the data query as a package member */
		$save_fields["package_id"] = $package_id;

		/* get the base fields from the xml */
		foreach (array_keys($data_query_fields) as $field_name) {
			if (isset($xml_array["data_query"][$field_name])) {
				$save_fields[$field_name] = xml_character_decode($xml_array["data_query"][$field_name]);
			}
		}

		/* save the data query to the database and register its new id */
		$data_query_id = package_hash_update($object_hash, api_data_query_save(0, $save_fields));

		if ($data_query_id === false) {
			return;
		}
	}

	/*
	 * XML Tag: <fields>
	 */

	/* obtain a list of all data query field specific fields */
	$data_query_field_fields = api_data_query_field_form_list();

	if ((isset($xml_array["fields"])) && (is_array($xml_array["fields"]))) {
		/* loop through each available data query field */
		foreach ($xml_array["fields"] as $data_query_field_hash => $data_query_field) {
			$save_fields = array();

			/* make sure that each field is associated with the new data query */
			$save_fields["data_query_id"] = $data_query_id;

			/* get the base fields from the xml */
			foreach (array_keys($data_query_field_fields) as $field_name) {
				if (isset($data_query_field[$field_name])) {
					$save_fields[$field_name] = xml_character_decode($data_query_field[$field_name]);
				}
			}

			/* save the data query field to the database and register its new id */
			api_data_query_field_save(0, $save_fields);
		}
	}
}
Пример #4
0
function &package_data_query_export($data_query_id, $indent = 3) {
	require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_info.php");

	$xml = "";

	/*
	 * XML Tag: <data_query>
	 */

	/* obtain a list of all data query specific fields */
	$data_query_fields = api_data_query_form_list();
	/* obtain a copy of this specfic data query */
	$data_query = api_data_query_get($data_query_id);

	$_xml = "";
	foreach (array_keys($data_query_fields) as $field_name) {
		/* create an XML key for each data query field */
		$_xml .= package_xml_tag_get($field_name, xml_character_encode($data_query[$field_name]), $indent + 2);
	}

	/* append the result onto the final XML string */
	$xml .= package_xml_tag_get("data_query", $_xml, $indent + 1, true);

	/*
	 * XML Tag: <fields>
	 */

	/* obtain a list of all data query field specific fields */
	$data_query_field_fields = api_data_query_field_form_list();
	/* obtain a list of all data query fields associated with this data query */
	$data_query_fields = api_data_query_field_list($data_query_id);

	$_xml = "";
	if (sizeof($data_query_fields) > 0) {
		$i = 0;
		foreach ($data_query_fields as $data_query_field) {
			$__xml = "";
			foreach (array_keys($data_query_field_fields) as $field_name) {
				/* create an XML key for each data query item field */
				$__xml .= package_xml_tag_get($field_name, xml_character_encode($data_query_field[$field_name]), $indent + 3);
			}

			/* append the result onto a temporary XML string */
			$_xml .= package_xml_tag_get("item_" . str_pad($i, 5, "0", STR_PAD_LEFT), $__xml, $indent + 2, true);

			$i++;
		}
	}

	/* append the result onto the final XML string */
	$xml .= package_xml_tag_get("fields", $_xml, $indent + 1, true);

	/* wrap the whole XML string into a 'data_query' tag and return it */
	$xml = package_xml_tag_get(package_hash_get($data_query_id, "data_query"), $xml, $indent, true);

	return $xml;
}