Edición de «Usando las Vistas»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
== Vistas ==
 
 
 
En este tutorial se demostrarán las posibilidades que ofrece KumbiaPHP para el uso de las vistas, como deben ser creadas, su formato, diferentes tipos de resultados en la vistas, entre otras funcionalidades.
 
En este tutorial se demostrarán las posibilidades que ofrece KumbiaPHP para el uso de las vistas, como deben ser creadas, su formato, diferentes tipos de resultados en la vistas, entre otras funcionalidades.
 
  
 
=== Creando una Vista ===
 
=== Creando una Vista ===
Línea 8: Línea 5:
 
Las vistas en kumbiaphp son archivos con extensión .phtml , los cuales por convención llevan el mismo nombre que el nombre de la acción en el controlador, y dicha vista debe ir en una carpeta con igual nombre al de la clase controladora. con un ejemplo quedará mas claro:
 
Las vistas en kumbiaphp son archivos con extensión .phtml , los cuales por convención llevan el mismo nombre que el nombre de la acción en el controlador, y dicha vista debe ir en una carpeta con igual nombre al de la clase controladora. con un ejemplo quedará mas claro:
  
===== Controlador usuario_controller.php =====
 
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 26: Línea 22:
 
El controlador llamado '''usuario_controller.php''' del cual nos interesa solo la parte antes del '''_controller.php''', es decir la palabra '''usuario''', el cual debe ser el nombre de la carpeta en views donde estarán alojadas cada una de las vistas (archivos .phtml) para esté controlador:
 
El controlador llamado '''usuario_controller.php''' del cual nos interesa solo la parte antes del '''_controller.php''', es decir la palabra '''usuario''', el cual debe ser el nombre de la carpeta en views donde estarán alojadas cada una de las vistas (archivos .phtml) para esté controlador:
  
===== Vista hola.phtml =====
 
 
<source lang=php>
 
<source lang=php>
 
<h1>Soy la vista de la acción '''hola''' del controlador '''usuario_controller'''</h1>
 
<h1>Soy la vista de la acción '''hola''' del controlador '''usuario_controller'''</h1>
 
 
<?php View::content(); //muy importante siempre colocar esta linea en alguna parte de la vista. ?>
 
<?php View::content(); //muy importante siempre colocar esta linea en alguna parte de la vista. ?>
 
 
</source>
 
</source>
  
 
Nuestra vista '''hola.phtml''' se encuentra en la carpeta '''views/usuario/hola.phtml''' donde views es la carpeta donde deben ir todos los archivos que representen vistas, la carpeta usuario es la que contiene las vistas para el controlador usuario_controller.php y el archivo hola.phtml es la vista correspondiente al metodo/acción hola de dicho controlador.
 
