LinuxParty
Si desea iniciarse en la programación de Joomla, es ideal comenzar por la programación de módulos. En este artículo veremos como realizar un módulo para mostrar los usuarios conectados.
Partiremos de una instalación limpia de Joomla 2.5.
Archivos del módulo
- mod_logedusers.xml (archivo de instalación)
- mod_logedusers.php (punto de entrada del módulo)
- index.html (evita mostrar contenido de directorio)
- helper.php (archivo con funciones de ayuda para nuestro módulo)
- tmpl/default.php (template del módulo)
- tmpl/index.html (evita mostrar contenido de directorio)
Convenciones que usa el framework de Joomla.
- El nombre del archivo de entrada php debe tener el formato “mod_nombremodulo.php”
- El nombre del archivo de instalación debe tener el formato “mod_nombremodulo.xml”
- El template del modulo debe ubicarse en “tmpl/default.php”
- En cada directorio debe incluirse el archivo index.html, con esto se evita que se pueda ver el contenido del directorio.
Configuración de los ficheros
Lo primero que vamos a hacer es crear los ficheros para que nuestro módulo muestre el famoso “Hola Mundo”.
mod_logedusers.xml
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="2.5.0" client="site" method="upgrade"> <name>Loged Users</name> <author>Ramon Villanueva</author> <version>1.0.0</version> <description>Loged Users by database method</description> <files> <filename>mod_logedusers.xml</filename> <filename module="mod_logedusers">mod_logedusers.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> </files> </extension>
Como podéis observar el fichero de instalación es sencillo e intuitivo.
Primeramente se especifica la versión del xml y la codificación usada.
<?xml version="1.0" encoding="utf-8"?>
A continuación se incluye la etiqueta “<extension>
” dentro de la cual se incluirán el resto de las etiquetas. En ella especificaremos el tipo de extensión (module)
, la versión de joomla (2.5.0), en que parte del framework se usará la extensión “site”(front-end)
o “administrator”(back-end)
y el método de instalación, al indicar “upgrade”
(actualización) podremos reinstalar la extensión sin necesidad de eliminarla.
<extension type="module" version="2.5.0" client="site" method="upgrade">
En la etiqueta “<files>” se incluyen todos y cada uno de los ficheros que componen nuestro módulo. Cabe destacar que el fichero de entrada al módulo (mod_logedusers.php) se especifica con el parámetro “module” para diferenciarlo.
mod_logedusers.php
<?php defined( '_JEXEC' ) or die('Restricted Access'); require_once dirname(__FILE__) . DS . 'helper.php'; $hello=modLogedUsersHelper::getUsers(); require ( JModuleHelper::getLayoutPath('mod_logedusers')); ?>
Vemos a continuación el fichero de punto de entrada.
defined( '_JEXEC' ) or die('Restricted Access');
“_JEXEC” es una constante definida en el framework de joomla. De esta manera evitamos que se ejecute el fichero php directamente.
require_once dirname(__FILE__) . DS . 'helper.php';
Requerimos el fichero helper.php que se encuentra en el mismo directorio que mod_logedusers.php. "DS" corresponde a la constante predefinida DIRECTORY_SEPARATOR.
$hello=modLogedUsersHelper::getUsers();
En el fichero helper.php declararemos la clase modLogedUsersHelper, la cual contendrá la función getUsers().
require ( JModuleHelper::getLayoutPath('mod_logedusers'));
A continuación requerimos el template (fichero tmpl/default.php). Para ello utilizamos la función getLayoutPath de la clase JmoduleHelper del framework de Joomla pasándole como parámetro el nombre que tendrá el directorio de nuestro módulo (mod_logedusers). El template también puede ser requerido directamente
require_once dirname(__FILE__) . DS . 'helper.php';
helper.php
<?php class modLogedUsersHelper { static function getUsers($params) { return 'Hello World'; } }
En el fichero helper crearemos las funciones para nuestro módulo. Por el momento creamos la función getUsers que es llamada desde el mod_logedusers.php. Observe que no se incluye la etiqueta de cierre de php “?>”.
tmpl/default.php
<?php defined ('_JEXEC') or die('Restricted Access'); echo $hello; ?>
En el template tan solo mostramos el contenido de la variable $hello que mostrará “Hello World”.
Index.html y tmpl/index.html
<html></html>
En los ficheros index.html basta con introducir la etiqueta <html> y su cierre </html>. Con esto evitamos que se vea el contenido del directorio.
Instalación del módulo
Para instalar nuestro módulo primeramente comprimiremos todos los ficheros en el archivo mod_logedusers.zip
A continuación, en el administrador de Joomla accederemos a la opción de menú “Extensiones/Gestor de extensiones”
En la sección “Subir paquete” de la pestaña “Instalar” seleccionaremos el fichero mod_logedusers.zip y haremos clic sobre el botón “Subir e instalar”.
Una vez instalado, iremos a la opción “Extensiones/Gestor de módulos” del menú y buscaremos el módulo loged users (puede ayudarse del filtro).
Haga clic en el módulo “Loged Users” para acceder a las opciones del módulo.
Cambie el título por “Usuarios conectados”.
Cambie el Estatus de despublicado a publicado.
Seleccione la posición “position-7” (O una de su elección).
Dentro de la sección “Menú Asignado” modifique la opción “Módulo Asignado” para que se muestre en todas las páginas.
Guarde los cambios del módulo y haga clic en la opción “Ver sitio” para visualizar el front-end.
Puedes leer ahora, un módulo algo más complejo, aquí:
Programar un sencillo módulo para Joomla 2.5.X

-
Microsoft
- Si estás listo para dejar atrás Windows 11, te recomiendo esta distribución para nuevos usuarios de Linux
- Microsoft Copilot ahora puede leer tu pantalla, pensar profundamente y hablarte en voz alta
- Cómo instalar Windows 11 sin restricciones: Elimina requisitos de hardware y cuenta de Microsoft
- Fin del Soporte para Windows 10: Microsoft Terminará Actualizaciones en 2025, pero 0patch Ofrecerá Soporte hasta 2030, sepa cómo
- ¿Es la nueva función 'Recuperar' de Windows una pesadilla de seguridad y privacidad?
- La preocupación de Microsoft por el liderazgo de Google impulsó la inversión en OpenAI
- Windows 10 alcanza el 70% de participación de mercado mientras Windows 11 sigue cayendo
- Microsoft eliminará los controladores de impresoras de terceros en Windows
- Después de 28 años, Microsoft anuncia que eliminará WordPad de Windows
- Las mejores alternativas a Microsoft Excel para Linux
- Las 5 principales alternativas de código abierto de Microsoft 365 para Linux
- Con Bing ya podemos generar imágenes al mas puro estilo DALL-E
- OpenAI y Microsoft son socios, hasta que compiten por los mismos clientes
- Microsoft dice que hablar demasiado tiempo con Bing puede hacer que se descarrile
- ¿Es Windows 11 un software espía? Microsoft defiende el envío de datos de usuarios a terceros