¿Cómo incluyo el encabezado y el pie de página con el diseño en Zend Framework?
zend-framework zend-layout (4)
Me gustaría permitir que Zend_Layout incluya header.phtml y footer.phtml con [layouy name] .phtml.
¿Cómo puedo hacer eso? Intenté leer códigos en Zend_Layout, Zend_Layout_Controller_Plugin_Layout. Todavía no puedo entenderlo ...
La respuesta de cballou es probablemente lo que quieres, pero pensé que lo tiraría por ahí en buena medida. Si desea generar secuencias de comandos de vista de encabezado y pie de página separadas en diferentes partes de su sitio, puede hacerlo desde cada controlador de la siguiente manera:
Zend_Loader::loadClass(''Zend_View'');
$header = new Zend_View();
//Set header variables here
$this->view->header = $header->render(''header.phtml'');
Luego use $ this-> header para extraer el encabezado renderizado dentro de su diseño. Lo mismo ocurre con el pie de página.
Me doy cuenta de que la pregunta planteada tiene 4 años de antigüedad, pero para aquellos que se encuentren con esto y no se den cuenta de que hay una mejor manera de hacerlo con la última ZF2, aquí está la "mejor manera": Zend Framework 2: cómo incluir parte de la biblioteca.
Podría incluir sus archivos de encabezado y pie de página dentro de su archivo layout.phtml. Aquí hay un ejemplo:
<div id="header"><?= $this->render(''layouts/header.phtml'') ?></div>
<div id="nav"><?= $this->render(''layouts/nav.phtml'') ?></div>
<div id="content"><?= $this->layout()->content ?></div>
<div id="footer"><?= $this->render(''layouts/footer.phtml'') ?></div>
Solo de otra manera:
Esto irá en el controlador:
$this->view->header = "header.phtml";
Esto irá en la vista:
include($this->header);
Incluso si no usamos el controlador (pero solo en la vista) podemos usar:
include("header.phtml");