Привет хабр!
Изучаю фреймворк Kohana 3.1. Возник вопрос как лучше реализовать шаблоны через Controller_template.
Подробнее:
Есть базовый контроллер для шаблонов
class Controller_Design extends Controller_Template {<br><br>
public $template = 'design';<br>
public $auto_render = TRUE;<br><br>
protected $current_page;<br><br>
public function before()<br>
{<br>
parent::before();<br><br>
// Если запрос внутренний или ajax, то не выводим шаблон<br>
if( ! $this->request->is_initial() or $this->request->is_ajax())<br>
{<br>
$this->auto_render = FALSE;<br>
}<br><br>
$this->template->title = '';<br>
$this->template->meta_keywords = '';<br>
...<br>
}<br><br>
public function after()<br>
{<br>
if($this->auto_render)<br>
{<br>
// Default scripts and css's<br>
$styles = array(<br>
'public/skin/style.css' => 'screen',<br>
...<br>
} else {<br>
$this->response->body( $this->template->content );<br>
}<br><br>
parent::after();<br>
}<br>
}<br>
Дальше все контроллеры выводящие какие либо страницы сайта от него наследуются
class Controller_Profile extends Controller_Design {<br><br>
protected $current_page = 'profile';<br><br>
public function action_index()<br>
{<br>
$this->template->styles['public/skin/css/profile.css'] = 'screen';<br>
$this->template->content = View::factory('pages/profile');<br>
}<br><br>
}<br>
Проблемы возникают при попытке реализовать hmvc как я его понимаю, т.е:
class Controller_Main extends Controller_Design {<br>
protected $current_page = 'main';<br>
public function action_index()<br>
{<br>
if( ! Auth::instance()->logged_in())<br>
{ // If user not logged, then show the page for guests<br>
$this->template->content = View::factory('pages/main');<br>
}<br>
else<br>
{ // Else show page, like url is /profile<br>
$this->template->content = Controller::factory('profile')->execute();<br>
}<br>
}<br><br>
}<br>
Проблема возникает когда надо от «суб-контроллера» получить список стилей/скриптов, meta и т.д
Что я делаю не так?