Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
 /**
  * 覆盖代码,执行脚本
  * 下载的代码位于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);
 }
Exemplo n.º 3
0
 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));
 }