示例#1
0
 /**
  * Delete associated sub imports
  * @return PMXI_Import_Record
  * @chainable
  */
 public function deleteChildren($keepPosts = TRUE)
 {
     $importList = new PMXI_Import_List();
     foreach ($importList->getBy('parent_import_id', $this->id)->convertRecords() as $i) {
         $i->delete($keepPosts);
     }
     return $this;
 }
示例#2
0
 /**
  * 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);
         }
     }
 }
示例#3
0
 /**
  * Bulk actions
  */
 public function bulk()
 {
     check_admin_referer('bulk-imports', '_wpnonce_bulk-imports');
     if ($this->input->post('doaction2')) {
         $this->data['action'] = $action = $this->input->post('bulk-action2');
     } else {
         $this->data['action'] = $action = $this->input->post('bulk-action');
     }
     $this->data['ids'] = $ids = $this->input->post('items');
     $this->data['items'] = $items = new PMXI_Import_List();
     if (empty($action) or !in_array($action, array('delete')) or empty($ids) or $items->getBy('id', $ids)->isEmpty()) {
         wp_redirect($this->baseUrl);
         die;
     }
     if ($this->input->post('is_confirmed')) {
         $is_delete_posts = $this->input->post('is_delete_posts');
         foreach ($items->convertRecords() as $item) {
             $item->delete(!$is_delete_posts);
         }
         wp_redirect(add_query_arg('pmxi_nt', urlencode(sprintf(__('<strong>%d</strong> %s deleted', 'wp_all_import_plugin'), $items->count(), _n('import', 'imports', $items->count(), 'wp_all_import_plugin'))), $this->baseUrl));
         die;
     }
     $this->render();
 }
示例#4
0
 /**
  * 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();
         }
     }
 }