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 %} -