Hack Modulo para ver Usuarios Online Reales

Este hack es el mejor metodo para mostrar sus usuarios online reales en una web joomla. Es sabido que cuanto mas tiempo de sesion abierta tengamos configurada el numero de usuarios online aumenta de forma muy considerable. Si ya modifico la configuración de la sesión en la configuración global, tendrá que tener este hack para la correcta visualización de estadísticas de usuarios online de su web joomla. Por ejemplo, si había puesto su vida  de session de usuarios en un tiempo de 90 minutos, sus estadísticas de usuarios en línea se quedaran reflejadas como online aunque ya se hayan marchado hace tiempo, lo cual mostraria un numero engañoso de cuantos usuarios tenemos online en ese marco dentro de los 90 minutos…

Este suele ser el caso cuando queremos extender el tiempo de inicio de sesión, pero si desea tener las estadísticas reales del usuario en línea tal vez entre de 5-10 minutos. Bien, ¿qué debemos hacer?.

Paso 1.

El codigo para reemplazar se encuentra en el archivo helper.php en la carpeta /modules/mod_whoisonline . Vamos a modificar dos partes del codigo que se encuentran entre la linea 26-28 la primera y en la linea 62 la segunda.

Codigo original linea 28:


$query = 'SELECT guest, usertype, client_id' .
' FROM #__session' .
' WHERE client_id = 0';

A reemplazar con el siguiente codigo:

$datenow = date("Y-m-d H:i:s");
$time_string = strtotime($datenow);
// Modificacion consulta para visualizar usuarios activos en los ult. 10 minutos
$extra_time = 600; //ejemplo: 10 min x 60 seg
$online_time = ($time_string-$extra_time);

$query = "SELECT a.guest, a.usertype, a.client_id"
."\n FROM #__session AS a"
."\n WHERE a.client_id=0 AND a.time>'$online_time'";

Paso 2.

Codigo original linea 62:

$query = 'SELECT DISTINCT a.username' .

' FROM #__session AS a' .
' WHERE client_id = 0' .
' AND a.guest = 0';

A reemplazar con el siguiente codigo:

$datenow = date("Y-m-d H:i:s");
$time_string = strtotime($datenow);
// Modificacion consulta para visulizar usuarios activos en los ult. 10 minutos
$extra_time = 600; //10 min x 60 seg
$online_time = ($time_string-$extra_time);

// Nueva Consulta para mostrar solo usuarios activos en los ult. 10 minutos
$query = "SELECT DISTINCT a.username, a.userid, u.name"
."\n FROM #__session AS a, #__users AS u"
."\n WHERE (a.userid=u.id) AND (a.guest = 0) AND (NOT ( a.usertype is NULL OR a.usertype = '' )) AND a.time>'$online_time'"
."\n ORDER BY ".(($ueConfig['name_format'] > 2) ? "a.username" : "u.name")." ASC";

En las partes del codigo $extra_time = 600; pueden cambiar el valor 600 por uno menor. Cinco minutos serian 300, siempre midiendo en segundos.

En el caso de tener problemas y quisieran volver a subir el archivo helper.php, hagan una copia de  su archivo original. Recuerden que esto es solo para Joomla 1.5.

 

3 Comments

  1. lobogris 11 marzo, 2010
  2. AntonioFS 8 mayo, 2010
  3. BAMBINO1976 23 abril, 2012

Leave a Reply