Nuestra vista '''hola.phtml''' se encuentra en la carpeta '''views/usuario/hola.phtml''' donde views es la carpeta donde deben ir todos los archivos que representen vistas, la carpeta usuario es la que contiene las vistas para el controlador usuario_controller.php y el archivo hola.phtml es la vista correspondiente al metodo/acción hola de dicho controlador.
 
 
=== Dejar de usar una vista ===
 
 
Aveces tenemos acciones que no necesitan mostrar nada al usuario, si no que solo se encargan de realizar un proceso y redireccionan la petición a otra parte de la aplicación, un ejemplo de ello puede ser el método eliminar de un [[http://es.wikipedia.org/wiki/CRUD CRUD]] donde solo se realiza el proceso de eliminar un registro de una base de datos y luego se redirecciona la petición al método listar del controlador.
 
 
Ahora para decirle a una acción que no vamos a usar ninguna vista solo debemos llamar al método '''View::select(NULL);''' con esto le estamos diciendo al framework que no intente mostrar ninguna vista luego de ejecutar la acción del controlador:
 
 
===== Controlador usuario_controller.php =====
 
<source lang=php>
 
<?php
 
 
//archivo usuario_controller.php
 
 
class UsuarioController extends AppController
 
{
 
    public function hola()
 
    {
 
        View::select(NULL); //esta linea puede ir en cualquier parte de la vista.
 
        //código de la acción
 
    }
 
}
 
</source>
 
 
 
=== Usando una vista con nombre distinto al de la acción ===
 
 
Aveces tenemos vistas que son casi ó exactamente iguales para varias acciones en un controlador. un ejemplo de ello puede ser la vista crear y editar de un CRUD en una aplicación. Para estos caso puede ser útil reutilizar la misma vista en las dos acciónes.
 
 
En el siguiente ejemplo crearemos un controlador con dos acciones '''crear''' y '''editar''' las cuales mostrarán un formulario que será el mismo para los dos casos:
 
 
===== Vista crear.phtml =====
 
<source lang=php>
 
<h1><?php echo $titulo; //titulo es una variable que enviamos desde el controlador. ?></h1>
 
 
<?php View::content(); //muy importante siempre colocar esta linea en alguna parte de la vista. ?>
 
 
<?php echo Form::open(); ?>
 
<label>Nombre: <?php echo Form::text("form.nombre"); ?></label>
 
<label>Correo: <?php echo Form::text("form.correo"); ?></label>
 
<label>Sexo: <?php echo Form::select("form.sexo",array("Masculino","Femenino")); ?></label>
 
<?php echo Form::submit("Enviar Formulario"); ?> <?php echo Form::reset("Limpiar Datos"); ?>
 
<?php echo Form::close(); ?>
 
 
</source>
 
 
Creamos una vista llamada crear.phtml en '''views/usuario/crear.phtml''' la cual contiene un formulario con tres campos, como se puede observar el título para dicha vista es dinámico y viene dado por el valor que le asignemos en el controlador, se ha creado así para poder rehusar la vista en varias acciones.
 
 
===== Controlador usuario_controller.php =====
 
<source lang=php>
 
<?php
 
 
//archivo usuario_controller.php
 
 
class UsuarioController extends AppController
 
{
 
    public function crear()
 
    {
 
        $this->titulo = 'Crear Usuario'; //enviamos una variable para el título de la página
 
        //código de la acción
 
    }
 
 
    public function editar($id)
 
    {
 
        View::select("crear");
 
        $this->titulo = 'Editar Usuario'; //enviamos una variable para el título de la página
 
        //código de la acción
 
    }
 
}
 
</source>
 
 
Ahora tenemos el código del controlador usuarios_controller.php, en el cual hay dos acciónes una llamada crear y otra editar, la ultima recibe un parámetro, el cual es el id del registro a editar. En la vista editar hemos hecho uso del método View::select("crear"); con lo cual le estamos diciendo al framework que la vista que la acción editar usará será crear.phtml y no editar.phtml, ademas estamos asignando un título diferente en la variable.
 
 
 
=== Usando diferentes vistas en una misma Acción ===
 
 
==== Usando una vista para Ajax ====
 
 
==== Usando una vista para errores ====
 
 
==== Usando una vista para PDF ====
 
 
== Templates ==
 
 
=== Cambiar de Template ===
 
 
==== Cambio para una acción del controlador ====
 
 
==== Cambio para todas las acciones de un controlador ====
 
<source lang=php>
 
<?php
 
 
//archivo usuario_controller.php
 
 
View::template("backend"); //este método siempre se ejecutará al cargar el controlador, para todas las acciones.
 
 
class UsuarioController extends AppController
 
{
 
    public function before_filter()
 
    {
 
        View::template("backend"); //acá tambien se puede colocar, ya que el before_filter siempre se ejecuta al cargar un controller.
 
    }
 
 
    public function hola()
 
    {
 
        //código de la acción
 
    }
 
 
    public function mensaje()
 
    {
 
        //código de la acción
 
    }
 
 
    public function crear()
 
    {
 
        //código de la acción
 
    }
 
 
    public function editar()
 
    {
 
        //código de la acción
 
    }
 
 
    public function eliminar()
 
    {
 
        View::template("otro_template");//este método usa un template especial
 
    }
 
}
 
 
</source>
 
 
=== No usar el Template ===
 
 
----
 
 
Realizado por: Manuel Aguirre (manuel_j555)
 
 
[[Categoría:Tutoriales KumbiaPHP]]
 
[[Categoría:Tutoriales KumbiaPHP Beta2]]
 

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)