/** * convert imports options * compatibility with version 3.2.3 */ public function _fix_options() { global $wpdb; $imports = new PMXI_Import_List(); $post = new PMXI_Post_Record(); $templates = new PMXI_Template_List(); $template = new PMXI_Template_Record(); $is_migrated = get_option('pmxi_is_migrated'); $uploads = wp_upload_dir(); if (empty($is_migrated) or version_compare($is_migrated, PMXI_VERSION) < 0) { //PMXI_VERSION $commit_migration = true; if (empty($is_migrated)) { // plugin version less than 4.0.0 wp_all_import_rmdir($uploads['basedir'] . '/wpallimport_history'); wp_all_import_rmdir($uploads['basedir'] . '/wpallimport_logs'); foreach ($imports->setColumns($imports->getTable() . '.*')->getBy(array('id !=' => ''))->convertRecords() as $imp) { $imp->getById($imp->id); if (!$imp->isEmpty() and !empty($imp->template)) { $options = array_merge($imp->options, $imp->template); $this->__ver_4_transition_fix($options); $imp->set(array('options' => $options))->update(); if ($imp->type == 'file') { $imp->set(array('path' => $uploads['basedir'] . DIRECTORY_SEPARATOR . self::FILES_DIRECTORY . DIRECTORY_SEPARATOR . basename($imp->path)))->update(); } } } foreach ($templates->setColumns($templates->getTable() . '.*')->getBy(array('id !=' => ''))->convertRecords() as $tpl) { $tpl->getById($tpl->id); if (!$tpl->isEmpty() and !empty($tpl->title)) { $opt = empty($tpl->options) ? array() : $tpl->options; $options = array_merge($opt, array('title' => $tpl->title, 'content' => $tpl->content, 'is_keep_linebreaks' => $tpl->is_keep_linebreaks, 'is_leave_html' => $tpl->is_leave_html, 'fix_characters' => $tpl->fix_characters)); $this->__ver_4_transition_fix($options); $tpl->set(array('options' => $options))->update(); } } $commit_migration = $this->__fix_db_schema(); // feature to version 4.0.0 } else { // migration fixes for vesions switch ($is_migrated) { case '4.0.0-beta1': case '4.0.0-beta2': case '4.0.0 RC1': case '4.0.0': case '4.0.1': $commit_migration = $this->__fix_db_schema(); // feature to version 4.0.0 break; case '4.0.2': case '4.0.3': case '4.0.4': break; default: # code... break; } foreach ($imports->setColumns($imports->getTable() . '.*')->getBy(array('id !=' => ''))->convertRecords() as $imp) { $imp->getById($imp->id); if (!$imp->isEmpty()) { $options = $imp->options; $this->__ver_4x_transition_fix($options, $is_migrated); $imp->set(array('options' => $options))->update(); } } foreach ($templates->setColumns($templates->getTable() . '.*')->getBy(array('id !=' => ''))->convertRecords() as $tpl) { $tpl->getById($tpl->id); if (!$tpl->isEmpty()) { $options = empty($tpl->options) ? array() : $tpl->options; $this->__ver_4x_transition_fix($options, $is_migrated); $tpl->set(array('options' => $options))->update(); } } } if ($commit_migration) { update_option('pmxi_is_migrated', PMXI_VERSION); } } }
/** * convert imports options * compatibility with version 3.3 */ public function _fix_options() { $imports = new PMXI_Import_List(); $post = new PMXI_Post_Record(); foreach ($imports->setColumns($imports->getTable() . '.*')->getBy(array('large_import' => 'Yes'))->convertRecords() as $imp) { $imp->getById($imp->id); if (!$imp->isEmpty() and empty($imp->options['converted_options'])) { $options = $imp->options; $options['update_all_data'] = 'no'; $options['create_new_records'] = !empty($options['not_create_records']) ? 0 : 1; $options['is_update_status'] = !empty($options['is_keep_status']) ? 0 : 1; $options['is_update_content'] = !empty($options['is_keep_content']) ? 0 : 1; $options['is_update_title'] = !empty($options['is_keep_title']) ? 0 : 1; $options['is_update_excerpt'] = !empty($options['is_keep_excerpt']) ? 0 : 1; $options['is_update_categories'] = !empty($options['is_keep_categories']) ? 0 : 1; $options['is_update_attachments'] = !empty($options['is_keep_attachments_on_update']) ? 0 : 1; $options['is_update_images'] = !empty($options['is_keep_images']) ? 0 : 1; $options['is_update_dates'] = !empty($options['is_keep_dates']) ? 0 : 1; $options['is_update_menu_order'] = !empty($options['is_keep_menu_order']) ? 0 : 1; $options['is_update_parent'] = !empty($options['is_keep_parent']) ? 0 : 1; $options['is_update_custom_fields'] = !empty($options['keep_custom_fields']) ? 0 : 1; if ("" != $options['keep_custom_fields_specific'] or "" != $options['keep_custom_fields_except']) { $options['custom_fields_list'] = !empty($options['keep_custom_fields']) ? explode(',', $options['keep_custom_fields_except']) : explode(',', $options['keep_custom_fields_specific']); $options['update_custom_fields_logic'] = !empty($options['is_update_custom_fields']) ? 'only' : 'all_except'; } if (!empty($options['is_keep_categories']) and !empty($options['is_add_newest_categories'])) { $options['is_update_categories'] = 1; $options['update_categories_logic'] = 'add_new'; } $options['converted_options'] = 1; $imp->set(array('options' => $options))->update(); } } }