public function parse()
 {
     $tmpname = wp_unique_filename($this->targetDir, str_replace("sql", "xml", basename($this->_filename)));
     $this->xml_path = $this->targetDir . '/' . wp_all_import_url_title($tmpname);
     $this->toXML();
     return $this->xml_path;
 }
Example #2
0
 /**
  * Class constructor containing dispatching logic
  * @param string $rootDir Plugin root dir
  * @param string $pluginFilePath Plugin main file
  */
 protected function __construct()
 {
     $this->load_plugin_textdomain();
     // regirster autoloading method
     if (function_exists('__autoload') and !in_array('__autoload', spl_autoload_functions())) {
         // make sure old way of autoloading classes is not broken
         spl_autoload_register('__autoload');
     }
     spl_autoload_register(array($this, '__autoload'));
     // register helpers
     if (is_dir(self::ROOT_DIR . '/helpers')) {
         foreach (PMXI_Helper::safe_glob(self::ROOT_DIR . '/helpers/*.php', PMXI_Helper::GLOB_RECURSE | PMXI_Helper::GLOB_PATH) as $filePath) {
             require_once $filePath;
         }
     }
     // init plugin options
     $option_name = get_class($this) . '_Options';
     $options_default = PMXI_Config::createFromFile(self::ROOT_DIR . '/config/options.php')->toArray();
     $this->options = array_intersect_key(get_option($option_name, array()), $options_default) + $options_default;
     $this->options = array_intersect_key($options_default, array_flip(array('info_api_url'))) + $this->options;
     // make sure hidden options apply upon plugin reactivation
     if ('' == $this->options['cron_job_key']) {
         $this->options['cron_job_key'] = wp_all_import_url_title(wp_all_import_rand_char(12));
     }
     update_option($option_name, $this->options);
     $this->options = get_option(get_class($this) . '_Options');
     register_activation_hook(self::FILE, array($this, '__activation'));
     // register action handlers
     if (is_dir(self::ROOT_DIR . '/actions')) {
         if (is_dir(self::ROOT_DIR . '/actions')) {
             foreach (PMXI_Helper::safe_glob(self::ROOT_DIR . '/actions/*.php', PMXI_Helper::GLOB_RECURSE | PMXI_Helper::GLOB_PATH) as $filePath) {
                 require_once $filePath;
                 $function = $actionName = basename($filePath, '.php');
                 if (preg_match('%^(.+?)[_-](\\d+)$%', $actionName, $m)) {
                     $actionName = $m[1];
                     $priority = intval($m[2]);
                 } else {
                     $priority = 10;
                 }
                 add_action($actionName, self::PREFIX . str_replace('-', '_', $function), $priority, 99);
                 // since we don't know at this point how many parameters each plugin expects, we make sure they will be provided with all of them (it's unlikely any developer will specify more than 99 parameters in a function)
             }
         }
     }
     // register filter handlers
     if (is_dir(self::ROOT_DIR . '/filters')) {
         foreach (PMXI_Helper::safe_glob(self::ROOT_DIR . '/filters/*.php', PMXI_Helper::GLOB_RECURSE | PMXI_Helper::GLOB_PATH) as $filePath) {
             require_once $filePath;
             $function = $actionName = basename($filePath, '.php');
             if (preg_match('%^(.+?)[_-](\\d+)$%', $actionName, $m)) {
                 $actionName = $m[1];
                 $priority = intval($m[2]);
             } else {
                 $priority = 10;
             }
             add_filter($actionName, self::PREFIX . str_replace('-', '_', $function), $priority, 99);
             // since we don't know at this point how many parameters each plugin expects, we make sure they will be provided with all of them (it's unlikely any developer will specify more than 99 parameters in a function)
         }
     }
     // register shortcodes handlers
     if (is_dir(self::ROOT_DIR . '/shortcodes')) {
         foreach (PMXI_Helper::safe_glob(self::ROOT_DIR . '/shortcodes/*.php', PMXI_Helper::GLOB_RECURSE | PMXI_Helper::GLOB_PATH) as $filePath) {
             $tag = strtolower(str_replace('/', '_', preg_replace('%^' . preg_quote(self::ROOT_DIR . '/shortcodes/', '%') . '|\\.php$%', '', $filePath)));
             add_shortcode($tag, array($this, 'shortcodeDispatcher'));
         }
     }
     // register admin page pre-dispatcher
     add_action('admin_init', array($this, '__adminInit'));
     add_action('admin_init', array($this, '_fix_options'));
 }
