domingo, 22 de noviembre de 2015

Bases de datos en Joomla

Bases de datos en Joomla


Existen 5 tipos de extensiones distintas en Joomla: módulos, componentes, plugins, plantillas y lenguajes. Los módulos, de cuya creación hablaremos en este pequeño tutorial, son uno de los tipos más sencillos: se trata de pequeñas aplicaciones cuya salida puede mostrarse en cualquier posición de entre las definidas en la plantilla, y de las cuales podemos tener un número cualquiera por página.

Un módulo en su forma más básica consiste sólo en un par de archivos, un archivo XML con información sobre el módulo y su instalación y un archivo PHP con el código del módulo en sí.

A modo de ejemplo vamos a ver cómo crear un pequeño módulo “Hola Mundo”.

Primero crearemos una carpeta mod_holamundo para contener nuestros archivos. En esta carpeta crearemos un archivo mod_holamundo.xml con el siguiente contenido

    <?xml version="1.0" encoding="utf-8"?>
    <install type="module" version="1.5">
      <name>Hola Mundo</name>
      <author>Raul Gonzalez</author>
      <creationDate>Enero 2010</creationDate>
      <copyright>(C) Raul Gonzalez</copyright>
      <license>GPL</license>
      <authorUrl>http://mundogeek.net/</authorUrl>
      <authorEmail>zootropo en gmail</authorEmail>
      <version>0.1</version>
      <description>Nuestro modulo de ejemplo</description>
      <files>
        <filename module="mod_holamundo">mod_holamundo.php</filename>
      </files>
    </install>

como vemos en este archivo podemos indicar el nombre del módulo, el autor, la fecha de creación, la versión, la descripción de la funcionalidad del módulo, o los archivos que conforman el módulo, entre otros (he evitado el uso de acentos para ahorrarnos complicaciones con la codificación de caracteres).

Veamos ahora el código del archivo mod_holamundo.php. Este código podría ser tan sencillo como

    <?php echo 'Hola mundo'; ?>

Sin embargo, es una buena práctica evitar que se pueda ejecutar el módulo directamente, como si de un script independiente de Joomla! se tratase. Esto se hace comprobando si está definida la constante _JEXEC, y en caso contrario deteniendo la ejecución del script.

    <?php
      defined('_JEXEC') or die('Este script no se puede ejecutar de forma independiente.');
      echo 'Hola mundo';
    ?>

Ahora sí, ya tenemos listo nuestro módulo. Una vez hecho esto basta crear un archivo ZIP que contenga nuestro archivo XML y PHP usando, por ejemplo, WinZip o WinRAR, y ya podremos instalarlo desde la interfaz de administración de Joomla, dirigiéndonos a Extensiones -> Instalar/Desinstalar y seleccionando nuestro archivo .zip en la carpeta en la que se encuentre. Al instalar el módulo se habrá creado una nueva carpeta mod_holamundo en la carpeta modules de Joomla.

Si seleccionamos ahora Extensiones -> Administrador de módulos y ordenamos por ID veremos nuestro nuevo módulo Hola Mundo, listo para usarse. Basta marcarlo como Publicado y seleccionar la posición en la que queremos que se muestre en las opciones del módulo, a las que se puede acceder haciendo clic sobre su nombre.
Añadir opciones al módulo

Vamos a complicar un poco la cosa permitiendo al administrador del sitio elegir a quién quiere saludar. Es decir, vamos a modificar el módulo de forma que en esta ocasión se imprima “Hola” seguido de un texto que el administrador pueda especificar en las opciones del módulo.

Lo primero que tenemos que hacer es modificar el archivo XML y añadir una nueva etiqueta params. Dentro de esta etiqueta tendremos una etiqueta param por cada opción de configuración que requiera el módulo. En nuestro caso sólo necesitaremos un parámetro, de tipo text (una caja de texto) para más señas. Podéis consultar el resto de tipos disponibles en Parámetros para las extensiones de Joomla!.

    <?xml version="1.0" encoding="utf-8"?>
    <install type="module" version="1.5">
      <name>Hola Mundo</name>
      <author>Raul Gonzalez</author>
      <creationDate>Enero 2010</creationDate>
      <authorUrl>http://mundogeek.net/</authorUrl>
      <version>0.1</version>
      <description>Nuestro modulo de ejemplo</description>
      <files>
        <filename module="mod_holamundo">mod_holamundo.php</filename>
      </files>
      <params>
        <param name="quien" type="text" size="20" default="mundo"
               label="¿A quien quieres saludar?" description="Persona, animal u objeto a quien quieres saludar" />
      </params>
    </install>

El valor de esta opción de configuración se podrá obtener en el código del módulo haciendo uso del método get del objeto $params, al que se le pasa el nombre del parámetro y, opcionalmente, el valor a utilizar por defecto si el usuario no ha introducido ningún valor para este campo. De esta forma, el código de nuestro módulo quedaría tal que así:

    <?php
      defined('_JEXEC') or die('Este script no se puede ejecutar de forma independiente.');
      echo 'Hola ', $params->get('quien', 'mundo');
    ?>


Y listo. Desinstala el módulo anterior, comprime ambos archivos, e instala la nueva versión del módulo para disfrutar de nuestra pequeña gran joya.

No hay comentarios:

Publicar un comentario