Introducción.
- Son archivos PHP convencionales.
- Pueden incluír elementos de interfaz de usuario basados en Yii.
- Se recomienda que las vistas accedan a la información de los modelos pero que no los modifiquen.
- Deben permanecer lo mas simples posibles, lógicas complejas deberían llevarse hasta el controlador.
- El nombre del archivo donde se almacena la vista corresponde con el identificador junto con la extensión .php.
- La vista edit se almacenará en el archivo edit.php.
- Los archivos de las vistas se almacenan bajo la ruta protected/views/<Identificador del controlador>.
- Desde la vista es posible acceder a los atributos del controlador a través del objeto $this.
- Para procesar una vista se debe invocar el método CController::render(<Identificador de vista>).
- Es posible pasar explícitamente información desde el controlador a la vista en el momento de su generación.
$this -> render('edit', array ( 'variable1' => $valor1, 'variable2' => $valor2 ));- En la vista edit se podrá acceder a $variable1 y $variable2 como variables convencionales.
Layouts (diseños).
- El layout permite especificar el diseño común y constante de la interfaz de usuario.
- Evita la necesidad de agregar elementos comúnes (archivos javascript y css, título, subtítulo, menú izquierdo, pies, etc) a todas las páginas en cada una de ellas.
- El layout aplica a todo el sitio web y se aplica automáticamente al invocar el método render.
- Para generar una vista sin el layout es necesario utilizar el método renderPartial.
- El layout utilizado por defecto se encuentra en views/layouts/main.php.
- Es posible modificar esto alterando CWebApplication::layout para toda la aplicación o CController::layout para todas las acciones del controlador.
- En el layout se debe incluír la variable $content para especificar la ubicación en la que se agregará el contenido de la vista específica al controlador/acción ejecutado (parte no constante de la interfaz de usuario).
Widgets.
- Los widgets son componentes predefinidos para la presentación de la interfaz de usuario.
- Generalmente agregan una funcionalidad gráfica compleja, específica y autocontenida.
- Heredan de CWidget.
- Su forma de invocarlos depende de si tienen o no contenido en su cuerpo.
- Sin contenido en su cuerpo.
<? php $this -> widget('ruta.a.la.ClaseWidget'); ?> - Con contenido en su cuerpo.
<? php $this -> beginWidget('ruta.a.la.ClaseWidget'); ?> ... contenido del cuerpo del Widget ... <? php $this -> endWidget(); ?>
- Sin contenido en su cuerpo.
- Es posible definir valores iniciales para los atributos del Widget durante su invocación con widget o beginWidget.
$this -> widget('CMaskedTextField', array ( 'mask' => '99/99/9999' ));
Creación de nuevos Widgets.
- El nuevo widget debe heredar de CWidget e implementar los métodos init y run.
class NuevoWidget extends CWidget { public function init() { // Invocado por CController::beginWidget(). } public function run() { // Invocado por CController::endWidget(). } } - Tienen sus propias vistas y se ubican por defecto en el directorio views bajo el directorio que contiene la clase del widget.
- Estas vistas se generan invocando CWidget::render().
Vistas del sistema.
- Estas vistas se utilizan para mostrar errores del sistema o información de registro.
- Las excepciones de HTTP (CHTTPException) se despliegan con las vistas errorXXX donde XXX es el código del error HTTP generado.
- Las vistas por defecto provistas por Yii se ubican en framework/views y pueden personalizarse definiéndolas en protected/views/system.
Enlaces.
- Yii Web Programming Framework.
http://www.yiiframework.com/ - Yii Documentation.
http://www.yiiframework.com/doc/
No hay artículos relacionados.
























