diff --git a/index.php b/index.php index b1c8c64..54f0210 100644 --- a/index.php +++ b/index.php @@ -25,8 +25,9 @@ // Controladores por cada módulo // ============================= -$app->mount('login', new App\Login\LoginController()); +$app->mount('/login', new App\Login\LoginController()); $app->mount('/users', new App\Users\UsersController()); +$app->mount('/Facultad',new App\Facultad\FacultadController()); // Corre la Aplicación // =================== diff --git a/src/Facultad/FacultadController.php b/src/Facultad/FacultadController.php new file mode 100644 index 0000000..99b13cc --- /dev/null +++ b/src/Facultad/FacultadController.php @@ -0,0 +1,169 @@ +get('/list', function() use($app) { + + // obtiene el nombre de usuario de la sesión + $user = $app['session']->get('user'); + + // obtiene el listado de usuarios + $use = $app['session']->get('use'); + if (!isset($use)) { + $use = array(); + } + + // ya ingreso un usuario ? + if ( isset( $user ) && $user != '' ) { + // muestra la plantilla + return $app['twig']->render('Users/users.list.html.twig', array( + 'user' => $user, + 'use' => $use + )); + + } else { + // redirige el navegador a "/login" + return $app->redirect( $app['url_generator']->generate('login')); + } + + // hace un bind + })->bind('users-list'); + + // la ruta "/users/new" + $controller->get('/new', function() use($app) { + + // obtiene el nombre de usuario de la sesión + $user = $app['session']->get('user'); + + // ya ingreso un usuario ? + if ( isset( $user ) && $user != '' ) { + // muestra la plantilla + return $app['twig']->render('Users/users.edit.html.twig', array( + 'user' => $user, + 'index' => '', + 'user_to_edit' => array( + 'id' => '', + 'nombre' => '', + 'decano' => '', + 'email' => '', + 'sitio' => '' + ) + )); + + } else { + // redirige el navegador a "/login" + return $app->redirect( $app['url_generator']->generate('login')); + } + + // hace un bind + })->bind('users-new'); + + // la ruta "/users/edit" + $controller->get('/edit/{index}', function($index) use($app) { + + // obtiene el nombre de usuario de la sesión + $user = $app['session']->get('user'); + + // obtiene los usuarios de la sesión + $use = $app['session']->get('use'); + if (!isset($use)) { + $use = array(); + } + + // no ha ingresado el usuario (no ha hecho login) ? + if ( !isset( $user ) || $user == '' ) { + // redirige el navegador a "/login" + return $app->redirect( $app['url_generator']->generate('login')); + + // no existe un usuario en esa posición ? + } else if ( !isset($use[$index])) { + // muestra el formulario de nuevo usuario + return $app->redirect( $app['url_generator']->generate('users-new') ); + + } else { + // muestra la plantilla + return $app['twig']->render('Users/users.edit.html.twig', array( + 'user' => $user, + 'index' => $index, + 'user_to_edit' => $use[$index] + )); + + } + + // hace un bind + })->bind('users-edit'); + + $controller->post('/save', function( Request $request ) use ( $app ){ + + // obtiene los usuarios de la sesión + $use = $app['session']->get('use'); + if (!isset($use)) { + $use = array(); + } + + // index no está incluido en la petición + $index = $request->get('index'); + if ( !isset($index) || $index == '' ) { + // agrega el nuevo usuario + $use[] = array( + 'id' => $request->get('id'), + 'nombre' => $request->get('nombre'), + 'decano' => $request->get('decano'), + 'email' => $request->get('email'), + 'sitio' => $request->get('sitio') + ); + } else { + // modifica el usuario en la posición $index + $use[$index] = array( + 'id' => $request->get('id'), + 'nombre' => $request->get('nombre'), + 'decano' => $request->get('decano'), + 'email' => $request->get('email'), + 'sitio' => $request->get('sitio') + ); + } + + // actualiza los datos en sesión + $app['session']->set('use', $use); + + // muestra la lista de usuarios + return $app->redirect( $app['url_generator']->generate('users-list') ); + })->bind('users-save'); + + $controller->get('/delete/{index}', function($index) use ($app) { + + // obtiene los usuarios de la sesión + $use = $app['session']->get('use'); + if (!isset($use)) { + $use = array(); + } + + // no existe un usuario en esa posición ? + if ( isset($use[$index])) { + unset ($use[$index]); + $app['session']->set('use', $use); + } + + // muestra la lista de usuarios + return $app->redirect( $app['url_generator']->generate('users-list') ); + + })->bind('users-delete'); + + return $controller; + } + +} \ No newline at end of file diff --git a/src/Users/UsersController.php b/src/Users/UsersController.php index 1af4c26..0271328 100644 --- a/src/Users/UsersController.php +++ b/src/Users/UsersController.php @@ -21,11 +21,18 @@ public function connect(Application $app) // obtiene el nombre de usuario de la sesión $user = $app['session']->get('user'); + // obtiene el listado de usuarios + $users = $app['session']->get('users'); + if (!isset($users)) { + $users = array(); + } + // ya ingreso un usuario ? if ( isset( $user ) && $user != '' ) { // muestra la plantilla return $app['twig']->render('Users/users.list.html.twig', array( - 'user' => $user + 'user' => $user, + 'users' => $users )); } else { @@ -36,8 +43,8 @@ public function connect(Application $app) // hace un bind })->bind('users-list'); - // la ruta "/users/edit" - $controller->get('/edit', function() use($app) { + // la ruta "/users/new" + $controller->get('/new', function() use($app) { // obtiene el nombre de usuario de la sesión $user = $app['session']->get('user'); @@ -46,7 +53,15 @@ public function connect(Application $app) if ( isset( $user ) && $user != '' ) { // muestra la plantilla return $app['twig']->render('Users/users.edit.html.twig', array( - 'user' => $user + 'user' => $user, + 'index' => '', + 'user_to_edit' => array( + 'nombre' => '', + 'apellido' => '', + 'direccion' => '', + 'email' => '', + 'telefono' => '' + ) )); } else { @@ -54,9 +69,100 @@ public function connect(Application $app) return $app->redirect( $app['url_generator']->generate('login')); } + // hace un bind + })->bind('users-new'); + + // la ruta "/users/edit" + $controller->get('/edit/{index}', function($index) use($app) { + + // obtiene el nombre de usuario de la sesión + $user = $app['session']->get('user'); + + // obtiene los usuarios de la sesión + $users = $app['session']->get('users'); + if (!isset($users)) { + $users = array(); + } + + // no ha ingresado el usuario (no ha hecho login) ? + if ( !isset( $user ) || $user == '' ) { + // redirige el navegador a "/login" + return $app->redirect( $app['url_generator']->generate('login')); + + // no existe un usuario en esa posición ? + } else if ( !isset($users[$index])) { + // muestra el formulario de nuevo usuario + return $app->redirect( $app['url_generator']->generate('users-new') ); + + } else { + // muestra la plantilla + return $app['twig']->render('Users/users.edit.html.twig', array( + 'user' => $user, + 'index' => $index, + 'user_to_edit' => $users[$index] + )); + + } + // hace un bind })->bind('users-edit'); + $controller->post('/save', function( Request $request ) use ( $app ){ + + // obtiene los usuarios de la sesión + $users = $app['session']->get('users'); + if (!isset($users)) { + $users = array(); + } + + // index no está incluido en la petición + $index = $request->get('index'); + if ( !isset($index) || $index == '' ) { + // agrega el nuevo usuario + $users[] = array( + 'nombre' => $request->get('nombre'), + 'apellido' => $request->get('apellido'), + 'direccion' => $request->get('direccion'), + 'email' => $request->get('email'), + 'telefono' => $request->get('telefono') + ); + } else { + // modifica el usuario en la posición $index + $users[$index] = array( + 'nombre' => $request->get('nombre'), + 'apellido' => $request->get('apellido'), + 'direccion' => $request->get('direccion'), + 'email' => $request->get('email'), + 'telefono' => $request->get('telefono') + ); + } + + // actualiza los datos en sesión + $app['session']->set('users', $users); + + // muestra la lista de usuarios + return $app->redirect( $app['url_generator']->generate('users-list') ); + })->bind('users-save'); + + $controller->get('/delete/{index}', function($index) use ($app) { + + // obtiene los usuarios de la sesión + $users = $app['session']->get('users'); + if (!isset($users)) { + $users = array(); + } + + // no existe un usuario en esa posición ? + if ( isset($users[$index])) { + unset ($users[$index]); + $app['session']->set('users', $users); + } + + // muestra la lista de usuarios + return $app->redirect( $app['url_generator']->generate('users-list') ); + + })->bind('users-delete'); + return $controller; } diff --git a/views/Users/users.edit.html.twig b/views/Users/users.edit.html.twig index d7415ab..6c58055 100644 --- a/views/Users/users.edit.html.twig +++ b/views/Users/users.edit.html.twig @@ -4,33 +4,39 @@ {% block body %} -
+ + + +
- Crear o Editar Usuario + Crear o Editar Facultad
- +
+ name="id" value="{{ user_to_edit.id }}" + placeholder="nombre del usuario" required="">
- +
+ name="nombre" value="{{ user_to_edit.nombre }}" + placeholder="apellido del usuario" required="">
- +
+ name="decano" value="{{ user_to_edit.decano }}" + placeholder="dirección del usuario" required="">
@@ -38,15 +44,17 @@
+ name="email" value="{{ user_to_edit.email }}" + placeholder="correo electrónico" required="">
- +
+ name="sitio" value="{{ user_to_edit.sitio }}" + placeholder="teléfono del usuario" required="">
@@ -54,8 +62,10 @@
- - + + + +
diff --git a/views/Users/users.list.html.twig b/views/Users/users.list.html.twig index 5c83264..c0a0cc3 100644 --- a/views/Users/users.list.html.twig +++ b/views/Users/users.list.html.twig @@ -8,18 +8,18 @@
- LIsta de Usuarios + Lista de Facultades
+ - - + - + @@ -27,27 +27,33 @@ + {% for index, u in use %} - - - - - + + + + + + {% endfor %} diff --git a/views/inicio.html.twig b/views/inicio.html.twig index 6d31648..bb3a15d 100644 --- a/views/inicio.html.twig +++ b/views/inicio.html.twig @@ -5,8 +5,8 @@ {% block body %}
-

Aplicación de Ejemplo

-

La mejor aplicación!

+

FACULTADES

+

Lista de facultades

{% endblock %} \ No newline at end of file diff --git a/views/layout.html.twig b/views/layout.html.twig index 94c0a3f..cc0ff76 100644 --- a/views/layout.html.twig +++ b/views/layout.html.twig @@ -41,8 +41,8 @@ Usuarios
ID NombreApellidoDirecciónDecano EmailTeléfonoSitio Web Editar Borrar
MohsinIrshadCB 106/107 Street # 11 Wah Cantt Islamabad Pakistanisometric.mohsin@gmail.com+923335586757{{ u.id }}{{ u.nombre }}{{ u.decano }}{{ u.email }}{{ u.sitio }}

- + + +

- + + +