Está en la página 1de 4

APLICACIÓN PRACTICA EN YII

Para recodar:

El Modelo es la parte de la aplicación que controla todo el flujo de los datos; y es quien realiza la
comunicación con la Base de datos.

La Vista es la parte de la aplicación que controla el despliegue de la información.

El Controlador es la parte de la aplicación que controla la interacción entre el usuario y la


aplicación

Se va a desarrollar una Aplicación Web para la administración de una Clínica de Especialidades


Médicas

 Los Visitantes del sitio, podrán navegar en el contenido, para obtener información de los
servicios de la clínica
 Los Pacientes podrán registrarse en el sitio para agendar una consulta con alguno de los
médicos o de las áreas de servicio de la clínica
 Los Médicos podrán consultar su agenda, y el historial clínico de los pacientes que atenderá.

La aplicación inicialmente ha sido modificada para que muestre un logo, se ha cambiado el título
del sitio, y se ha establecido un contenido un contenido inicial para la página principal, para lo cual
se han agregado reglas CSS, que dan formato a su presentación.

Se han agregado opciones al menú principal de la aplicación, considerando los alcances


inicialmente planteados.

 Cambio de título de la aplicación: protected\config\main


 En la carpeta de Controllers se puede evidenciar la el SiteController que tiene que ver con toda
la interacción de la aplicación, este controlador renderiza (muestra, reproduce o despliega) la
vista de index
 Cambio del contenido de la página principal: protected\views\site\index.php
 Para cambio de títulos vamos a: css\main
 Para cambio de menú principal: protected\views\layouts\main.php
En este archivo en la parte inferior realizamos los cambios del footer
En la parte del main menú, realizamos los cambios para el menú general de la aplicación
En la parte superior en el header, realizamos los cambios para agregar el logotipo a la
aplicación
 Crear las acciones para los controladores que se han agregado: Nosotros, Especialidades,
Servicios y Paquetes. Esto se hace en el SiteController.php, se copia el código del actionIndex,
y simplemente se cambia el nombre de cada una de las acciones. Esto para crear cada uno de
los controladores
 Luego se debe crear una vista para cada uno de los controladores, y así poderla renderizar, las
vistas se deben agregar en: protected\views\site. Se trabaja el archivo index.php y se guarda
con cada uno de los nombres de las vistas (nosotros, especialidades, servicios y paquetes).
 Se agregan cada una de las vistas y se guardan con el nombre correcto (nosotros,
especialidades, servicios y paquetes) en minúsculas
 Se deben crear las tablas de la base de datos para las especialidades: protected\config\
main.php (para configurar la base de datos) Configurar los parametros de la base datos y del
módulo gii
A. Crear la base de datos
 Tabla usuarios
 tabla especialidades
 tabla paquetes (tabla maestro)
 tabla servicios
 tabla usuarios
 tabla paquete servicios (tabla detalle): ID – Nombre – Paquete (FK)
B. Ir al archivo main.php (protected\config\main.php) y realizar los cambios pertinentes para la
base de datos
 Comentar las líneas 53 a 55 de la conexión a la bd de sqlite
 Borrar las líneas 61 a 66 y reemplazarlas por las líneas de la bd mysql
 Tener cuidado con los paréntesis y ;
C. Ir a la línea 23 y descomentar el código para la herramienta gii. No olvidar cambiar el password
D. Ahora se debe activar la librería gii: http://localhost/yii/clinica/index.php?r=gii
E. Recordar el password para ingresar a la aplicación
F. Se genera en primer lugar los modelos para la tabla: tb_usuarios
G. Ahora se generan la vista y el controlador para este modelo. Clic en la opción CRUD y en el
nombre del modelo se emplea Usuarios
H. Se hace exactamente lo mismo para la tabla: especialidades. Y se crean la vista y el
controlador para este modelo

Ahora vamos al archivo del menú: protected\views\layouts\main.php, y en este archivo se hacen


los cambios de cada uno de los controladores para que muestren la información que se quiere, por
ejemplo array('label'=>'Especialidades', 'url'=>array('/especialidades')),

 Se deben realizar los pasos anteriores paso a paso para las tablas servicios y paquetes

NOTA: Si se quiere cambiar la forma de login se accede al archivo: clinica\protected\components\


UserIdentity. En este archivo se pueden cambiar los password para acceder como administrador

NOTA: Para cambiar el parámetro Required de los campos mostrados en la base de datos se debe
acceder a los modelos protected\models\Usuarios, y en la parte de public function rules() se
encuentran estos parametros, si se quiere se copia este código a cada modelo y así serán
requeridos (se puede cambiar la longitud de cada uno de los campos). Esto se puede hacer en
cada modelo

 Para controlar la cantidad de registros que se muestran en cada una de las vistas, se accede a
una de las vistas y se agrega el código al final. Por ejemplo a la vista tbEspecialidades en el
archivo index.php

//Esta instrucción hace que se despliegue 4 registros por página


$dataProvider->pagination->pageSize = 4;
 Se deben hacer los cambios respectivos en la tabla usuario para agregar el rol