Example #3
0
 public function file()
 {
     $template = false;
     $wp_uploads = wp_upload_dir();
     $uploads = $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY . DIRECTORY_SEPARATOR;
     if (empty($this->file)) {
         $this->errors->add('form-validation', __('Please specify a file to import.', 'wp_all_import_plugin'));
     } elseif (preg_match('%\\W(zip)$%i', trim($this->file))) {
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         echo '<span style="display:none">';
         copy($uploads . $this->file, $this->uploadsPath . '/' . basename($this->file));
         echo '</span>';
         $zipfilePath = $this->uploadsPath . '/' . basename($this->file);
         if (!class_exists('PclZip')) {
             include_once PMXI_Plugin::ROOT_DIR . '/libraries/pclzip.lib.php';
         }
         $archive = new PclZip($zipfilePath);
         if (($v_result_list = $archive->extract(PCLZIP_OPT_PATH, $this->uploadsPath, PCLZIP_OPT_REPLACE_NEWER)) == 0) {
             $this->errors->add('form-validation', __('WP All Import couldn\'t find a file to import inside your ZIP.<br/><br/>Either the .ZIP file is broken, or doesn\'t contain a file with an extension of  XML, CSV, PSV, DAT, or TXT. <br/>Please attempt to unzip your .ZIP file on your computer to ensure it is a valid .ZIP file which can actually be unzipped, and that it contains a file which WP All Import can import.', 'wp_all_import_plugin'));
         } else {
             $filePath = '';
             if (!empty($v_result_list)) {
                 foreach ($v_result_list as $unzipped_file) {
                     if ($unzipped_file['status'] == 'ok' and preg_match('%\\W(xml|csv|txt|dat|psv|json|xls|xlsx)$%i', trim($unzipped_file['stored_filename'])) and strpos($unzipped_file['stored_filename'], 'readme.txt') === false) {
                         if (strpos(basename($unzipped_file['stored_filename']), 'WP All Import Template') === 0 || strpos(basename($unzipped_file['stored_filename']), 'templates_') === 0) {
                             $template = file_get_contents($unzipped_file['filename']);
                         } elseif ($filePath == '') {
                             $filePath = $unzipped_file['filename'];
                         }
                     }
                 }
             }
             if ($this->uploadsPath === false) {
                 $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
             }
             if (empty($filePath)) {
                 $zip = zip_open(trim($zipfilePath));
                 if (is_resource($zip)) {
                     while ($zip_entry = zip_read($zip)) {
                         $filePath = zip_entry_name($zip_entry);
                         $fp = fopen($this->uploadsPath . "/" . $filePath, "w");
                         if (zip_entry_open($zip, $zip_entry, "r")) {
                             $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
                             fwrite($fp, "{$buf}");
                             zip_entry_close($zip_entry);
                             fclose($fp);
                         }
                         break;
                     }
                     zip_close($zip);
                 } else {
                     $this->errors->add('form-validation', __('WP All Import couldn\'t find a file to import inside your ZIP.<br/><br/>Either the .ZIP file is broken, or doesn\'t contain a file with an extension of  XML, CSV, PSV, DAT, or TXT. <br/>Please attempt to unzip your .ZIP file on your computer to ensure it is a valid .ZIP file which can actually be unzipped, and that it contains a file which WP All Import can import.', 'wp_all_import_plugin'));
                 }
             }
             // Detect if file is very large
             $source = array('name' => basename($this->file), 'type' => 'file', 'path' => $uploads . $this->file);
             if (preg_match('%\\W(csv|txt|dat|psv)$%i', trim($filePath))) {
                 // If CSV file found in archieve
                 if ($this->uploadsPath === false) {
                     $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
                 }
                 include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportCsvParse.php';
                 $csv = new PMXI_CsvParser(array('filename' => $filePath, 'targetDir' => $this->uploadsPath));
                 // create chunks
                 //wp_all_import_remove_source($filePath, false);
                 $filePath = $csv->xml_path;
                 $this->is_csv = $csv->is_csv;
                 $this->root_element = 'node';
             } elseif (preg_match('%\\W(json)$%i', trim($filePath))) {
                 $json_str = file_get_contents($filePath);
                 $is_json = wp_all_import_is_json($json_str);
                 if (is_wp_error($is_json)) {
                     $this->errors->add('form-validation', $is_json->get_error_message(), 'wp_all_import_plugin');
                 } else {
                     $xml_data = wp_all_import_json_to_xml(json_decode($json_str, true));
                     if (empty($xml_data)) {
                         $this->errors->add('form-validation', __('Can not import this file. JSON to XML convertation failed.', 'wp_all_import_plugin'));
                     } else {
                         $jsontmpname = $this->uploadsPath . '/' . wp_all_import_url_title(wp_unique_filename($this->uploadsPath, str_replace("json", "xml", basename($filePath))));
                         file_put_contents($jsontmpname, $xml_data);
                         wp_all_import_remove_source($filePath);
                         $filePath = $jsontmpname;
                     }
                 }
             } elseif (preg_match('%\\W(sql)$%i', trim($filePath))) {
                 include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportSQLParse.php';
                 $localSQLPath = $filePath;
                 $sql = new PMXI_SQLParser($localSQLPath, $this->uploadsPath);
                 $filePath = $sql->parse();
                 wp_all_import_remove_source($localSQLPath, false);
             } elseif (preg_match('%\\W(xls|xlsx)$%i', trim($filePath))) {
                 include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportXLSParse.php';
                 $localXLSPath = $filePath;
                 $xls = new PMXI_XLSParser($localXLSPath, $this->uploadsPath);
                 $filePath = $xls->parse();
                 wp_all_import_remove_source($localXLSPath, false);
             }
         }
         if (file_exists($zipfilePath)) {
             wp_all_import_remove_source($zipfilePath, false);
         }
     } elseif (preg_match('%\\W(csv|txt|dat|psv)$%i', trim($this->file))) {
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         // copy file in temporary folder
         // hide warning message
         echo '<span style="display:none">';
         copy($uploads . $this->file, $this->uploadsPath . '/' . basename($this->file));
         echo '</span>';
         $filePath = $this->uploadsPath . '/' . basename($this->file);
         $source = array('name' => basename($this->file), 'type' => 'file', 'path' => $uploads . $this->file);
         // Detect if file is very large
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportCsvParse.php';
         $csv = new PMXI_CsvParser(array('filename' => $filePath, 'targetDir' => $this->uploadsPath));
         // create chunks
         //wp_all_import_remove_source($filePath, false);
         $filePath = $csv->xml_path;
         $this->is_csv = $csv->is_csv;
         $this->root_element = 'node';
     } elseif (preg_match('%\\W(json)$%i', trim($this->file))) {
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         // copy file in temporary folder
         // hide warning message
         echo '<span style="display:none">';
         copy($uploads . $this->file, $this->uploadsPath . '/' . basename($this->file));
         echo '</span>';
         $filePath = $this->uploadsPath . '/' . basename($this->file);
         $source = array('name' => basename($this->file), 'type' => 'file', 'path' => $uploads . $this->file);
         $json_str = file_get_contents($filePath);
         $is_json = wp_all_import_is_json($json_str);
         if (is_wp_error($is_json)) {
             $this->errors->add('form-validation', $is_json->get_error_message(), 'wp_all_import_plugin');
         } else {
             $xml_data = wp_all_import_json_to_xml(json_decode($json_str, true));
             if (empty($xml_data)) {
                 $this->errors->add('form-validation', __('Can not import this file. JSON to XML convertation failed.', 'wp_all_import_plugin'));
             } else {
                 $jsontmpname = $this->uploadsPath . '/' . wp_all_import_url_title(wp_unique_filename($this->uploadsPath, str_replace("json", "xml", basename($filePath))));
                 file_put_contents($jsontmpname, $xml_data);
                 wp_all_import_remove_source($filePath, false);
                 $filePath = $jsontmpname;
             }
         }
     } elseif (preg_match('%\\W(sql)$%i', trim($this->file))) {
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         // copy file in temporary folder
         // hide warning message
         echo '<span style="display:none">';
         copy($uploads . $this->file, $this->uploadsPath . '/' . basename($this->file));
         echo '</span>';
         $localSQLPath = $this->uploadsPath . '/' . basename($this->file);
         $source = array('name' => basename($this->file), 'type' => 'file', 'path' => $uploads . $this->file);
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportSQLParse.php';
         $sql = new PMXI_SQLParser($localSQLPath, $this->uploadsPath);
         $filePath = $sql->parse();
         wp_all_import_remove_source($localSQLPath, false);
     } elseif (preg_match('%\\W(xls|xlsx)$%i', trim($this->file))) {
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         // copy file in temporary folder
         // hide warning message
         echo '<span style="display:none">';
         copy($uploads . $this->file, $this->uploadsPath . '/' . basename($this->file));
         echo '</span>';
         $localXLSPath = $this->uploadsPath . '/' . basename($this->file);
         $source = array('name' => basename($this->file), 'type' => 'file', 'path' => $uploads . $this->file);
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportXLSParse.php';
         $xls = new PMXI_XLSParser($localXLSPath, $this->uploadsPath);
         $filePath = $xls->parse();
         wp_all_import_remove_source($localXLSPath, false);
     } else {
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         // copy file in temporary folder
         // hide warning message
         echo '<span style="display:none">';
         copy($uploads . $this->file, $this->uploadsPath . '/' . basename($this->file));
         echo '</span>';
         $source = array('name' => basename($this->file), 'type' => 'file', 'path' => $uploads . $this->file);
         $filePath = $this->uploadsPath . '/' . basename($this->file);
         if (preg_match('%\\W(gz)$%i', basename($this->file))) {
             $fileInfo = wp_all_import_get_gz($filePath, 0, $this->uploadsPath);
             if (!is_wp_error($fileInfo)) {
                 wp_all_import_remove_source($filePath, false);
                 $filePath = $fileInfo['localPath'];
             } else {
                 $this->errors->add('form-validation', $fileInfo->get_error_message());
             }
         }
         if (preg_match('%\\W(csv|txt|dat|psv)$%i', trim($this->file)) or !empty($fileInfo) and $fileInfo['type'] == 'csv') {
             include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportCsvParse.php';
             $csv = new PMXI_CsvParser(array('filename' => $filePath, 'targetDir' => $this->uploadsPath));
             // create chunks
             //wp_all_import_remove_source($filePath, false);
             $filePath = $csv->xml_path;
             $this->is_csv = $csv->is_csv;
             $this->root_element = 'node';
         }
     }
     if ($this->errors->get_error_codes()) {
         return $this->errors;
     }
     $source['path'] = wp_all_import_get_relative_path($source['path']);
     $templateOptions = json_decode($template, true);
     $options = maybe_unserialize($templateOptions[0]['options']);
     return array('filePath' => $filePath, 'source' => $source, 'root_element' => $this->root_element, 'is_csv' => $this->is_csv, 'template' => $template, 'post_type' => !empty($options) ? $options['custom_type'] : false);
 }
