76 lines
2.0 KiB
PHP
76 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/install/form/UpgradeForm.php
|
|
*
|
|
* Copyright (c) 2014-2021 Simon Fraser University
|
|
* Copyright (c) 2003-2021 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class UpgradeForm
|
|
*
|
|
* @ingroup install_form
|
|
*
|
|
* @brief Form for system upgrades.
|
|
*/
|
|
|
|
namespace PKP\install\form;
|
|
|
|
use APP\core\Application;
|
|
use APP\install\Upgrade;
|
|
use APP\template\TemplateManager;
|
|
use PKP\install\Installer;
|
|
|
|
class UpgradeForm extends MaintenanceForm
|
|
{
|
|
/**
|
|
* Constructor.
|
|
*/
|
|
public function __construct($request)
|
|
{
|
|
parent::__construct($request, 'install/upgrade.tpl');
|
|
}
|
|
|
|
/**
|
|
* Perform installation.
|
|
*/
|
|
public function execute(...$functionParams)
|
|
{
|
|
parent::execute(...$functionParams);
|
|
|
|
Application::upgrade();
|
|
$templateMgr = TemplateManager::getManager($this->_request);
|
|
$installer = new Upgrade($this->_data);
|
|
|
|
// FIXME Use logger?
|
|
|
|
// FIXME Mostly common with InstallForm
|
|
|
|
if ($installer->execute()) {
|
|
if (!$installer->wroteConfig()) {
|
|
// Display config file contents for manual replacement
|
|
$templateMgr->assign(['writeConfigFailed' => true, 'configFileContents' => $installer->getConfigContents()]);
|
|
}
|
|
|
|
$templateMgr->assign('notes', $installer->getNotes());
|
|
$templateMgr->assign('newVersion', $installer->getNewVersion());
|
|
$templateMgr->display('install/upgradeComplete.tpl');
|
|
} else {
|
|
switch ($installer->getErrorType()) {
|
|
case Installer::INSTALLER_ERROR_DB:
|
|
$this->dbInstallError($installer->getErrorMsg());
|
|
break;
|
|
default:
|
|
$this->installError($installer->getErrorMsg());
|
|
break;
|
|
}
|
|
}
|
|
|
|
$installer->destroy();
|
|
}
|
|
}
|
|
|
|
if (!PKP_STRICT_MODE) {
|
|
class_alias('\PKP\install\form\UpgradeForm', '\UpgradeForm');
|
|
}
|