miércoles, 29 de enero de 2014

Joomla tiene cuatro extensiones:

  1. Modulos
  2. Componentes
  3. Plugins
  4. Plantillas
Los módulos son las extensiones más sencillas en Joomla, Son pedazos de código que podemos colocar en cualquier parte y en cualquier número. Los siguientes datos es parte de lo que investigué en la página de joomla.org/Developpers:

Estructura de archivos

Iniciaremos, aunque usted no lo crea, con el "hola mundo". Hay cuatro archivos básicos que se utilizan dentro del patrón estándar en el desarrollo de un módulo:
  • mod_helloworld.php - Este archivo es el principal punto de entrada para el módulo. Se llevarán a cabo las rutinas de inicialización necesarias, llamar a las rutinas auxiliares para recoger todos los datos necesarios, e incluir la plantilla que muestra la salida del módulo.
  • mod_helloworld.xml - Este archivo contiene información acerca del módulo. En él se definen los archivos que necesitan ser instalados por el instalador de Joomla! y especifica los parámetros de configuración del módulo.
  • helper.php - Este archivo contiene la clase helper que se utiliza para hacer el trabajo real en la recuperación de la información que se muestra en el módulo (por lo general a partir de la base de datos o alguna otra fuente).
  • tmpl / default.php - Esta es la plantilla del módulo. Este archivo tomará los datos recogidos por el mod_author_related.php y generará el código HTML que se muestra en la página.
Con esta estructura de archivos, se está siguiendo un esquema MVC, donde la "Vista" es el archivo default.php y las reglas de negocio se encuentran en helper.php.

Faltan otros dos archivos, como veremos más adelante, que servirán para preveer que alguien ejecute directamente muestro módulo entrando a su directorio o carpeta.

1) Creación del mod_helloworld.php

Primero crea una carpeta para almacenar tu super módulo. Por tradición milenario se llamaría como se llama tu módulo, en este caso mod_helloworld y ahi vas escribiendo y almacenandotus archivos.

El archivo mod_helloworld.php llevará a cabo tres tareas:
  • Incluir el archivo helper.php que contiene la clase que se utiliza para recoger los datos necesarios.
  • Invocar el método apropiado para recuperar los datos.
  • Incluir la plantilla para mostrar la salida.
 Aqui ek primer despiste; helper a mi me sonaba como archivos para desplegar la ayuda, pero son las rutinas auxiliares. Punto muy importante, se utiliza PHP orientado a objetos.

Siguiendo estos tres puntos, vamos a colocar un poco de código en nuestro archivo.
La clase helper está definida en nuestro archivo helper.php .
Este archivo se incluye con la declaración require_once .

require_once dirname(__FILE__).'/helper.php';
 
require_once se utiliza porque nuestras funciones auxiliares se definen dentro de una clase, y sólo queremos la clase definida, una vez.

Para invocar a nuestro método utilizaremos la siguiente líneas:

$hello = modHelloWorldHelper::getHello( $params );
  
Recuerde que es programación ortinetada a objetos. Estamos definiendo una método que se llama getHello() y estamos pasando un parámetro. El primer archivo completo quedaría así:

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
 
// Include the syndicate functions only once
require_once( dirname(__FILE__).DS.'helper.php' );
 
$hello = modHelloWorldHelper::getHello( $params );
require( JModuleHelper::getLayoutPath( 'mod_helloworld' ) );
?> 

La clase modHelloWorldHelper se crea dentro del archivo helper.php, como se ve a continuación

2) Creación del helper.php

El archivo helper.php contiene la clase necesaria para recuperar los datos que se muestran en la salida del módulo. Esta clase a su vez tendrá un método que se encargara de dicha tarea.

Aquí está el código para el archivo helper.php:


<?php
class modHelloWorldHelper
{
    
    public static function getHello( $params )
    {
        return 'Hello, World!';
    }
}
?>

En el ejemplo estamos leyendo un parámetro que no utilizamos, pero es para preveer su uso, aunque obviamente aqui no es necesario. Creamos la clase modHelloWorldHelper (que no hay ninguna regla que te obligue escribir con esa sintaxis el nombre de la clase, pero ya es un clásico en la comunidad de joomleros) y luego el método getHello, donde puedes vaciar todos tus conocimientos sobre la herramienta e impresionar a tus cuates.

3) Creación del tmpl/default.php

El archivo default.php es la plantilla que muestra la salida del módulo. El código para el archivo default.php es el siguiente:

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

 O sea, que hay que hacer una carpeta que se llame tmpl y ahi guardar el archivo. Ojo.

4) Creación del mod_helloworld.xml

El mod_helloworld.xml se utiliza para especificar los archivos que el instalador tiene que copiar, y sean usados por el gestor de módulos para determinar qué parámetros se utilizan para configurar el módulo. Otras informaciones sobre el módulo también se especifica en este archivo.
El código para mod_helloworld.xml es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" client="site" method="upgrade">
    <name>Hello, World!</name>
    <author>John Doe</author>
    <version>1.0.0</version>
    <description>A simple Hello, World! module.</description>
    <files>
        <filename>mod_helloworld.xml</filename>
        <filename module="mod_helloworld">mod_helloworld.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
    </files>
    <config>
    </config>
</extension>

Si ha manejado otras aplicaciones, como el SCORM, verá que es muy similar al "manifiesto".

Y si observa, aparecen dos archivos invitados nuevos: index.html y tmpl/index.html. Ambos son para preveer a los aprendices de hacker entrar a nuestra carpeta. Este archivo puede ser tan sencillo como:

<html><body bgcolor="#FFFFFF"></body></html>
 
Con esto hemos completado nuestro directorio del módulo, el cual deberá tener los siguientes archivos:
  • mod_author_related.php
  • mod_author_related.xml
  • helper.php
  • tmpl / default.php
Opcionalmente puede añadir los archivos
  • index.html
  • tmpl / index.html

Si no va a utilizar los archivos html, no olvide también quitarlos del manifiesto.

Empaquete en un formato zip todos los archivos (no el directorio, sino solo los archivos y la carpeta tmpl).
Intégrelos a Joomla por medio de Extensiones
Colóquelo dentro de la página con  Extensiones > Administrador de módulos

Asi tendremos un módulo muy sencillo en Joomla! y lo mejor de todo es que si funciona. El presente blog fue tomado delmanual de desarrolladores.

Los archivos los encuentras aqui.


http://www.pacoarce.com

No hay comentarios:

Publicar un comentario