Diferencia entre revisiones de «Clase Online»

De KumbiaPHP Framework Wiki
Línea 65: Línea 65:
  
 
En esta parte cada programador puede mostrar los datos como quiera. solo deben hacer una consulta y recorrer el modelo con un foreach para poder crear una tabla. Yo lo haré con el  [[Helper_Datagrid]] y [[JQuery_UI_en_Kumbiaphp_Spirit_beta2_calendar]]
 
En esta parte cada programador puede mostrar los datos como quiera. solo deben hacer una consulta y recorrer el modelo con un foreach para poder crear una tabla. Yo lo haré con el  [[Helper_Datagrid]] y [[JQuery_UI_en_Kumbiaphp_Spirit_beta2_calendar]]
 +
 +
*Primero crear un controller
 +
utils_controller.php
 +
<source lang=php>
 +
    public function logs(){
 +
        Flash::info('Logs del sistema. Fecha hora: ' . date("d-m-Y H:m:s"));
 +
        //Dialog::error('Hola Mundo');
 +
        $this->fecha    =  date('d-m-Y');
 +
        $this->items    =  array();
 +
        if(Input::hasPost('fecha')){
 +
            $fecha          =  Input::post('fecha');
 +
            $this->items    =  Load::model('logs')->getLogs($fecha);
 +
            //$this->items    =  Load::model('vlogs')->find("fecha_in = '" . "$fecha" . "'");
 +
            $this->fecha    =  Input::post('fecha');
 +
        }
 +
    }
 +
</source>

Revisión del 00:26 21 jun 2010

Descripción

La clase online lo que hace es crear un registro del tiempo de conección para usuario logeado, para esto vamos asumir que ya tenemos nuestra tabla usuarios más una tabla de perfiles "roles", Tambien la forma de obtener los id de usuarios conectados, habra que crear una variable de session con la class Session y poder almacenar los valores en la tabla logs.

Tablas

Lo primero es crear nuestra tabla logs

CREATE TABLE  `logs` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `usuarios_id` int(4) DEFAULT NULL,
  `fecha_at` datetime DEFAULT NULL,
  `fecha_in` datetime DEFAULT NULL,
  `ip` varchar(16) CHARACTER SET latin1 DEFAULT NULL,
  `perfiles_id` int(4) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8


clase online

Esta class es de tipo estatica y la creamos como una libreria en nuestra app. "apps/libs/online.php"

class Online{
    static  function setUser(){
        Load::model('logs');
        $last_id                 =      Session::get('logs_id');
        $rec                     =      new Logs();
        $rec->find($last_id);
        $rec->usuarios_id        =      Session::get('usuarios_id');
        $rec->perfiles_id        =      Session::get('perfiles_id');
        $rec->ip                 =      $_SERVER['REMOTE_ADDR'];
        $rec->save();
        if(ActiveRecord::static_select_one("LAST_INSERT_ID()")!=0)
            Session::set('logs_id', ActiveRecord::static_select_one("LAST_INSERT_ID()"));
    }
}

Forma de uso

Con esto ya estamos listo para que nuestra app comienze almacenar datos en la base. Entonces el primer paso es crear las dos varianles de sesion "usuarios_id" y "perfiles_id", para esto la mejor forma es cuando el usuario se autentifique en el sistema "LOGIN" la creamos,

Session::set('usuarios_id', $usuarios->id);
Session::set('perfiles_id', $usuarios->perfiles_id);

y en el archivo application.php creamos un initialize de esta manera.


    public function initialize (){
        //si login esta ok
	if (....){
	    Load::lib('online');
	    Online::setUser();
        }
    }

Mostrar los datos

En esta parte cada programador puede mostrar los datos como quiera. solo deben hacer una consulta y recorrer el modelo con un foreach para poder crear una tabla. Yo lo haré con el Helper_Datagrid y JQuery_UI_en_Kumbiaphp_Spirit_beta2_calendar

  • Primero crear un controller

utils_controller.php

    public function logs(){
        Flash::info('Logs del sistema. Fecha hora: ' . date("d-m-Y H:m:s"));
        //Dialog::error('Hola Mundo');
        $this->fecha    =   date('d-m-Y');
        $this->items    =   array();
        if(Input::hasPost('fecha')){
            $fecha          =   Input::post('fecha');
            $this->items    =   Load::model('logs')->getLogs($fecha);
            //$this->items    =   Load::model('vlogs')->find("fecha_in = '" . "$fecha" . "'");
            $this->fecha    =   Input::post('fecha');
        }
    }