Crear módulo en joomla 2.5

El módulo en joomla 2.5 es una extensión que puede alojarse en cualquiera de las posiciones de la plantilla. Es, tal vez, la extensión mas sencilla (sin contar plantillas) que podemos desarrollar para nuestro Joomla. Por eso he decidido empezar a explicar cómo crear módulos, antes de explicar componentes o plugins.

Para comenzar, he pensado realizar un módulo con el contenido más típico en un primer programa: Hola Mundo.

  • mod_holamundo.php: Es el punto de entrada al módulo.
  • mod_holamundo.xml: Es el archivo de configuración del módulo.
  • helper.php: Como su nombre indica, es un archivo de “ayuda”. Generalmente lo usaremos para accesos a la base de datos. En este ejemplo tan sencillo, no será necesario.
  • tmpl/default.php: Es el archivo de plantilla de nuestro módulo. Normalmente se encargará de mostrar los datos devueltos por nuestro helper.

Punto de entrada al módulo joomla 2.5

Esta función, la cumple el archivo mod_holamundo.php. En él vamos a realizar las inicializaciones, llamar al helper para cojer datos y pasarselos a la vista. Pongo un ejemplo de lo que seria nuestro mod_holamundo.php.

<?php
// no acceso directo
defined( '_JEXEC' ) or die( 'Restricted access' );

//Mostramos el template
require( JModuleHelper::getLayoutPath( 'mod_holamundo','default') );
?>

Como se puede ver, con sólo dos lineas de código php, vamos a conseguir que nuestro módulo salude ;). La primera línea es para evitar el acceso directo al módulo; mientras que la segunda línea de código, imprime el contenido de nuestra plantilla.

Plantilla del módulo en Joomla 2.5

La plantilla que hemos elegido en este caso es muy simple. Únicamente saca un h1-h6 con el texto “Hola mundo”. En un componente un poco más avanzado, lo normal suele ser recorrer algún listado. Veremos ejemplos de ello más adelante, ya que queria simplificar al máximo el primer módulo.

Configuración del módulo en Joomla 2.5

Cómo ya vimos cuando creamos la plantilla para joomla 2.5, para indicarle al sistema los archivos que queremos subir, los parámetros y otras configuraciones, se utilizan archivos .xml con el nombre de la extensión que se está instalando. En este caso es “mod_holamundo.xml”.

<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="2.5.0">
    <name>Hola Mundo</name>
    <author>Mikel Garcia</author>
    <version>1.0</version>
    <creationDate>Diciembre 2012</creationDate>
    <description>Modulo de demostración para el Blog</description>
    <files>
    <filename module="mod_holamundo">mod_holamundo.php</filename>
        <filename>mod_holamundo.xml</filename>
        <folder>tmpl</folder>
    </files>
</install>

Cómo vemos este archivo es aun más simple que el utilizado para la plantilla, ya que unicamente vamos a subir tres archivos a nuestro servidor.

Dejo una imagen demostrativa, de cómo quedarían los archivos de nuestro módulo por si a quedado alguna duda.

archivos-modulo-joomla

Con esto ya conocemos lo básico para poder crear nuestro primer módulo para joomla 2.5. Ahora podemos ir investigando he ir incrementando la dificultad como como queramos y/o necesitemos. En siguientes post mostraré como utilizar el helper para acceder a la base de datos y como recorrer listados en nuestra vista.

Esta entrada fue publicada en Modulos. Guarda el enlace permanente.

12 respuestas a Crear módulo en joomla 2.5

  1. Jhon David suarez dijo:

    mod_holamundo.php: Es el punto de entrada al módulo.
    mod_holamundo.php: Es el archivo de configuración del módulo.

    hola quiero preguntar si existen 2 archivos diferentes de mod_holamundo.php:

    • Mikel dijo:

      Gracias por el comentario, se me había pasado. El segundo de ellos, el archivo de configuración del módulo, se llama “mod_holamundo.xml”. Ya está cambiado…

      Un saludo

  2. Jhon David suarez dijo:

    Hey muchas gracias Mikel, quiero preguntarte ahora si en default.php es donde debería ir la parte funcional del modulo que queremos desarrollar ?

    • Mikel dijo:

      Gracias Jhon.

      Joomla se basa en el patrón MVC. EL default.php es el archivo encargado de la vista. Es decir, aqui SÓLO debes incluir lógica de presentación. Nunca lógica de negocio. Pare esto puedes utilizar un helper, o lo que tu lógica necesite. Espero haberte ayudado un poco.

      Un saludo

  3. pablo dijo:

    Hola Mikel,
    Estoy esperando ansioso el proximo post para modulos de joomla 3. Hecho en falta el ejemplo de código del default.php.

    Gracias y saludos,

    • Mikel dijo:

      Hola Pablo, gracias por tu comentario.

      Sé que es un ejemplo demasiado sencillito, pero quería dejar muy clara la creación del módulo. A partir de aquí es más fácil investigar ;). Últimamente tengo el Blog un poco parado, ya que dispongo de muy poco tiempo…

      Un saludo

  4. Ibai Saenz dijo:

    buenas mikel! tengo una consulta que me quita el sueño y no consigo dar con ello. en la parte de un modulo, ¿que comando hace referencia a la tabla de la base de datos ? Necesito modificar esa ruta y que lea desde otra tabla y no hay manera… gracias

    • Mikel dijo:

      Hola Ibai. Siento no entenderte bien. No se si tienes problemas con el acceso a la BBDD desde el propio módulo, para el cual tienes dos opciones:
      – Usar el API de Joomla (recomendada)
      – Usar PHP
      O tu problema viene de la propia consulta SQL.

      Un saludo

      • Ibai Saenz dijo:

        te explico mejor haber si entiendes mi consulta;) tengo un modulo de slidenews que lee de la tabla jos_content de joomla, no? es decir, del contenido de joomla, articulos. y quisiera añadirle a ese modulo que también lea desde otra tabla, como es la de jos_vflow_data

      • Mikel dijo:

        Lo primero que haría es actualizar Joomla ;). Después si solo se trata de mostrar los datos (no hay redirecciones en ese módulo), puedes modificar la consulta y agregarle un SQL Union. En principio no deberias hacer nada más. Si tiene redirecciones, deberas además tocar las vista…

        Un saludo

      • Antonio dijo:

        Hola Mikel, enhorabuena por tu blog. Una duda, tengo hecho en php escrito el contenido del módulo que quiero realizar, podria crearlo sin usar la API de Joomla? necesito conectarme a la bbdd de Joomla. Un saludo

      • Mikel dijo:

        El módulo tienes que crearlo tal cual está explicado aquí. Después qué hagas o cómo lo hagas dentro del mismo, es cosa tuya. No estas obligado a usar el API. No obstante te recomiendo utilizar el API de Joomla. Tal vez te cueste más el primer módulo, pero te ayudará en sucesivas veces…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s