/** * * @see XenForo_ControllerAdmin_Import::actionImport() */ public function actionImport() { $response = parent::actionImport(); if ($response instanceof XenForo_ControllerResponse_View) { $session = new XenForo_ImportSession(); $config = $session->getConfig(); $response->params['isRetainKeys'] = !empty($config['retain_keys']); } return $response; }
public function runStep(XenForo_ControllerAdmin_Abstract $controller = null, XenForo_ImportSession $session, $step, $start, array $options = array()) { if (!$step || !method_exists($this, 'step' . $step)) { throw new XenForo_Exception('Invalid step ' . $step); } ignore_user_abort(true); $this->_session = $session; $this->_controller = $controller; $this->_bootstrapImporter($session->getConfig()); $steps = $this->getSteps(); if (isset($steps[$step])) { if (!$this->_importModel->canRunStep($step, $steps, $session->getRunSteps())) { throw new XenForo_Exception('Step ' . $step . ' cannot be run.'); } } return $this->{'step' . $step}($start, $options); }
public function actionComplete() { if ($this->_request->isPost()) { $input = $this->_input->filter(array('archive' => XenForo_Input::UINT, 'table' => XenForo_Input::STRING)); if ($input['archive'] && $input['table']) { if (!$this->_getImportModel()->archiveImportLog($input['table'], $error)) { return $this->responseError($error); } } $session = new XenForo_ImportSession(); $importerKey = $session->getImporterKey(); $session->delete(); XenForo_Application::defer('Atomic', array('simple' => array('User', 'Thread', 'Poll', 'Forum')), 'importRebuild', true); return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('import/complete', false, array('confirm' => $importerKey))); } else { if ($importerKey = $this->_input->filterSingle('confirm', XenForo_Input::STRING)) { $importer = $this->_getImportModel()->getImporter($importerKey); $messages = $importer ? $importer->getImportCompleteMessages() : array(); return $this->responseView('XenForo_ViewAdmin_Import_Complete', 'import_complete', array('messages' => $messages)); } else { $session = new XenForo_ImportSession(); $config = $session->getConfig(); if (!$session->getImporterKey()) { return $this->responseView('XenForo_ViewAdmin_Import_Complete', 'import_complete', array('messages' => array())); } $viewParams = array('importerName' => $this->_getImportModel()->getImporterName($session->getImporterKey()), 'logSuffix' => $config['db']['dbname']); return $this->responseView('XenForo_ViewAdmin_Import_CompleteConfirm', 'import_complete_confirm', $viewParams); } } }
public function actionComplete() { if ($this->_request->isPost()) { $input = $this->_input->filter(array('archive' => XenForo_Input::UINT, 'table' => XenForo_Input::STRING)); if ($input['archive'] && $input['table']) { if (!$this->_getImportModel()->archiveImportLog($input['table'], $error)) { return $this->responseError($error); } } $session = new XenForo_ImportSession(); $importerKey = $session->getImporterKey(); $session->delete(); $caches = array('User', 'Thread', 'Poll', 'Forum'); return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('import/complete', false, array('confirm' => $importerKey))); } else { if ($importerKey = $this->_input->filterSingle('confirm', XenForo_Input::STRING)) { $messages = $this->_getImportModel()->getImporter($importerKey)->getImportCompleteMessages(); return $this->responseView('XenForo_ViewAdmin_Import_Complete', 'import_complete', array('messages' => $messages)); } else { $session = new XenForo_ImportSession(); $config = $session->getConfig(); $importer = $this->_getImportModel()->getImporter($session->getImporterKey()); $viewParams = array('importerName' => $importer->getName(), 'logSuffix' => $config['db']['dbname']); return $this->responseView('XenForo_ViewAdmin_Import_CompleteConfirm', 'import_complete_confirm', $viewParams); } } }