/** * convert imports options * compatibility with version 4.0 */ public function _fix_options() { $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 if (empty($is_migrated)) { // plugin version less than 4.0.0 pmxi_rmdir($uploads['basedir'] . '/wpallimport_history'); pmxi_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'] . '/wpallimport/files/' . 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(); } } $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': $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(); } } } update_option('pmxi_is_migrated', PMXI_VERSION); } }
function pmxi_clear_directory($path) { if (($dir = @opendir($path . '/')) !== false or ($dir = @opendir($path)) !== false) { while (($file = @readdir($dir)) !== false) { $filePath = $path . '/' . $file; if (is_dir($filePath) && !in_array($file, array('.', '..'))) { pmxi_rmdir($filePath); } elseif (is_file($filePath)) { @unlink($filePath); } } } }