function test_xml_import_to_update_fields_and_forms() { $args = self::_get_xml_update_args(); $path = self::_generate_xml_for_all_fields_form($args); $message = FrmXMLHelper::import_xml($path); self::_check_xml_updated_forms_parent_id($args); self::_check_xml_updated_fields($args); self::_check_xml_updated_repeating_fields($args); self::_check_xml_updated_repeating_section($args); self::_check_the_imported_and_updated_numbers($message); // Delete the temp.XML file unlink($path); }
public static function import_xml() { $errors = array(); $message = ''; $permission_error = FrmAppHelper::permission_nonce_error('frm_edit_forms', 'import-xml', 'import-xml-nonce'); if ($permission_error !== false) { $errors[] = $permission_error; self::form($errors); return; } if (!isset($_FILES) || !isset($_FILES['frm_import_file']) || empty($_FILES['frm_import_file']['name']) || (int) $_FILES['frm_import_file']['size'] < 1) { $errors[] = __('Oops, you didn\'t select a file.', 'formidable'); self::form($errors); return; } $file = $_FILES['frm_import_file']['tmp_name']; if (!is_uploaded_file($file)) { unset($file); $errors[] = __('The file does not exist, please try again.', 'formidable'); self::form($errors); return; } //add_filter('upload_mimes', 'FrmXMLController::allow_mime'); $export_format = apply_filters('frm_export_formats', array('xml' => array('name' => 'XML', 'support' => 'forms', 'count' => 'multiple'))); $file_type = strtolower(pathinfo($_FILES['frm_import_file']['name'], PATHINFO_EXTENSION)); if ($file_type != 'xml' && isset($export_format[$file_type])) { // allow other file types to be imported do_action('frm_before_import_' . $file_type); return; } unset($file_type); //$media_id = FrmProAppHelper::upload_file('frm_import_file'); if (!function_exists('libxml_disable_entity_loader')) { $errors[] = __('XML import is not enabled on your server.', 'formidable'); self::form($errors); return; } $set_err = libxml_use_internal_errors(true); $loader = libxml_disable_entity_loader(true); $result = FrmXMLHelper::import_xml($file); FrmXMLHelper::parse_message($result, $message, $errors); unset($file); libxml_use_internal_errors($set_err); libxml_disable_entity_loader($loader); self::form($errors, $message); }
public static function import_xml() { $errors = array(); $message = ''; if (!current_user_can('frm_edit_forms') || !isset($_POST['import-xml']) || !wp_verify_nonce($_POST['import-xml'], 'import-xml-nonce')) { global $frm_settings; $errors[] = $frm_settings->admin_permission; self::form($errors); return; } if (!isset($_FILES) || !isset($_FILES['frm_import_file']) || empty($_FILES['frm_import_file']['name']) || (int) $_FILES['frm_import_file']['size'] < 1) { $errors[] = __('Oops, you didn\'t select a file.', 'formidable'); self::form($errors); return; } $file = $_FILES['frm_import_file']['tmp_name']; if (!is_uploaded_file($file)) { unset($file); $errors[] = __('The file does not exist, please try again.', 'formidable'); self::form($errors); return; } //add_filter('upload_mimes', 'FrmXMLController::allow_mime'); $export_format = apply_filters('frm_export_formats', array('xml' => array('name' => 'XML', 'support' => 'forms', 'count' => 'multiple'))); $file_type = strtolower(pathinfo($_FILES['frm_import_file']['name'], PATHINFO_EXTENSION)); if ($file_type != 'xml' && isset($export_format[$file_type])) { // allow other file types to be imported do_action('frm_before_import_' . $file_type); return; } unset($file_type); //$media_id = FrmProAppHelper::upload_file('frm_import_file'); //if(is_numeric($media_id)){ if (!function_exists('libxml_disable_entity_loader')) { $errors[] = __('XML import is not enabled on your server.', 'formidable'); self::form($errors); return; } include_once FrmAppHelper::plugin_path() . '/classes/helpers/FrmXMLHelper.php'; $set_err = libxml_use_internal_errors(true); $loader = libxml_disable_entity_loader(true); $result = FrmXMLHelper::import_xml($file); if (is_wp_error($result)) { $errors[] = $result->get_error_message(); } else { if ($result) { if (is_array($result)) { $t_strings = array('imported' => __('Imported', 'formidable'), 'updated' => __('Updated', 'formidable')); $message = '<ul>'; foreach ($result as $type => $results) { if (!isset($t_strings[$type])) { // only print imported and updated continue; } $s_message = array(); foreach ($results as $k => $m) { if ($m) { $strings = array('forms' => sprintf(_n('%1$s Form', '%1$s Forms', $m, 'formidable'), $m), 'fields' => sprintf(_n('%1$s Field', '%1$s Fields', $m, 'formidable'), $m), 'items' => sprintf(_n('%1$s Entry', '%1$s Entries', $m, 'formidable'), $m), 'views' => sprintf(_n('%1$s View', '%1$s Views', $m, 'formidable'), $m), 'posts' => sprintf(_n('%1$s Post', '%1$s Posts', $m, 'formidable'), $m), 'terms' => sprintf(_n('%1$s Term', '%1$s Terms', $m, 'formidable'), $m)); $s_message[] = isset($strings[$k]) ? $strings[$k] : $t_strings[$type] . ' ' . $m . ' ' . ucfirst($k); } unset($k); unset($m); } if (!empty($s_message)) { $message .= '<li><strong>' . $t_strings[$type] . ':</strong> '; $message .= implode(', ', $s_message); $message .= '</li>'; } } if ($message == '<ul>') { $message = ''; $errors[] = __('Nothing was imported or updated', 'formidable'); } else { $message .= '</ul>'; } } else { $message = $result; } } } unset($file); libxml_use_internal_errors($set_err); libxml_disable_entity_loader($loader); //}else{ // foreach ($media_id->errors as $error) // echo $error[0]; //} self::form($errors, $message); }