Example #4
0
 /**
  * csv parser
  *
  * reads csv data and transforms it into php-data
  *
  * @access protected
  * @return boolean
  */
 protected function parse()
 {
     if (!$this->validates()) {
         return false;
     }
     $tmpname = wp_unique_filename($this->targetDir, str_replace("csv", "xml", basename($this->_filename)));
     if ("" == $this->xml_path) {
         $this->xml_path = $this->targetDir . '/' . wp_all_import_url_title($tmpname);
     }
     $this->toXML(true);
     /*$file = new PMXI_Chunk($this->xml_path, array('element' => 'node'));
     
             if ( empty($file->options['element']) ){
                 $this->toXML(true); // Remove non ASCII symbols and write CDATA
             }*/
     return true;
 }
Example #5
0
 public function upload()
 {
     $uploads = wp_upload_dir();
     if (empty($this->file)) {
         $this->errors->add('form-validation', __('Please specify a file to import.<br/><br/>If you are uploading the file from your computer, please wait for it to finish uploading (progress bar at 100%), before trying to continue.', 'wp_all_import_plugin'));
     } elseif (!is_file($this->file)) {
         $this->errors->add('form-validation', __('Uploaded file is empty', 'wp_all_import_plugin'));
     } elseif (!preg_match('%\\W(xml|gzip|zip|csv|gz|json|txt|dat|psv|sql)$%i', trim(basename($this->file)))) {
         $this->errors->add('form-validation', __('Uploaded file must be XML, CSV, ZIP, GZIP, GZ, JSON, SQL, TXT, DAT or PSV', 'wp_all_import_plugin'));
     } elseif (preg_match('%\\W(zip)$%i', trim(basename($this->file)))) {
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/pclzip.lib.php';
         $archive = new PclZip($this->file);
         if (($v_result_list = $archive->extract(PCLZIP_OPT_PATH, $this->uploadsPath, PCLZIP_OPT_REPLACE_NEWER)) == 0) {
             $this->errors->add('form-validation', __('WP All Import couldn\'t find a file to import inside your ZIP.<br/><br/>Either the .ZIP file is broken, or doesn\'t contain a file with an extension of  XML, CSV, PSV, DAT, or TXT. <br/>Please attempt to unzip your .ZIP file on your computer to ensure it is a valid .ZIP file which can actually be unzipped, and that it contains a file which WP All Import can import.', 'wp_all_import_plugin'));
         } else {
             $filePath = '';
             if (!empty($v_result_list)) {
                 foreach ($v_result_list as $unzipped_file) {
                     if ($unzipped_file['status'] == 'ok' and preg_match('%\\W(xml|csv|txt|dat|psv|json)$%i', trim($unzipped_file['stored_filename']))) {
                         $filePath = $unzipped_file['filename'];
                         break;
                     }
                 }
             }
             if ($this->uploadsPath === false) {
                 $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
             }
             if (empty($filePath)) {
                 $zip = zip_open(trim($this->file));
                 if (is_resource($zip)) {
                     while ($zip_entry = zip_read($zip)) {
                         $filePath = zip_entry_name($zip_entry);
                         $fp = fopen($this->uploadsPath . "/" . $filePath, "w");
                         if (zip_entry_open($zip, $zip_entry, "r")) {
                             $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
                             fwrite($fp, "{$buf}");
                             zip_entry_close($zip_entry);
                             fclose($fp);
                         }
                         break;
                     }
                     zip_close($zip);
                 } else {
                     $this->errors->add('form-validation', __('WP All Import couldn\'t find a file to import inside your ZIP.<br/><br/>Either the .ZIP file is broken, or doesn\'t contain a file with an extension of  XML, CSV, PSV, DAT, or TXT. <br/>Please attempt to unzip your .ZIP file on your computer to ensure it is a valid .ZIP file which can actually be unzipped, and that it contains a file which WP All Import can import.', 'wp_all_import_plugin'));
                 }
             }
             // Detect if file is very large
             $source = array('name' => basename($this->file), 'type' => 'upload', 'path' => $this->file);
             if (preg_match('%\\W(csv|txt|dat|psv)$%i', trim($filePath))) {
                 // If CSV file found in archieve
                 if ($this->uploadsPath === false) {
                     $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
                 }
                 include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportCsvParse.php';
                 $csv = new PMXI_CsvParser(array('filename' => $filePath, 'targetDir' => $this->uploadsPath));
                 // create chunks
                 //wp_all_import_remove_source($filePath, false);
                 $filePath = $csv->xml_path;
                 $this->is_csv = $csv->is_csv;
                 $this->root_element = 'node';
             } elseif (preg_match('%\\W(json)$%i', trim($filePath))) {
                 $json_str = file_get_contents($filePath);
                 $is_json = wp_all_import_is_json($json_str);
                 if (is_wp_error($is_json)) {
                     $this->errors->add('form-validation', $is_json->get_error_message(), 'wp_all_import_plugin');
                 } else {
                     $xml_data = wp_all_import_json_to_xml(json_decode($json_str, true));
                     if (empty($xml_data)) {
                         $this->errors->add('form-validation', __('Can not import this file. JSON to XML convertation failed.', 'wp_all_import_plugin'));
                     } else {
                         $jsontmpname = $this->uploadsPath . '/' . wp_all_import_url_title(wp_unique_filename($this->uploadsPath, str_replace("json", "xml", basename($filePath))));
                         file_put_contents($jsontmpname, $xml_data);
                         wp_all_import_remove_source($filePath, false);
                         $filePath = $jsontmpname;
                     }
                 }
             } elseif (preg_match('%\\W(sql)$%i', trim($filePath))) {
                 include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportSQLParse.php';
                 $localSQLPath = $filePath;
                 $sql = new PMXI_SQLParser($localSQLPath, $this->uploadsPath);
                 $filePath = $sql->parse();
                 wp_all_import_remove_source($localSQLPath, false);
             }
         }
     } elseif (preg_match('%\\W(csv|txt|dat|psv)$%i', trim($this->file))) {
         // If CSV file uploaded
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         $filePath = $this->file;
         $source = array('name' => basename($this->file), 'type' => 'upload', 'path' => $filePath);
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportCsvParse.php';
         $csv = new PMXI_CsvParser(array('filename' => $this->file, 'targetDir' => $this->uploadsPath));
         //@unlink($filePath);
         $filePath = $csv->xml_path;
         $this->is_csv = $csv->is_csv;
         $this->root_element = 'node';
     } elseif (preg_match('%\\W(gz)$%i', trim($this->file))) {
         // If gz file uploaded
         $fileInfo = wp_all_import_get_gz($this->file, 0, $this->uploadsPath);
         if (!is_wp_error($fileInfo)) {
             $filePath = $fileInfo['localPath'];
             // Detect if file is very large
             $source = array('name' => basename($this->file), 'type' => 'upload', 'path' => $this->file);
             // detect CSV or XML
             if ($fileInfo['type'] == 'csv') {
                 // it is CSV file
                 include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportCsvParse.php';
                 $csv = new PMXI_CsvParser(array('filename' => $filePath, 'targeDir' => $this->uploadsPath));
                 // create chunks
                 //@unlink($filePath);
                 $filePath = $csv->xml_path;
                 $this->is_csv = $csv->is_csv;
                 $this->root_element = 'node';
             }
         } else {
             $this->errors->add('form-validation', $fileInfo->get_error_message());
         }
     } elseif (preg_match('%\\W(json)$%i', trim($this->file))) {
         // Detect if file is very large
         $source = array('name' => basename($this->file), 'type' => 'upload', 'path' => $this->file);
         $json_str = file_get_contents($this->file);
         $is_json = wp_all_import_is_json($json_str);
         if (is_wp_error($is_json)) {
             $this->errors->add('form-validation', $is_json->get_error_message(), 'wp_all_import_plugin');
         } else {
             $xml_data = wp_all_import_json_to_xml(json_decode($json_str, true));
             if (empty($xml_data)) {
                 $this->errors->add('form-validation', __('Can not import this file. JSON to XML convertation failed.', 'wp_all_import_plugin'));
             } else {
                 $jsontmpname = $this->uploadsPath . '/' . wp_all_import_url_title(wp_unique_filename($this->uploadsPath, str_replace("json", "xml", basename($this->file))));
                 //@unlink($this->file);
                 file_put_contents($jsontmpname, $xml_data);
                 $filePath = $jsontmpname;
             }
         }
     } elseif (preg_match('%\\W(sql)$%i', trim($this->file))) {
         $source = array('name' => basename($this->file), 'type' => 'upload', 'path' => $this->file);
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportSQLParse.php';
         $sql = new PMXI_SQLParser($this->file, $this->uploadsPath);
         $filePath = $sql->parse();
         //@unlink($this->file);
     } else {
         // If XML file uploaded
         // Detect if file is very large
         $filePath = $this->file;
         $source = array('name' => basename($this->file), 'type' => 'upload', 'path' => $filePath);
     }
     if ($this->errors->get_error_codes()) {
         return $this->errors;
     }
     return array('filePath' => $filePath, 'source' => $source, 'root_element' => $this->root_element, 'is_csv' => $this->is_csv);
 }
