Пример #1
0
 /**
  * 执行模块升级脚本
  * @param type $module 模块名称
  * @return boolean
  */
 public function upgrade($module)
 {
     //检查模块是否安装
     if ($this->isInstall($module) == false) {
         $this->error = '模块没进行安装,无法进行模块升级!';
         return -10022;
     }
     //取得模块信息
     $info = $this->where(array('module' => $module))->find();
     if (empty($info)) {
         $this->error = '获取模块信息错误!';
         return -10023;
     }
     //模块路径
     $base = $this->appPath . $module . '/';
     //SQL脚本文件
     $exec = $base . 'Upgrade/upgrade.sql';
     //phpScript
     $phpScript = $base . 'Upgrade/Upgrade.class.php';
     //判断是否有数据库升级脚本
     if (file_exists($exec)) {
         //获取全部参数
         preg_match_all("/#\\[version=(.*?)\\](.+?)#\\[\\/version\\]/ism", file_get_contents($exec), $match);
         //遍历
         foreach ($match[1] as $index => $version) {
             //比较模块版本,仅处理小于或等于当前版本
             if ($version && version_compare($version, $info['version'], '>=')) {
                 //记录最后一个更新的版本号
                 $upgradeVersion = $version;
                 $sql = $this->sqlSplit($sql, C("DB_PREFIX"));
                 if (!empty($sql) && is_array($sql)) {
                     foreach ($sql as $sql_split) {
                         $this->execute($sql_split);
                     }
                 }
             }
         }
     }
     //判断是否有升级程序脚本
     if (file_exists($phpScript)) {
         require_cache($phpScript);
         if (class_exists('Upgrade')) {
             $Upgrade = new Upgrade();
             if ($Upgrade->run() == false) {
                 $this->error = $Upgrade->getError() ? $Upgrade->getError() : "执行模块升级脚本错误,升级未完成!";
                 return -10024;
             }
         }
     }
     //加载配置
     $config = $this->getModuleInstallConfig($module);
     if (!empty($config)) {
         //更新版本号
         $this->where(array('module' => $module))->save(array('version' => $config['version'], 'updatedate' => date('Y-m-d')));
     }
     return true;
 }
Пример #2
0
                break;
        }
    }
    private static function selectUpgrade(Smarty $smarty)
    {
        $upgrades = array();
        foreach (Utils::getFilelist(SYSTEM_ROOT . '/upgrade/scripts/') as $file) {
            if (preg_match('~upgrade-(.*?)-(.*?).php~', $file, $matches)) {
                $upgrades[$file] = "Version " . $matches[1] . " -> " . $matches[2];
            }
        }
        if (Utils::getPOST('submit', false) !== false) {
            $upgrade = Utils::getPOST('upgrade', '');
            if (array_key_exists($upgrade, $upgrades) && file_exists(SYSTEM_ROOT . '/upgrade/scripts/' . $upgrade)) {
                include_once SYSTEM_ROOT . '/upgrade/scripts/' . $upgrade;
            }
        }
        $smarty->assign('upgrades', $upgrades);
        $smarty->assign('heading', 'Select upgrade');
        $smarty->assign('curStep', 1);
        $smarty->display('upgrade.tpl');
    }
    private static function success(Smarty $smarty)
    {
        $smarty->assign('heading', 'Upgrade finished');
        $smarty->assign('curStep', 2);
        $smarty->display('success.tpl');
    }
}
Upgrade::run(Utils::getGET('action', ''));
Пример #3
0
 /**
  * Run Upgrade Process:
  * - do WP-Property settings backup.
  *
  * @author peshkov@UD
  */
 public function run_upgrade_process()
 {
     Upgrade::run($this->old_version, $this->args['version']);
 }