public function actionDoUpgrade() { $siteInfo = new SiteForm(); $siteInfo->getSetting(); if (UpgradeInfo::compareVersion($siteInfo->version, "1.3.0") < 0) { $siteInfo->version = "1.3.0"; $siteInfo->saveSetting(); } $criteria = new CDbCriteria(); //$criteria->select = 'version'; $criteria->condition = 'status=:status'; $criteria->order = 'versionId'; $criteria->params = array(':status' => 'not installed'); $upgradeInfos = UpgradeInfo::model()->findAll($criteria); $vertionString = ''; foreach ($upgradeInfos as $upgradeInfo) { if (UpgradeInfo::compareVersion($siteInfo->version, $upgradeInfo->version) >= 0) { $upgradeInfo->status = "skipped"; $upgradeInfo->save(); continue; } $vertionString .= '"' . strval($upgradeInfo->version) . '",'; } $this->layout = "/layouts/nonav_column1"; $this->render('do_upgrade_fancy', array('versions' => $vertionString)); }
/** * 覆盖代码,执行脚本 * 下载的代码位于caches/upgradepackage_$version/upgrade/eduwind * 需要替换网站根目录 * Enter description here ... * @param unknown_type $version */ public function upgradeImplement($version) { $src = dirname(Yii::app()->basePath) . $this->downloadPath . "/upgradepackage_" . $version . "/upgrade/eduwind"; $dst = dirname(Yii::app()->basePath); try { #检测有无脚本 if (file_exists('caches/upgradepackage_' . $version . '/upgrade/upgrade.php')) { require_once 'caches/upgradepackage_' . $version . '/upgrade/upgrade.php'; EduwindUpgrade::upgrade(); } self::overridecopy($src, $dst); #删除更新包 unlink(dirname(Yii::app()->basePath) . $this->downloadPath . "/upgradepackage_" . $version . ".zip"); self::rrmdir(dirname(Yii::app()->basePath) . $this->downloadPath . "/upgradepackage_" . $version); #对数据库进行更新 $model = UpgradeInfo::model()->findByAttributes(array('version' => $version)); $model->status = 'installed'; $model->save(); $message = '更新代码替换成功!'; $siteForm = new SiteForm(); $siteForm->getSetting(); $siteForm->version = $model->version; $result = $siteForm->saveSetting(); error_log(print_r($result, true)); $status = 'success'; } catch (Exception $e) { $message = '更新失败,信息信息:' . $e->getMessage(); $status = 'failed'; } $message = '<div id="upgradeMsg" class="upgrade_' . $status . '">' . $message . '</div>'; return array('message' => $message, 'status' => $status); }
public function actionInit() { $model = new InstallInfoForm(); $mailer = new MailerForm(); if (isset($_POST['InstallInfoForm']) && isset($_POST['MailerForm'])) { $model->attributes = $_POST['InstallInfoForm']; $siteForm = new SiteForm(); $siteForm->name = $model->name; $siteForm->subTitle = $model->subTitle; $siteForm->saveSetting(); $user = new User(); $user->email = $model->adminEmail; $user->setPlainPassword($model->adminPassword); $user->save(); $userInfo = new UserInfo(); $userInfo->name = $model->adminName; $userInfo->id = $user->getPrimaryKey(); $userInfo->email = $user->email; $userInfo->bio = $model->adminBio; $userInfo->isAdmin = 1; // $userInfo->roles = "superAdmin,admin,teacher"; $userInfo->status = "ok"; $userInfo->addTime = time(); $userInfo->introduction = "admin"; $mailer->attributes = $_POST['MailerForm']; if ($userInfo->save() && $mailer->saveSetting()) { $auth = Yii::app()->authManager; $auth->createRole('admin'); $auth->createRole('teacher'); $userInfo->roles = array('admin', 'teacher'); $this->setNav(); $this->setCarousel(); Yii::app()->user->setFlash('success', '系统初始化成功!'); $this->redirect(array('finish')); } } $this->render('init', array('model' => $model, 'mailer' => $mailer)); }