From 42624e0427ee979c8683c913784ead5ef0e3a1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Wed, 2 Mar 2022 14:10:59 +0800 Subject: [PATCH] * Add upgrade logic. --- framework/control.class.php | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/framework/control.class.php b/framework/control.class.php index 83495d0913..6fe28bd99c 100644 --- a/framework/control.class.php +++ b/framework/control.class.php @@ -35,7 +35,11 @@ class control extends baseControl $this->app->setOpenApp(); - if(defined('IN_USE') or (defined('RUN_MODE') and RUN_MODE != 'api')) $this->setPreference(); + if(defined('IN_USE') or (defined('RUN_MODE') and RUN_MODE != 'api')) + { + $this->setPreference(); + $this->forceUpgrade(); + } if(!isset($this->config->bizVersion)) return false; @@ -123,6 +127,29 @@ class control extends baseControl } } + /** + * If change the edition, trigger the upgrade process. + * + * @access public + * @return void + */ + public function forceUpgrade() + { + $installedVersion = $this->loadModel('setting')->getVersion(); + + if(is_numeric($installedVersion[0]) and $this->config->edition == 'max') + { + if($this->config->systemMode == 'classic' and $this->app->getModuleName() != 'upgrade') + { + $this->loadModel('setting')->setItem('system.common.global.mode', 'new'); + $this->loadModel('setting')->setItem('system.common.global.version', $this->config->version); + $this->locate(helper::createLink('upgrade', 'mergeTips')); + } + } + + return true; + } + /** * 企业版部分功能是从然之合并过来的。然之代码中调用loadModel方法时传递了一个非空的appName,在禅道中会导致错误。 * 调用父类的loadModel方法来避免这个错误。