Directorio Layout


Estructura Basica
Para comprender el sistema de layout y vistas de agenor primero miremos un ejemplo de composicion del directorio layout perteneciente al directorio raiz del sistema.
  •  layout
    •  all
    •  win8
      •  css
        •  metro.css
        •  win8.css
      •  fonts
      •  img
        •  logo.png
      •  js
        •  metroui.js
      •  phtml
        •  aside.phtml
        •  error.phtml
        •  footer.phtml
        •  header.phtml
        •  layout.phtml
        •  nav.phtml
    •  mint
    •  silver
Aqui podemos ver que el sistema cuenta con 4 tipos de plantillas bases o diseños, all, win8, mint, silver. Del archivo de configuracion application.php se extrae el diseño y plantilla phtml que se utilizara por defecto, y vienen en las siguientes lineas:
layout.dir      = 'win8';
layout.main     = 'layout.phtml';
El directorio all, podria ser usado para poner todo aquello comun a todos los diseños y que no sean archivos js, css o img propias de algun modulo. En estos directorio todos los archivos son factibles de ser utilizados por todo el sistema. Si en tiempo de ejecucion necesitarmos cambiar la plantilla o diseño del sitio, entonces desde el adaptador hariamos:
$this->_view->layoutDir('mint'); // Cambiamos el directorio de diseño
$this->_view->layout('layout_mint.phtml'); // Cambiamos la plantilla Base
Esquema de la estructura de Agenor
<!DOCTYPE html>
<html lang="es">
    <head>
        <title>Titulo del sistema</title>
        <!-- METAS -->
          <meta charset="utf-8">
          <meta name="description" content="Agenor: Libreria MVC Basica.">
          <meta name="keywords" content="Agenor, MVC, Libreria" />
           <meta name="author" content="objetivophp@gmail.com">
        <!-- METAS FIN -->
    </head>
    <body>
        <header>
            Cabezal de la Aplicacion con Logo etc..
        </header>
        <nav>
            inicio | sobre | download | contactenos
        </nav>
        <section>
            <article>
                Noticia 1 ...
            </article>
            <article>
                Noticia 2 ...
            </article>
            <article>
                Noticia 3 ...
            </article>
        </section>
        <aside>
            Barra Lateral.
        </aside>
        <footer>
            Pie del sitio , los derechos de autor y eso.
        </footer>
    </body>
</html>
Arriba vemos la imagen del layout y el posible codigo HTML5 de la imagen sin css, al archivo le pondremos layout.phtml y lo tomaremos como la plantilla base del sitio.

 IMPORTANTE :

Un diseño o directorio de plantillas puede contener mas de una plantilla a utilizarse como base, se alterna entre las mismas con: $this->_view->layout('layout_mint.phtml');
Por lo que vemos en el codigo html5, no existe nada que pueda ser dinamico, o sea que es una plantilla totalmente estatica. Como es entonces que se puede personalizar la misma. Bueno ahi entra en accion la clase Layout y sus metodos, que vemos en el tema siguiente.