CREACIÓN DE MODULOS PARA JOOMLA 1.6 DESDE CERO

Debido a las constantes consultas de nuestros seguidores sobre cómo implementar un módulo para la nueva versión de joomla, que es la 1.6, es que pongo a vuestra disposición la estructura de un módulo, creado nativamente para joomla 1.6, describimos línea a línea lo que se realiza así como la estructura de los archivos y directorios.
Definiendo lo que hará nuestro módulo.
Nuestro módulo tendrá 2 parámetros del lado del administrador, mostrar y mensaje, mostrar: tiene 2 opciones si/no, y un cuadro de texto para digitar el texto a mostrar al cliente, si la opción mostrar tiene seleccionado SI, pues entonces se mostrara el texto digitado en el campo mensaje, de lo contrario no mostrará nada.
Empezamos graficando la estructura de directorio y definición de archivos:

Se mantiene la estructura de archivos y carpetas de la versión anterior (joomla 1.5), a continuación la descripción y contenido de cada uno de los archivos.
Carpeta: Mod_mensaje.- Carpeta que contiene todos los archivos necesarios para el correcto funcionamiento de nuestro módulo.
Index.html. Archivo en blanco, sólo por seguridad en el caso de que quieran acceder directamente a la carpeta.
Mod_mensaje.xml. Archivo instalador que contiene las instrucciones XML para su correcta instalación del módulo en nuestro gestor de contenidos.
[php]
<?xml version=»1.0″ encoding=»utf-8″?>
<extension
type=»module»
version=»1.6.0″
client=»site»>
<name>mod_mensaje</name>
<author>Jollenetworks.com</author>
<creationDate>Marzo 2011</creationDate>
<copyright>Copyright (C) 2008 – 2011 All rights reserved.</copyright>
<license>Leer licencia</license>
<authorEmail>mail@jollenetworks.com</authorEmail>
<authorUrl>www.jollenetworks.com</authorUrl>
<version>1.6.0</version>
<description>Este es un ejemplo de la creación de un módulo siguiedo la estructure MVC para joomla version 1.6</description>
<files>
<filename
module=»mod_mensaje»>mod_mensaje.php</filename>
<folder>tmpl</folder>
<filename>helper.php</filename>
<filename>index.html</filename>
<filename>mod_mensaje.xml</filename>
</files>

<config>
<fields name=»params»>
<fieldset name=»basic»>
<field
name=»mostrar»
type=»radio»
default=»0″
label=»Mostrar Mensaje»
description=»Activar o desactivar según se desee, para mostrar el mensaje en el lado del cliente»>
<option
value=»1″>Si</option>
<option
value=»0″>No</option>
</field>
<field
name=»mensaje»
type=»text»
default=»Bienvenido»
label=»Escribir mensaje de bievenida»
description=»Aqui escribir el mensaje que se desea mostrar del lado del cliente» />
</fieldset>
<fieldset
name=»advanced»>
<field
name=»layout»
type=»modulelayout»
label=»JFIELD_ALT_LAYOUT_LABEL»
description=»JFIELD_ALT_MODULE_LAYOUT_DESC» />
<field
name=»moduleclass_sfx»
type=»text»
label=»COM_MODULES_FIELD_MODULECLASS_SFX_LABEL»
description=»COM_MODULES_FIELD_MODULECLASS_SFX_DESC» />
<field
name=»cache»
type=»list»
default=»1″
label=»COM_MODULES_FIELD_CACHING_LABEL»
description=»COM_MODULES_FIELD_CACHING_DESC»>
<option
value=»1″>JGLOBAL_USE_GLOBAL</option>
<option
value=»0″>COM_MODULES_FIELD_VALUE_NOCACHING</option>
</field>
<field
name=»cache_time»
type=»text»
default=»900″
label=»COM_MODULES_FIELD_CACHE_TIME_LABEL»
description=»COM_MODULES_FIELD_CACHE_TIME_DESC» />
<field
name=»cachemode»
type=»hidden»
default=»static»>
<option
value=»static»></option>
</field>
</fieldset>
</fields>
</config>
</extension>
[/php]

Mod_mensaje.php. Archivo que envía del archivo controlador (helper.php) hacia la vista (tmpl/default.php)
[php]
<?php

// para que no se pueda tener acceso por otro lado a menos que se llame correctamente el módulo
defined(‘_JEXEC’) or die;

// Incluimos nuestro archivo de ayuda que contiene nuestra clase con sus respectivos métodos
require_once dirname(__FILE__).DS.’helper.php’;

//asignamos a una variable los parámetros recogidos por nuestra clase
$list = modMensajeHelper::getList($params);

//le asginamos a una variable el sufijo de un clase, es otro parámetro del lado del administrador
$moduleclass_sfx = htmlspecialchars($params->get(‘moduleclass_sfx’));
//se llama al archivo que contendrá finalmente la vista del módulo por el lado del cliente
require JModuleHelper::getLayoutPath(‘mod_mensaje’, $params->get(‘layout’, ‘default’));

?>
[/php]

Helper.php. Archivo controlador que contiene las clases y métodos para recuperar los datos o procesarlos.
[php]
<?php
// para que no se pueda tener acceso por otro lado a menos que se llame correctamente el módulo
defined(‘_JEXEC’) or die;
//creamos nuestra clase de ayuda para nuestro módulo
//por convención se antepone el prefijo mod en minúsculas y
// termina con Helper, podemos crear tantas clases como las que necesitamos para nuestra labor.
class modMensajeHelper
{
//creamos nuestro método, también por convención el prefijo get y acontinuación el nombre del método
//aqui joomla 1.6 mejora la llamada a los métodos definiéndolos estáticamente, para no crear ambieguedad al momento de llamarlos
static function getList($params)
{
//Recogemos los parámetros de nuestro módulo puestos desde el lado del administrador
$mostrar= $params->get(‘mostrar’);
//comprobamos si está marcado la opcion mostrar el mensaje
if ($mostrar==1) {
//si está marcado entonces, asignamos a nuestra variable el dato recodigo por el método get
$mensaje= $params->get(‘mensaje’); }
//De lo contrario le asignamos vacío.
else { $mensaje =»» ; }
//Se devuelve la variable que contiene el mensaje
return $mensaje;

}
}
[/php]

Sub carpeta tmpl.- Contiene los archivos de la vista, es decir la manera como se visualizará del lado del cliente.
Index.html. Archivo en blanco, sólo por seguridad en el caso de que quieran acceder directamente a la carpeta.
default.php. Contiene la forma de cómo se visualizaran los datos en el lado del cliente.
[php]
<?php
// para que no se pueda tener acceso por otro lado a menos que se llame correctamente el módulo
defined(‘_JEXEC’) or die;

?>
<!–se le se está asginado un sufijo si es que en el parámetro del lado del cliente se ingreso una.–>
<dl class=»mensaje-module<?php echo $moduleclass_sfx ?>»>

<?php //echo $list.» proba» ;
//Se muestra el parámetro recogido por nuesro archivo helper.
echo $list ;
?>
[/php]

DESCARGAR EL MÓDULO COMPLETO modulo joomla 1.6 ejemplo

Espero os sirva en sus futuros proyectos con la nueva versión de joomla 1.6