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
-
Programación
- Gracias a la IA, el nuevo lenguaje de programación más popular es...
- Cómo instalar y utilizar Scikit-Learn en Linux
- Thomas E. Kurtz, coinventor de BASIC, muere a los 96 años
- Profesor de informática del MIT prueba el impacto de la IA en la formación de programadores
- Lanzamiento del IDE de código abierto Qt Creator 14 con soporte para complementos basados en Lua
- Plantillas para Joomla - Episodio 1: Plantillas, marcos y clubes o no...
- Este es el mejor libro que he visto para aprender a programar en Python en castellano desde cero, gratis y online
- ¿Deberían los niños seguir aprendiendo a programar en la era de la IA?
- La 'obsolescencia' de VBScript confirmada por Microsoft y su eventual eliminación de Windows
- El Gran Debate: ¿Deberían los Modelos de Inteligencia Artificial Ser de Código Abierto?
- El lenguaje de programación BASIC cumple 60 años
- El CEO de Nvidia dice que los niños no deberían aprender a programar
- 40 años de Turbo Pascal: recuerdos del dinosaurio codificador que revolucionó los IDE
- Los lenguajes de programación más populares y dónde aprenderlos.
- Top 5 de los principales lenguajes de programación para desarrollar aplicaciones de escritorio Linux