Никто не подскажет как можно сделать так что бы View по умолчанию подгружался из модуля, и если его там не окажется загружался из приложения?
Никто не подскажет как можно сделать так что бы View по умолчанию подгружался из модуля, и если его там не окажется загружался из приложения?
Имеется в виду layout или обычный view? Можно поподробней?
Именно View просто у всех модулей практически идентичная структура только есть небольшие различия во вьювах. Пробовал переписать метод render CController
public function render($view,$data=null,$return=false)
{
if ($this->getViewFile($view)) {
parent::render($view, $data, $return);
} else {
parent::render('application.views.'.Yii::app()->controller->id.'.'.$view, $data, $return);
}
}
Ну и аналогично RenderPartial только partial работать не особо хочет. Хотелось бы узнать может есть более элегантный способ без переписывания этих методов.
Ну вообще это делает модули менее независимыми, да и помещать общие вьюхи в папку с вьюхами приложения тоже не очень красиво. Можно было бы сделать для них общую папку и добавить в контроллер отдельный метод для подгрузки отображения из неё или создать псевдоним пути с именем наподобие "general_views" и просто делать render("general_views.list"). Думаю, тут дело вкуса.
в моем случае это парент модуль вложенных модулей, у него общие элементы (flash, breadcrumbs и тд), думаю в этом случае модульность несильно страдает. Тоже столкнулся с проблемой вызова рендера parent partial из внутренних модулей