jueves, 12 de abril de 2012

Paso de Variables

Vamos a seguir con el contenido estático.
Esta vez conoceremos como dar distintos valores a cada una de nuestras paginas, con el modelo de trabajo del MVC o de tres capas.

Lo primero que deberemos hacer es habilitar las vistas, para ello iremos a nuestro proyecto y allí abriremos application.ini, que recordamos estaba en: application/configs

Allí introduciremos el siguiente código:

resources.view[]=

dentro de la etiqueta de Production, que recordemos es heredada por todas las demás.
Una vez habilitadas las vistas, iremos al controlador que hemos creado (MiprimerzendController.php) que recordamos esta en: application/Controller

Allí sustituiremos las Acciones que habíamos creado, o mejor dicho su contenido por:

    public function miprimerzendAction()
    {
        $this->view->Titulo = "Esta es mi Primera Pagina con Zend";
        $this->view->Comentario = "Estoy comentando mi Primera Pagina con Zend";
    }
   
    public function miprimeractionAction()
    {
        $this->view->Titulo = "Este es mi Primer Action con Zend";
        $this->view->Comentario = "Estoy comentando Primer Action con Zend";
    }
como podemos ver nos llamamos a nosotros mismos con $this, después a la vista con view, y le damos el nombre de la variable Titulo y Comentario, a lo que le damos un valor (String) mediante el símbolo de "=" igual, terminando en ";"

Ahora iremos a Nuestra plantilla (layouts), y sustituiremos su titulo por este:

        <title>
            <?php
                echo $this->Titulo;
            ?>
        </title>
Lo que hacemos es abrir una etiqueta de php, para poder usar la programación <?php, con su cierre al final ?>; después con el echo imprimimos el Titulo, al llamarlo con el $this->Titulo, al estar en la pagina no es necesario llamar a la vista, así que nos recupera el titulo de la pagina en la que estemos.




Ahora es el momento de ir a nuestras vistas, recordemos que tenemos una para cada pagina, y cada vista esta dentro de una carpeta con el nombre del controlador, así que iremos a: application/views/scripts/miprimerzend

en cada una de las vistas teclearemos el siguiente código

echo $this->Comentario;
Esto no debe tener ningún misterio para nosotros, ya que es el mismo del titulo que acabamos de hacer, pero en lugar de llamar a titulo llamamos a Comentario (recordar que php es sensible a mayúsculas y minúsculas, por lo que no es lo mismo Comentario que comentario)
Si abrimos nuestra web, veremos algo parecido a esto:


Con lo que ya sabemos pasar variables desde el controlador a la vista, sea mediante la plantilla (si queremos que salga siempre esa variable en todas las paginas), o mediante las vistas (para cada pagina en concreto).