Example #6
0
<?php

/**
 * List of plugin optins, contains only default values, actual values are stored in database
 * and can be changed by corresponding wordpress function calls
 */
$config = array("info_api_url" => "http://www.wpallimport.com", "history_file_count" => 10000, "history_file_age" => 365, "highlight_limit" => 10000, "upload_max_filesize" => 2048, "post_max_size" => 2048, "max_input_time" => -1, "max_execution_time" => -1, "dismiss" => 0, "html_entities" => 0, "utf8_decode" => 0, "cron_job_key" => wp_all_import_url_title(wp_all_import_rand_char(12)), "chunk_size" => 32, "pingbacks" => 1, "legacy_special_character_handling" => 1, "case_sensitive" => 1, "session_mode" => 'default', "enable_ftp_import" => 0, "large_feed_limit" => 1000, "cron_processing_time_limit" => 120, "secure" => 1, "log_storage" => 5, "cron_sleep" => "", "port" => "", "google_client_id" => "", "google_signature" => "", "licenses" => array(), "statuses" => array());
if (!defined('WPALLIMPORT_SIGNATURE')) {
    define('WPALLIMPORT_SIGNATURE', '');
}
 public function parse()
 {
     $tmpname = wp_unique_filename($this->targetDir, preg_replace('%\\W(xls|xlsx)$%i', ".csv", basename($this->_filename)));
     $this->csv_path = $this->targetDir . '/' . wp_all_import_url_title($tmpname);
     return $this->toXML();
 }
