/** * @see \wcf\form\IForm::save() */ public function save() { parent::save(); // get queue $queue = $this->exporter->getQueue(); // save import data WCF::getSession()->register('importData', array('exporterName' => $this->exporterName, 'dbHost' => $this->dbHost, 'dbUser' => $this->dbUser, 'dbPassword' => $this->dbPassword, 'dbName' => $this->dbName, 'dbPrefix' => $this->dbPrefix, 'fileSystemPath' => $this->fileSystemPath, 'userMergeMode' => $this->userMergeMode, 'additionalData' => $this->additionalData)); WCF::getTPL()->assign('queue', $queue); }
/** * @see \wcf\system\cli\command\ICLICommand::execute() */ public function execute(array $parameters) { CLIWCF::getReader()->setHistoryEnabled(false); $this->exporters = ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.exporter'); $this->importers = array_keys(ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.importer')); if (empty($this->exporters)) { CLIWCF::getReader()->println(WCF::getLanguage()->get('wcf.acp.dataImport.selectExporter.noExporters')); return; } if (PACKAGE_ID == 1) { CLIWCF::getReader()->println(StringUtil::stripHTML(WCF::getLanguage()->get('wcf.acp.dataImport.cli.info.wcf'))); $answer = CLIWCF::getReader()->readLine('> '); if ($answer === null) { exit; } if (mb_strtolower($answer) != 'y') { CLIWCF::getReader()->setHistoryEnabled(true); return; } } // step 1) previous import $sql = "SELECT\tCOUNT(*)\n\t\t\tFROM\twcf" . WCF_N . "_import_mapping"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(); if ($statement->fetchColumn()) { CLIWCF::getReader()->println(StringUtil::stripHTML(WCF::getLanguage()->get('wcf.acp.dataImport.existingMapping.notice'))); CLIWCF::getReader()->println(WCF::getLanguage()->get('wcf.acp.dataImport.existingMapping.confirmMessage') . ' [YN]'); $answer = CLIWCF::getReader()->readLine('> '); if ($answer === null) { exit; } if (mb_strtolower($answer) == 'y') { ImportHandler::getInstance()->resetMapping(); } } // step 2) exporter $this->readExporter(); // step 3) selected data $this->readSelectedData(); if ($this->quitImport) { CLIWCF::getReader()->setHistoryEnabled(true); return; } // step 4) user merge mode $this->readUserMergeMode(); // step 5) database connection $this->readDatabaseConnection(); // step 6) file system path $this->readFileSystemPath(); // step 7) save import data $queue = $this->exporter->getQueue(); WCF::getSession()->register('importData', array('additionalData' => array(), 'dbHost' => $this->dbHost, 'dbName' => $this->dbName, 'dbPassword' => $this->dbPassword, 'dbPrefix' => $this->dbPrefix, 'dbUser' => $this->dbUser, 'exporterName' => $this->exporterName, 'fileSystemPath' => $this->fileSystemPath, 'userMergeMode' => $this->userMergeMode)); // step 8) import data CLIWCF::getReader()->println(WCF::getLanguage()->get('wcf.acp.dataImport.started')); foreach ($queue as $objectType) { CLIWCF::getReader()->println(WCF::getLanguage()->get('wcf.acp.dataImport.data.' . $objectType)); $workerCommand = CLICommandHandler::getCommand('worker'); $workerCommand->execute(array('--objectType=' . $objectType, 'ImportWorker')); } CLIWCF::getReader()->println(WCF::getLanguage()->get('wcf.acp.dataImport.completed')); CLIWCF::getReader()->setHistoryEnabled(true); }