Страница 1 из 1

Глобальные actions

Добавлено: 2014.03.25, 20:39
mitrich
Привет всем.

Ситуация. Имеем контроллер Controller от которого наследуются все контроллеры системы. В нем цепляем action, который должен быть доступен во всех контроллерах системы:

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

public function actions()
{
    return array(            
        'create_proposal'=>'application.controllers.actions.CreateProposalAction',
   );
}
В системе работают как обычные контроллеры приложения (из папки application/controllers/), так и контроллеры модулей (modules/modulename/controllers/).

Вопрос. Куда ложить вьюху для этого action? Полагаю что положить можно куда угодно, тогда как правильно заставить yii искать вьюху там куда я ее положил? Ведь переопределить getViewPath для контроллера я не могу, потому как это приведет к тому что рядовые контроллеры полезут искать вьюху по новому пути.

Заранее благодарен.

Re: Глобальные actions

Добавлено: 2014.03.25, 22:13
neverwinter
Ведь переопределить getViewPath для контроллера я не могу, потому как это приведет к тому что рядовые контроллеры полезут искать вьюху по новому пути.
Но можно добавить проверку

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

if ($this->action->id === 'create_proposal')

Re: Глобальные actions

Добавлено: 2014.03.25, 23:07
ElisDN
Указывайте путь от корневой views:

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

$this->owner->render('//common/proposal/create', array(...));

Re: Глобальные actions

Добавлено: 2014.03.25, 23:20
mitrich
Спасибо, о корневом view не подумал.