Example #8
0
 protected function get_xml_file($filePath)
 {
     $csv_path = '';
     if (preg_match('%\\W(csv|txt|dat|psv)$%i', trim($filePath))) {
         // If CSV file found in archieve
         if ($this->uploadsPath === false) {
             $this->errors->add('form-validation', __('WP All Import can\'t access your WordPress uploads folder.', 'wp_all_import_plugin'));
         }
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportCsvParse.php';
         $csv = new PMXI_CsvParser(array('filename' => $filePath, 'targetDir' => $this->uploadsPath));
         // create chunks
         $csv_path = $filePath;
         $filePath = $csv->xml_path;
         $this->is_csv = $csv->is_csv;
         $this->root_element = 'node';
     } elseif (preg_match('%\\W(json)$%i', trim($filePath))) {
         $json_str = file_get_contents($filePath);
         $is_json = wp_all_import_is_json($json_str);
         if (is_wp_error($is_json)) {
             $this->errors->add('form-validation', $is_json->get_error_message(), 'wp_all_import_plugin');
         } else {
             $xml_data = wp_all_import_json_to_xml(json_decode($json_str, true));
             if (empty($xml_data)) {
                 $this->errors->add('form-validation', __('Can not import this file. JSON to XML convertation failed.', 'wp_all_import_plugin'));
             } else {
                 $jsontmpname = $this->uploadsPath . '/' . wp_all_import_url_title(wp_unique_filename($this->uploadsPath, str_replace("json", "xml", basename($filePath))));
                 file_put_contents($jsontmpname, $xml_data);
                 wp_all_import_remove_source($filePath, false);
                 $filePath = $jsontmpname;
             }
         }
     } elseif (preg_match('%\\W(sql)$%i', trim($filePath))) {
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportSQLParse.php';
         $localSQLPath = $filePath;
         $sql = new PMXI_SQLParser($localSQLPath, $this->uploadsPath);
         $filePath = $sql->parse();
         wp_all_import_remove_source($localSQLPath, false);
     } elseif (preg_match('%\\W(xls|xlsx)$%i', trim($filePath))) {
         include_once PMXI_Plugin::ROOT_DIR . '/libraries/XmlImportXLSParse.php';
         $localXLSPath = $filePath;
         $xls = new PMXI_XLSParser($localXLSPath, $this->uploadsPath);
         $filePath = $xls->parse();
         wp_all_import_remove_source($localXLSPath, false);
     }
     return array('csv' => $csv_path, 'xml' => $filePath);
 }
Example #9
0
<?php

/**
 * List of plugin optins, contains only default values, actual values are stored in database
 * and can be changed by corresponding wordpress function calls
 */
$config = array("history_file_count" => 10000, "history_file_age" => 365, "highlight_limit" => 10000, "upload_max_filesize" => 2048, "post_max_size" => 2048, "max_input_time" => -1, "max_execution_time" => -1, "dismiss" => 0, "dismiss_speed_up" => 0, "dismiss_manage_top" => 0, "dismiss_manage_bottom" => 0, "html_entities" => 0, "utf8_decode" => 0, "cron_job_key" => wp_all_import_url_title(wp_all_import_rand_char(12)), "chunk_size" => 32, "pingbacks" => 1, "legacy_special_character_handling" => 1, "case_sensitive" => 1, "session_mode" => 'default', "enable_ftp_import" => 0, "large_feed_limit" => 1000, "cron_processing_time_limit" => 120, "secure" => 1, "log_storage" => 5, "cron_sleep" => "", "port" => "");