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?

¿Fue útil?

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/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top