xxb/module/upgrade/control.php
2023-10-23 15:51:36 +08:00

108 lines
2.8 KiB
PHP

<?php
/**
* The control file of upgrade module of XXB.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd., www.zentao.net)
* @license ZOSL (https://zpl.pub/page/zoslv1.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package upgrade
* @version $Id: control.php 4227 2016-10-25 08:27:56Z liugang $
* @link https://xuanim.com
*/
class upgrade extends control
{
/**
* The index page.
*
* @access public
* @return void
*/
public function index()
{
$this->locate(inlink('backup'));
}
/**
* The backup page.
*
* @access public
* @return void
*/
public function backup()
{
$this->view->title = $this->lang->upgrade->backup;
$this->view->db = $this->config->db;
$this->display();
}
/**
* Select the version of old xxb.
*
* @access public
* @return void
*/
public function selectVersion()
{
$version = str_replace(array(' ', '.', '-'), '_', $this->loadModel('setting')->getVersion());
$version = strtolower($version);
$this->view->title = $this->lang->upgrade->common . $this->lang->colon . $this->lang->upgrade->selectVersion;
$this->view->version = $version;
$this->display();
}
/**
* Confirm the version.
*
* @access public
* @return void
*/
public function confirm()
{
$confirmContent = $this->upgrade->getConfirm($this->post->fromVersion);
if(empty($confirmContent)) $this->locate(inlink('execute', "fromVersion={$this->post->fromVersion}"));
$this->view->title = $this->lang->upgrade->confirm;
$this->view->confirm = $confirmContent;
$this->view->fromVersion = $this->post->fromVersion;
$this->display();
}
/**
* Execute the upgrading.
*
* @param string $fromVersion
* @access public
* @return void
*/
public function execute($fromVersion)
{
$fromVersion = isset($_POST['fromVersion']) ? $this->post->fromVersion : $fromVersion;
$result = $this->upgrade->execute($fromVersion);
$this->view->title = $this->lang->upgrade->result;
if(!empty($result))
{
$result[] = $this->lang->upgrade->afterDeleted;
$this->view->result = 'fail';
$this->view->errors = $result;
}
else
{
if(!$this->upgrade->isError())
{
$this->view->result = 'success';
}
else
{
$this->view->result = 'fail';
$this->view->errors = $this->upgrade->getError();
}
}
$this->display();
}
}