Se agrega el campo rol (varchar de longitud 3)
 Luego se realizan los cambios en el archivo protected\components\UserIdentity.php, para
que los usuarios ingresen con privilegios
 Luego se realizan los cambios protected\controllers\EspecialidadesController.php, para los
privilegios de los usuarios, los cambios se realizan en la función public function accessRules()
 Para cambiar el color de cada uno de los diferentes tipos de usuarios, se debe abrir el archivo
protected\views\layouts\main.php y realizar los cambios pertinentes para el funcionamiento
 Luego abrir la carpeta de los css y agregar los estilos para cambiar los estilos de fondo de cada
tipo de usuario

Vamos a modificar el menú principal y a cambiar las opciones de registro de cada uno de los tipos
de usuarios, para que cada uno vea un menú diferente. Quitar la opción ABOUT

Igualmente se permitirá el registro de los usuarios como pacientes de la clínica desde el menú
principal de la aplicación.

Grabar directamente en dos tablas y validar los datos de entrada de la información

 En la tabla Usuarios debemos eliminar el campo email, luego ir a cada uno de los archivos
generados por el CRUD y eliminar la información pertinente a esta tabla (7 vistas generadas
desde el index, el modelo y el controlador)
 Primero debemos crear una nueva tabla en la base de datos llamada Pacientes.
 Se debe crear una tabla Estado Civil con los campos (estado número y estado descripción), con
esta tabla estaremos validando los campos
 A esta tabla le debemos generar el modelo y luego el CRUD tal cual como se hizo con cada una
de las tablas anteriores. Los campos de la tabla pueden ser: numero, id_paciente, clave,
nombres, apellidos, dirección, teléfono, email, celular, email, edad, sexo y estado civil
 Se genera en primer lugar el modelo para la tabla pacientes
 Ahora se generan la vista y el controlador para este modelo. Clic en la opción CRUD y en el
nombre del modelo se emplear Pacientes

Para cambiar el menú de acuerdo a cada uno de los tipos de usuarios debemos ingresar al archivo:
protected\vistas\layout\main.php, y realizar los cambios respectivos

1. En el main menu se realizan los cambios con un una condición if, y luego se modifica el menú
para agregar la opción de registro de acuerdo al tipo de usuario

Para realizar los cambios generales debemos hacerlo en cada uno de los archivos generados por el
CRUD (modelo, vista y controlador), de esta manera nos evitamos volver a generar el CRUD una y
otra vez, y es una práctica ideal para manipular el framework

1. En la tabla PACIENTES, llenamos los respectivos datos para cada uno de los registros.
Verificamos desde la aplicación que cambios se generan.

http://localhost:8080/yii/clinica/index.php?r=Pacientes
2. Para poder visualizar este último campo que se agregó debemos realizar los siguientes
cambios en los archivos de la aplicación de la siguiente manera:
A. Primero vamos al controlador de la tabla PACIENTES:
protected/controllers/PacientesController y verificamos que no hay nada que modificar,
porque no hay información de las columnas que aparecen en la tabla. Lo que si debemos
hacer es especificar los permisos de acceso a los usuarios como se hizo anteriormente.
B. Ahora nos dirigimos al modelo: protected/models/Pacientes.php:
 En las líneas de los comentarios es aconsejable comentar los cambios realizados en la
tabla o campos de la base de datos. Acá se agrega el comentario del campo email
 En las siguientes líneas que se ubican el función public function attributeLabels() se
realiza los cambios respectivos.
 Luego en la función $criteria=new CDbCriteria; se deben hacer los cambios para
agregar el campo de email
 Ahora debemos ir a la vista para poder renderizarla y los cambios surjan efecto,
primero ingresamos al archivo protected/views/pacientes/form.php, en este archivo
se observa un div para cada uno de los campos de la tabla. Debemos hacer lo mismo
para el campo email.
 Al revisar la vista, nos damos cuenta que el campo email ya aparece en la vista, pero
no es requerido (*)
 Para indicar que este campo sea requerido debemos volver al modelo y realizar los
respectivos cambios en protected/models/Pacientes.php y hacemos el cambio en la
reglas de captura en la función public function rules(), donde agregamos el campo
email en la primer línea del código.
 Ahora volvemos a las vistas y agregamos el campo en
protected/views/pacientes/search.php como se hizo en la vista form.php
 Se hace igual en cada una de las vistas. (En algunos casos están comentados pero se
deben hacer los cambios) No se hacen cambios en el create.php, index.php,
update.php
 En este momento se deben crear los privilegios de acceso para cada uno de los
usuarios para poder visualizar todas las opciones del manage. Se hacen en el archivo
protected/controllers/PacientesController
C. Ahora vamos a ver como se realizan las validaciones de ingreso de los datos. Esta
validación se realiza en el archivo protected/models/Pacientes.php, en la función public
function rules()
 Para más ayuda de las validaciones en la ayuda del framework se busca el CValidator,
y allí hay más información
D. Ahora vamos a ver como se graban los datos en la base de datos, para eso vamos al
controlador, al archivo: protected/controllers/PacientesController

También podría gustarte