Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agregar persona #4

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion index.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
// ===================
Expand Down
169 changes: 169 additions & 0 deletions src/Facultad/FacultadController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
<?php

namespace App\Facultad;

use Silex\Application;
use Silex\ControllerProviderInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

class FacultadController implements ControllerProviderInterface
{

public function connect(Application $app)
{
// creates a new controller based on the default route
$controller = $app['controllers_factory'];

// la ruta "/users/list"
$controller->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;
}

}
114 changes: 110 additions & 4 deletions src/Users/UsersController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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');
Expand All @@ -46,17 +53,116 @@ 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 {
// 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
$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;
}

Expand Down
Loading