Cómo desarrollar un Modulo en Joomla 3


Hoy voy a introducirles un poco el tema del desarrollo de un nuevo módulo con Joomla 3, aunque la estructura y metodología que usaremos también se aplica a versiones anteriores de Joomla.

"Entre las extensiones más importantes a la hora de configurar nuestro portal están los módulos. Los módulos son extensiones o complementos de Joomla! que nos permiten añadir bloques de información secundaria en diferentes posiciones o zonas de la plantilla, normalmente en la zona periférica: columnas laterales, encabezamiento y pie de página."

Esas son las palabras de Joomla para describir un módulo, por supuesto las más acertadas, pero también puedo decirles que no son más que pedazos de código utilizados para asumir un papel determinado y su resultado puede mostrarse en cualquier parte y momento de nuestra aplicación.

Existen módulos diferentes que muestran distintos tipos de información o que añaden diferentes funcionalidades a nuestra web Joomla. Hoy desarrollaremos un módulo de prueba bastante simple para mostrar las bases y luego imaginen todo lo que pueden hacer con ello, recuerda que solo tu imaginación es el limite.

Estructura de ficheros

Su estructura corresponde con todas las demás extensiones de Joomla, respetando siempre la programación usando MVC. Existen cuatro ficheros básicos en su creación.

  • mod_holamundo.php – Fichero principal del módulo, fichero de entrada.
  • mod_holamundo.xml – Contiene información a cerca del módulo, usada a la hora de la instalación.
  • helper.php – Fichero helper que contiene funciones necesarias para complementar la funcionalidad principal del componente.
  • tmpl/default.php – Plantilla de salida donde insertamos el HTML que verá el cliente así como la información que necesitemos mostrar.

Fichero mod_holamundo.php

  <?php
    // No se permite el acceso directo, quiere decir que fuera de la aplicación Joomla no se podrá hacer referencia al mismo
    defined( '_JEXEC' ) or die( 'Restricted access' ); 
    // Agregamos los ficheros helpers que necesitemos para el funcionamiento del módulo
    require_once( dirname(__FILE__).'/helper.php' ); 
    // La función getHola() se encuentra en el fichero helper, su resultado será almacenado en la variable $hola
    $hola = modHolaMundoHelper::getHola( $params ); 
    // Damos entrada a la plantilla
    require( JModuleHelper::getLayoutPath( 'mod_holamundo' ) ); 
  
  ?>
  

Fichero helper.php

Es el encargado de almacenar todos los métodos que nos ayuden a complementar el resultado final. Estos métodos pueden o no recibir parámetros del módulo que puedan necesitarse.

  <?php
    class modHolaMundoHelper
    {
    
        /**
    * @param array $params An object containing the module parameters
    * @access public
    */    
    function getHola( $params )
    {
        return 'Hola, MUNDO!';
    }

    }
  ?>

Plantilla tmpl/default.php

En la programación MVC esta parte corresponde a la Vista(View), donde usando los datos obtenidos anteriormente procedemos a mostrarlos en pantalla. Aquí insertamos todos los TAGS HTML necesarios para darle un formato a la salida del módulo.

  <?php // no direct access
  defined( '_JEXEC' ) or die( 'Restricted access' ); ?>

  <body>
  <strong><?php echo $hola; ?></strong>

Información mod_holamundo.xml

Esta información es usada en la instalación del módulo.

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="3.1.0" client="site" method="upgrade">
    <name>Mi primer Modulo Hola Mundo!</name>
    <author>John Doe</author>
    <version>1.0.0</version>
    <description>Modulo simple de ejemplo que muestra la famosa frase Hola Mundo!.</description>
    <files>
        <filename>mod_holamundo.xml</filename>
        <filename module="mod_holamundo">mod_holamundo.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
    </files>
    <config>
    </config>
</extension>

Una vez terminado se procede a instalarlo en el Backend de nuestra aplicación Joomla. Dense cuenta de las posibilidades que brinda el trabajo modular, podemos desarrollar tantos módulos necesitemos, con informaciones diferentes a diferentes usuarios, todo totalmente customizable y programable. Solo tu imaginación es el límite como decía anteriormente. Pueden acceder a todas las funcionalidades de las APIs de Joomla, por lo que es posible la interacción con bases de datos, trabajo con ficheros externos o locales en el servidor, chequeo de sesiones y usuarios en fin de todo lo que se necesite en un instante determinado. La herramienta está, sigan esta pequeña guía y jueguen con ella, experimenten, el resultado les aseguro será lo que esperaban.

Latest posts by Leroy Ley (see all)