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; }
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; } }
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); } } }
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; }