Que sabes de GNU/Linux?

lunes, 5 de enero de 2009

LISTA CON PHP - users -tipousers

Controlador es el siguiente

class UsersController extends AppController{
var $name = 'Users';
var $helpers=array('Html','Form','Ajax');
var $uses = array('Tipouser','User');
var $displayField = "tipousers";

function index($order = null){

SWITCH($order){
CASE 1:
$this->set("users",$this->User->findAll(null,null,'username',null,null,null));
break;
CASE 2:
$this->set("users",$this->User->findAll(null,null,'created',null,null,null));
break;
default:
$this->set("users",$this->User->findAll());
}
}

function insertdddw(){
//$this->set('tipouser',Set::combine($listtipuser, "{n}.Tipouser.id","{n}.Tipouser.descripcion"));
$this->set('tipouser',$this->Tipouser->findAll());
}

/*
*Funcion: siempre que el usuario se encuentre correctamente logueado en el sistema
*/
function beforeFilter(){
$this->__validateLoginStatus();
}

/*
*Funcion: permite validar que los datos del usuario son correctos
*/
function login(){
if(empty($this->data)==false){
if(($user = $this->User->validateLogin($this->data['User'])) == true){
$this->Session->write('User',$user);
$this->Session->setFlash('Ingreso al Sistema Satisfactoriamente');
$this->redirect('index');
exit();
}else{

$this->Session->setFlash('Disculpe, su login o password son incorrectos');
//$this->redirect('login');
//exit();
}
}
}

/*
* Funcion: Permite realizar al borrado de la sesion en el sistema
*/
function logout(){
$this->Session->destroy('user');
$this->Session->setFlash('El usuario se desconecto Satisfactoriamente');
$this->redirect('login');
}

function __validateLoginStatus(){
if($this->action != 'login' && $this->action != 'logout'){
if($this->Session->check('User')==false){
$this->redirect('login');
$this->Session->SetFlash('La direccion que quiere ingresar requiere de logueo en el sistema');
}
}
}


/*
* Funcion: agregar nuevo usuario retorna al indice principal
*/
function add(){
if(!empty($this->data)){
/*Validamos que el usuario no exista ya en el sistema*/
if($this->User->findByUsername($this->data['User']['username'])){
$this->User->invalidate('username');
$this->Session->SetFlash('El Nombre de usuario ingresado ya existe');
}else{
/*validamos el correo electronico*/
if($this->User->findByEmail($this->data['User']['email'])){
$this->User->invalidate('email');
$this->Session->SetFlash('El E-Mail ya fue registrado para otro usuario');
}else{

/*encryptamos el password con md5*/
$this->data['User']['password']=md5($this->data['User']['password']);
if($this->User->save($this->data)){
$this->flash('Los datos Fueron Guardados Ok','/users/');
}
}
}
}
}

/*
*Funcion: permite ver los datos de los usuarios del sistema
*/
function verdatos($id = null){
if($id <> null){
$this->User->id=$id;
$this->set('users',$this->User->read());
}else{
exit();
}
}

/*
*Funtion: permite realizar la modificacion de un archivo determinado
*/
function editar($id=null){
$this->User->id = $id;
if(empty($this->data)){
$this->insertdddw();
$this->data = $this->User->read();
$tipo_user = $this->Tipouser->find("list", array("fields"=>array("Tipouser.id","Tipouser.descripcion")));
$this->set("tipousers",$tipo_user);
}else{
if($this->User->save($this->data)){
$this->flash('Los Datos Fueron Modificados Satisfactoriamente','/users/');
}
}
}
}

?>

La vista es la siguiente
Editar Datos del Usuario

echo $form->create('User',array('action'=>'editar'));
echo $form->input('username',array('label'=>'Usuario'));
echo $form->input('email',array('label'=>'E-Mail'));
echo $form->input('tipousers_id');

echo $form->end('Guardar Cambios');
echo $html->link('Volver Atras','/users/');

$options = array('url' => 'insertdddw','update' => 'username');
echo $ajax->observeField('tipouser',$options);

?>


Es importante agregar esto en el controlador
var $displayField = "tipousers";
Las tablas son estas

mysql> DESCRIBE users;
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(30) | NO | | | |
| password | varchar(40) | NO | | | |
| email | varchar(40) | NO | | | |
| created | datetime | YES | | NULL | |
| tipousers_id | smallint(6) | YES | | NULL | |
+--------------+------------------+------+-----+---------+----------------+

+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| descripcion | varchar(50) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+

Esto es todo muy simple eh???

No hay comentarios:

Publicar un comentario