yii切换维护模式ON / OFF

时间:2014-04-03 08:50:40

标签: php yii

我正在尝试在我的网站上进行维护模式,我想放一个只有管理员才能看到的按钮来打开/关闭维护模式。

这允许管理员继续看到网络但其他访问者没有。

我已经阅读了有关catchAllRequest的信息,创建了一个文件并在必要时重命名,但我无法使其正常工作。

我尝试过underconstruct扩展,但我不知道如何切换ON / OFF。

这就是我现在所拥有的。

控制器:

public function actionIndex()
    {
        $location = Yii::app()->request->baseUrl.'/protected/config/maintenanceON.txt';
        $new = Yii::app()->request->baseUrl.'/protected/config/maintenanceOFF.txt';
        Yii::app()->session['secret'] = "password";
        rename($location,$new);
        $this->renderPartial("index");
    }

CONFIG / MAIN.PHP:

'catchAllRequest'=>file_exists(
        dirname(__FILE__).'/maintenanceON.txt') && 
            !(isset(Yii::app()->session['secret']) && Yii::app()->session['secret']=="password") ?
                array('maintenance/index') : null,

谢谢!

1 个答案:

答案 0 :(得分:7)

将它放在components / Controller.php中:

public function beforeAction() {
    if(Yii::app()->params['maintenance'] == true && Yii::app()->user->id != 1) {
        throw new CHttpException(404, 'Under Maintenance');
    }
}

将它放在config / main.php中:

'params' => array(
    'maintenance' => true,
),