Режим технического обслуживания

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Apple
Сообщения: 2
Зарегистрирован: 2009.12.23, 08:43

Режим технического обслуживания

Сообщение Apple »

Добрый день.
Не получается создать статическую страницу при режиме технического обслуживания.
В документации http://www.yiiframework.com/doc/guide/r ... controller сказано:

Код: Выделить всё

если установлено свойство CWebApplication::catchAllRequest, контроллер будет создан 
на основании этого свойства, а контроллер, запрошенный пользователем, будет проигнорирован.
Как правило, это используется для установки приложения в режим технического обслуживания и 
отображения статической страницы с соответствующим сообщением; 
А так же:

Код: Выделить всё

catchAllRequest property
public array $catchAllRequest;

the configuration specifying a controller which should handle all user requests. This is mainly
used when the application is in maintenance mode and we should use a controller to handle all
incoming requests. The configuration specifies the controller route (the first element) and GET
parameters (the rest name-value pairs). For example,

array(
    'offline/notice',
    'param1'=>'value1',
    'param2'=>'value2',
)

Defaults to null, meaning catch-all is not effective.  
Я в файле main.php прописала:

Код: Выделить всё

'catchAllRequest'=>array(
              'site/notice'

        ),
 
И затем в контроллере

Код: Выделить всё

public function actionNotice()
    {
    {$this->render('notice');}

    } 
Все страницы как отркывались, так и открываются. Что сделала не так?
pirrat
Сообщения: 193
Зарегистрирован: 2009.04.03, 09:41

Re: Режим технического обслуживания

Сообщение pirrat »

странно, но у меня все работает.
как версия фреймворка?
маршруты ни какие не прописаны?

Код: Выделить всё

'catchAllRequest' => array(
    'site/notice',
), 
эта настройка должна стоять в основной ветки конфига, например после настройки 'name'...
Аватара пользователя
Apple
Сообщения: 2
Зарегистрирован: 2009.12.23, 08:43

Re: Режим технического обслуживания

Сообщение Apple »

pirrat писал(а):странно, но у меня все работает.
как версия фреймворка?
маршруты ни какие не прописаны?

Код: Выделить всё

'catchAllRequest' => array(
    'site/notice',
), 
эта настройка должна стоять в основной ветки конфига, например после настройки 'name'...
О, спасибо добрый самаритянин, за подсказку.
Я, по-неопытности, catchAllRequest определила в

Код: Выделить всё

'components'=>array(), 
сейчас переместила его в общий массив, и о чудо, все заработало!
glamurchik
Сообщения: 65
Зарегистрирован: 2011.04.27, 21:39

Re: Режим технического обслуживания

Сообщение glamurchik »

В контроллере должно быть что-то вида:

Код: Выделить всё

public function actionNotice()
{
       $this->renderPartial('notice');
} 
Поскольку render выведет весь шаблон, а renderPartial только то что нужно :!:
Аватара пользователя
kosenka
Сообщения: 677
Зарегистрирован: 2009.09.26, 12:41
Откуда: москва
Контактная информация:

Re: Режим технического обслуживания

Сообщение kosenka »

Apple писал(а):Добрый день.
Не получается создать статическую страницу при режиме технического обслуживания.
Посмотрите расширение viewtopic.php?f=9&t=1401
Ответить