/** * Options: * - file * - keep_file * - prefix * - item_callback * - id_col * - name_col * - skip_col * - goto_index * @param array $options */ public function handleImport(array $options = array()) { if (!wp_verify_nonce($this->_request->get('nonce'), self::getImportNonceAction($this->getSingular()))) { $this->getAdminNotices()->persistError($this->getInvalidAccessMessage()); $this->gotoIndex(); } if (isset($options['file']) && file_exists($options['file'])) { $file = $options['file']; } else { $file = $_FILES['importfile']['tmp_name']; } $importer = new IfwPsn_Wp_Data_Importer($file, $this->getModelMapper()->getExportOptions($this->_pm->getAbbrLower() . '_')); $item_callback = array(array($this, 'handleImportNameCheck')); if (isset($options['item_callback'])) { if (is_callable($options['item_callback'])) { $item_callback = array_merge($item_callback, array($options['item_callback'])); } elseif (is_array($options['item_callback'])) { $item_callback = array_merge($item_callback, $options['item_callback']); } unset($options['item_callback']); } $options = array_merge(array('prefix' => esc_attr($this->getRequest()->get('import_prefix')), 'item_callback' => $item_callback), $options); $result = $importer->import($this->getModelName(), $options); if (!isset($options['keep_file']) || $options['keep_file'] != true) { @unlink($file); } if (!$result) { $this->getAdminNotices()->persistError($importer->getError()); } if (!isset($options['goto_index']) || $options['goto_index'] == true) { $this->gotoIndex(); } }