v2.x Registro de usuarios Online

Tema en 'Mods' iniciado por kriollo, el 13 Oct 2017.

Tags:
  1. kriollo

    kriollo New Member

    Registrado:
    30 Sep 2017
    Mensajes:
    29
    Me Gusta recibidos:
    6
    Puntos de trofeo:
    3
    Género:
    Masculino
    Profesión:
    Ingenierio en Redes e Informática
    País:
    Chile
    Página Inicial:
    Nombre: Registro de usuarios Online
    Versión: 2.0.x
    Requisitos: Crea campo "online_fecha:INT:20" en tabla "users"
    Descripción: Función que permite actualizar y registrar usuarios que ingresan y permanecen en linea, con un limite de 5 minutos de inactividad, el estado pasa a offline, en caso de que el usuario haga un movimiento actualiza hora y le dará 5 minutos más.
    Modo de Uso: Copiar siguiente funcion en models\Users.php

    PHP:
        /**
          * Actualiza estado de usuario en linea
          * @param $id_user = corresponde a usuario que ingresa o sale de la aplicacion
          * @param $opcion = in|out, 'in' = para login, out = para logout
          * @return void
        */
        
    final public function update_online_user($id_user,$opcion) {
            global 
    $config;

            
    // Actualiza Estado ON LINE
            
    $ahora time();
            
    $limite $ahora-24*60;
            
    $this->db->query("UPDATE users SET online_fecha=0 WHERE online_fecha < ".$limite);
            if (
    $opcion === 'in'){
              
    $this->db->query("UPDATE users SET online_fecha=".$ahora." WHERE id_user = '$id_user' LIMIT 1;");
            }
            else if (
    $opcion === 'out') {
              
    $this->db->query("UPDATE users SET online_fecha=0 WHERE id_user = '$id_user' LIMIT 1;");
            }

        }
    Llamados de la función:

    PHP:
    #al momento de efectuar la autenticación
    $this->update_online_user($query[0]['id_user'],'in');

    #en el logout
    $this->update_online_user($session->get('user_id'),'out');


    #En Controllers.php de la carpeta Ocrend/Kernel/Controllers
    #especificamente en la sección "if ($this->is_logged) " , para que se actualice y se mantenga en linea.

    $user $this->user;
    (new 
    Model\Users)->update_online_user($user['id_user'],'in');

    Esto lo publico aquí ya que me han consultado como lo hice, espero sea de ayuda, saludos.

    atte.
    Jorge
     
    Última edición por un moderador: 13 Oct 2017
    A prinick le gusta esto.

Compartir esta página