Plantillas en Zend Framework 2

Plantillas en Zend Framework 2
Las plantillas en Zend Framework 2 nos permiten definir una pagina maestra, común a todas las páginas, que tenga elementos que necesitan todas las paginas por ejemplo un encabezado, los ficheros css y js, el pie de página, etc. En ella se “imprimen” las vistas de nuestra aplicación.

Las plantillas se crean en el directorio indicado en la imagen.

Los métodos que vamos a ver a continuación pueden ser utilizados en cualquier vista, para actualizar por ejemplo el titulo o añadir ficheros css, de la página sin importar que sean invocados en el body.

Ejemplo de plantilla:

<?php //Cargamos el doctype que tenemos configurado
	echo $this->doctype(); ?>
<html lang="es_ES">
    <head>
        <?php 
		//Cargamos el juego de caracteres
		echo $this->headMeta()->setCharset('utf8')?>
        <?php 
		//Asignamos el titulo de la página
		echo $this->headTitle($this->title)?>
        <?php //echo $this->headMeta()->appendName('keywords', 'framework, PHP, productivity');?>
        <?php //echo $this->headMeta()->setProperty('og:title', 'my article title');?> 
        <?php //echo $this->headMeta()->setProperty('og:type', 'article');?>   
        <?php 
		//Asignamos hojas de estilo
		echo $this->headLink()->prependStylesheet($this->basePath().'/css/estilos.css')?>
        <?php //echo $this->headStyle()?>
        <?php 
		//Incluimos ficheros javascript
		echo $this->headScript()->prependFile($this->basePath().'/js/jquery.min.js')?>
    </head>
    <body>
        <header>
            <h1>Encabezado</h1>
        </header>
        
        <div class="content">
        Saludo : <?php 
		//Mostramos el parámetro pasado
		echo $this->saludo?>
        <?php 
		//Aqui se muestra el contenido de la vista
		echo $this->content?>
        </div>

        <footer>&copy; Victor Robles</footer>
        <?php echo $this->inlineScript() ?>
    </body>
</html>

El controlador

<?php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class PruebasController extends AbstractActionController{
    
    public function indexAction(){
        return new ViewModel();
    }
    
    public function verProductoDosAction(){
	
	
        $view=new ViewModel();
		
		//Indicamos que layout va a utilizar este método
        $this->layout('layout/pruebas');
		
		//Le pasamos un parámetro
        $this->layout()->saludo="Hola como estas";
		
		//Establecemos el titulo de la página
        $this->layout()->title="Soy el titulo de una plantilla";
		
		//Renderizamos la vista
        return $view;  
    }
    
    public function verAjaxAction(){
       $view=new ViewModel();
	   
	   //Recibimos datos sin estilos, ideal cuando usemos ajax
       $view->setTerminal(true);
       return $view;
    }
    
}

Plantillas en Zend Framework 2 plantilla personalizada

El método verAjaxAction no carga los estilos
Plantillas en Zend Framework 2 setterminal ajax

Para cambiar la plantilla por defecto que trae Zend Framework 2 tenemos que dirigir al fichero de configuración de nuestro modulo y simplemente sustituimos el layout por defecto por el nuestro.
Plantillas en Zend Framework 2 module.config.php

Más información:
http://framework.zend.com/manual/2.2/en/modules/zend.view.quick-start.html

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post