miércoles, 25 de junio de 2008

Zend_Layout, tener mas de un layout en nuestro sistema.

Generalmente para los sistemas web tenemos dos partes, frontend (la parte del usuario), y un backend. Es probable que compartan el diseño, pero el backend tiende a ser mas simple que el frontend, para diferenciarlo, y que no sea tan molesto el trabajo diario, debido al exceso de contenido.

Si leyeron la guia de implementación de Zend_Layout, de zsamer en su blog. Solo nos muestra un solo layout.

Pero si nosotros queremos tener mas de un layout lo podemos configurar muy facilmente.

Primero en el bootstrap configuramos los layout que va a usar nuestro sistema, y en que ruta vamos a tenerlo. En mi caso los guardo en /html/scripts/layout, pero eso es relativo a cada uno.

Agregamos el siguiente código.


$options = array(
'layout' => 'Frontend',
'layout' => 'Backend',
'layoutPath' => 'html/scripts/layout/'
);
Zend_Layout::startMvc($options);


Con esto ya tenemos configurado nuestro Bootstrap con los dos layout Frontend, y Backend, tengan en cuenta que Frontend va a quedar como layout default. Dentro de la carpeta html/scripts/layout, debe haber un frontend.phtml, y un backend.phtml con la estructura de nuestra web.

Una vez creado nuestros archivos desde el controller que vamos a ejecutar backend o un layout que no sea el default, antes de ejecutar el render, seteamos el layout que queremos que se muestre
en nuestro caso backend.

La linea que debemos agregar es la siguiente
$this->_helper->layout->setLayout('backend');

Y listo, si ejecutamos nuestra aplicacion vamos a poder ver como conviven pacíficamente varios layouts. ;)


Mas info:
Manual Oficial
Entrada en el blog de zsamer
Wikibook

No hay comentarios: