Exemple #1
0
 /**
  * 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();
     }
 }