Jun
09
2008
|
|
TEMA: APRENDE A CREAR UN MÓDULO PARA JOOMLA • Aunque con las extensiones existentes de Joomla tendremos suficiente en la mayoría de los casos, hay ocasiones en que necesitamos algo concreto, como por ejemplo un módulo que muestre los usuarios registrados que cumplan años hoy o uno que muestre los artículos publicados hace un año. Y eso es precisamente lo que voy a hacer. • En el siguiente tutorial vamos a crear un modulo que consulte a la base de datos y muestre el titulo de los artículos con un enlace al articulo completo. Hacer un módulo es mucho más sencillo que hacer un • De hecho los módulos están pensados para mostrar datos concretos, como usuarios conectados, datos de contacto, menús etc… que en muchos casos son una simple consulta a la base de datos. - Los módulos se encuentran situados en el directorio modules dentro del directorio de instalación de Joomla y por cada módulo hay una carpeta con nombre mod_nombredelModulo . - Nuestro módulo se va a llamar anyo, por lo tanto la carpeta del módulo se llamará mod_anyo. - La estructura de un módulo es muy simple, tiene un fichero php con el mismo nombre que el módulo, el cual es el punto de entrada, que tomará en control del módulo cuando este sea llamado. - Para separar la lógica de la presentación se ha creado la clase helper, en la cual escribiremos nuestras funciones y de esta forma nuestro código quedará más ordenador y legible. La clase helper se encuentra en el fichero de nombre helper.php en la raíz del directorio del módulo. - Desde mod_anyo.php ejecutaremos las funciones de la clase helper simplemente llamándolos como métodos estáticos , puedes encontrar una definición de la clase en el sitio oficial de Joomla - Por ultimo, tenemos el layout, o • Para la parte de Back-End disponemos del fichero mod_anyo.xml , donde definiremos los parámetros del módulo y mediante el cual podremos parametrizar el modulo para hacerlo mas configurable y reutilizable. - Vamos a ver el código de nuestro punto de entrada:
• La primera línea, como siempre que hacemos una extensión para Joomla, es una línea de comprobación, que asegura que no se este accediendo al modulo estar usando Joomla. La segunda línea importa el fichero de la clase helper, donde almacenamos nuestras funciones. En la tercera línea, ejecutamos la función getArticulos() de nuestro helper que devuelve una lista de objetos con los resultados de la consulta SQL. Por último, hacemos un require del layout, que en nuestro se llama default y lo hacemos usando el método getLayoutPath de la clase JModuleHelper, que devuelve la ruta del layout pasándole como parámetro el nombre del módulo y al nombre del layout. En el helper almacenamos nuestras funciones, donde accedemos a datos para recuperar la lista de artículos que se escribieron hoy hace un anyo. Vamos a ver el código:
• La clase helper ha de llamarse con el nombre del modulo sin “_” seguido de helper, es decir, en nuestro caso seria modanyoHelper. - Mediante jimport importamos el fichero necesario para instanciar una clase de tipo JDate. - Jimport admite como parámetro un string que apunte al “package” donde se encuentre la clase. Es un concepto similar al import de java . Los paquetes se importan según la el árbol de clases que hay en la documentación oficial : - Después creamos el método getArticulos que será el que devuelva una lista de artículos que tengan un año de antigüedad. - Utilizamos un objeto de tipo JDatabase para realizar la consulta y después simplemente obtenemos la lista de objetos mediante el método loadObjectList . - El meollo de la cuestión esta en la consulta SQL, donde se utiliza la función datediff para consultar los artículos con una antigüedad de 365 días - Finalmente , en el layout, sacamos por pantalla una lista
• Fíjate que para acceder a los parámetros del fichero mod_anyo.xml se utiliza $params->get() . - Estos parámetros se definen previamente en el fichero xml que acompaña el modulo.
• Saludos y hasta la próxima. PUEDES AGREGAR ESTE ARTICULO EN TU WEB Para crear un link a este articulo en tu web, copia - pega el codigo de abajo en tu pagina. Vista previa : Powered by QuoteThis © 2008 |



Componente









