Установка имени шаблона Kohana динамически
Вопрос
Я не могу установить динамическую переменную $ template
для сайта, созданного на Kohana.
Если я расширю класс Template_Controller, я могу установить имя шаблона следующим образом:
public $template = 'template_file_name';
Но я не могу установить его динамически, как:
public $template = $this->setTemplate();
или
switch($var):
default:
public $template = 'filename';
break;
endswitch;
Изменение переменной $ template
с помощью $ this-> gt; template
в конструкторе как-то нарушает Template_Controller:
Неустранимая ошибка: вызов функции-члена render () для необъекта
Мне нужно установить имя файла шаблона на основе переменной, заданной в конструкторе, или, возможно, извлеченной из внешней библиотеки.
Есть идеи, как сделать это возможным?
Решение
эта ссылка может иметь ответ:
http://stii.co.za/ PHP / переопределение-умолчанию-шаблон-в-Кохана-PHP /
просто запустите конструктор шаблона следующим образом:
public function __construct()
{
$this->template = 'foobar';
parent::__construct();
}
Другие советы
Я делаю это так:
public function action_myaction()
{
// template
$this->template = "template/overlay";
parent::before();
// display
$this->template->title = 'My Action';
$this->template->content = View::factory('myaction')
}
Больше информации здесь: http://www.workinprogress.ca/kohana32/