Creación de un módulo simple para Joomla! 2.5 2/2

Escrito por | 01 Octubre 2013 | Publicado en Octubre 2013
Seguimos desarrollando el módulo creado en el artículo anterior para darle la funcionalidad de mostrar los usuarios conectados.

Una vez tenemos instalado el módulo, editaremos directamente los ficheros instalados. De esta manera evitaremos el tener que reinstalar el módulo continuamente para ver los cambios realizados. Los módulos de joomla están almacenados en el directorio “modules”. 

Obteniendo los usuarios

Para no complicar en exceso el módulo, lo programaremos para que funcione tan solo cuando las sesiones de usuarios sean gestionadas mediante base de datos.

Acceda a la opción “Sitio/Configuración Global” y en la pestaña “Sistema” asegúrese que el control de sesión se gestiona mediante la base de datos. Modifique el fichero “modules/mod_logedusers/helper.php” para que quede de la siguiente manera (a continuación lo veremos en detalle): 

<?php 
class modLogedUsersHelper{
 private function checkSessionHandler(){
  $config=JFactory::getConfig();
  if ($config->getValue('session_handler')!='database') return false;
  return true;
 } 
 static function getUsers($params){
 if (self::checkSessionHandler())
  $db=JFactory::getDBO();
  $q="select username from #__session where guest=0 order by username";
  $db->setQuery($q);
 if (!$res=$db->loadAssocList()) return '';
   foreach($res as $k=>$v)
     $res[$k]=$res[$k]['username'];
   return implode(",",$res);
  }
  else
    return 'Gestor de sesión no permitido';
  }

} 

La clase JFactory de joomla permite obtener diferentes tipos de objetos definidos en joomla.

En la clase checkSessionHandler, mediante el método getConfig() de la clase JFactory, obtenemos un objeto de la clase Jconfig. En el directorio base de nuestro sitio joomla podrá ver el archivo configuration.php, en el cual se define la clase Jconfig con una serie de variables que guardan la configuración de nuestro site (entre las que se encuentra la variable 'session_handler'.

Una vez obtenido el objeto JConfig en la variable $config, se devuelve false si la variable session_handler es diferente de 'database',en caso contrario se devuelve true. 

En la función getUsers() primeramente checkeamos que la gestión de sesión sea mediante base de datos.

Una vez más usamos la clase JFactory. Mediante el método getDBO() obtenemos un objeto del tipo JDatabase.

En la variable $q introducimos la sentencia sql (nótese que el nombre de la tabla comienza por “#_” , que sirve para sustituir el prefijo usado por joomla).

Y hasta aquí el artículo, que espero que os sea de utilidad.

Visto 3111 veces Etiquetado como Spanish, Desarrollador