function &xml_to_data_input_method($hash, &$xml_array, &$hash_cache) { global $fields_data_input_edit, $fields_data_input_field_edit, $fields_data_input_field_edit_1; /* aggregate field arrays */ $fields_data_input_field_edit += $fields_data_input_field_edit_1; /* import into: data_input */ $_data_input_id = db_fetch_cell("select id from data_input where hash='{$hash}'"); $save["id"] = empty($_data_input_id) ? "0" : $_data_input_id; $save["hash"] = $hash; reset($fields_data_input_edit); while (list($field_name, $field_array) = each($fields_data_input_edit)) { /* make sure this field exists in the xml array first */ if (isset($xml_array[$field_name])) { /* fix issue with data input method importing and white spaces */ if ($field_name == "input_string") { $xml_array[$field_name] = str_replace("><", "> <", $xml_array[$field_name]); } $save[$field_name] = addslashes(xml_character_decode($xml_array[$field_name])); } } $data_input_id = sql_save($save, "data_input"); $hash_cache["data_input_method"][$hash] = $data_input_id; /* import into: data_input_fields */ if (is_array($xml_array["fields"])) { while (list($item_hash, $item_array) = each($xml_array["fields"])) { /* parse information from the hash */ $parsed_hash = parse_xml_hash($item_hash); /* invalid/wrong hash */ if ($parsed_hash == false) { return false; } unset($save); $_data_input_field_id = db_fetch_cell("select id from data_input_fields where hash='" . $parsed_hash["hash"] . "' and data_input_id={$data_input_id}"); $save["id"] = empty($_data_input_field_id) ? "0" : $_data_input_field_id; $save["hash"] = $parsed_hash["hash"]; $save["data_input_id"] = $data_input_id; reset($fields_data_input_field_edit); while (list($field_name, $field_array) = each($fields_data_input_field_edit)) { /* make sure this field exists in the xml array first */ if (isset($item_array[$field_name])) { $save[$field_name] = addslashes(xml_character_decode($item_array[$field_name])); } } $data_input_field_id = sql_save($save, "data_input_fields"); $hash_cache["data_input_field"][$parsed_hash["hash"]] = $data_input_field_id; } } /* update field use counter cache if possible */ if (isset($xml_array["input_string"]) && !empty($data_input_id)) { generate_data_input_field_sequences($xml_array["input_string"], $data_input_id); } /* status information that will be presented to the user */ $_SESSION["import_debug_info"]["type"] = empty($_data_input_id) ? "new" : "update"; $_SESSION["import_debug_info"]["title"] = $xml_array["name"]; $_SESSION["import_debug_info"]["result"] = empty($data_input_id) ? "fail" : "success"; return $hash_cache; }
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); } } }