Establecer el nombre de la plantilla Kohana dinámicamente
Pregunta
Parece que no puedo configurar la variable $ template
dinámicamente de un sitio construido en Kohana.
Si extiendo la clase Template_Controller, puedo establecer el nombre de la plantilla de esta manera:
public $template = 'template_file_name';
Pero no puedo configurarlo dinámicamente como:
public $template = $this->setTemplate();
o
switch($var):
default:
public $template = 'filename';
break;
endswitch;
Cambiar la variable $ template
usando $ this- > template
en el constructor rompe el Template_Controller de alguna manera:
Error grave: llamada a una función miembro render () en un objeto que no sea
Necesito establecer el nombre de archivo de la plantilla en función de un conjunto de variables en el constructor, o quizás extraído de una biblioteca externa.
¿Alguna idea de cómo hacer esto posible?
Solución
este enlace puede tener la respuesta:
http://stii.co.za/ php / overriding-default-template-in-kohana-php /
simplemente ejecute el constructor de su plantilla de esta manera:
public function __construct()
{
$this->template = 'foobar';
parent::__construct();
}
Otros consejos
Lo hago así:
public function action_myaction()
{
// template
$this->template = "template/overlay";
parent::before();
// display
$this->template->title = 'My Action';
$this->template->content = View::factory('myaction')
}
Más información aquí: http://www.workinprogress.ca/kohana32/