Este documento presenta los pasos para desarrollar tres tipos de extensiones en Joomla: módulos, componentes y plugins. Explica la estructura básica de cada uno, incluyendo archivos, código y convenciones. También provee ejemplos de código para crear un módulo simple, un componente básico siguiendo el patrón MVC y un plugin que muestra un mensaje antes de cada artículo.
8. - mod_Prueba.php : fichero php con el mismo nombre que el módulo, tomará en control del módulo cuando este sea llamado - helper.php : clase helper , sirve para separar la lógica de la presentación. - directorio tmpl : aquí guardaremos las plantillas que usaremos para la presentación -Por defecto, se usa el template default.php - mod_prueba.xml : fichero xml necesario para generar un instalable y donde especificaremos los parametros del módulo.
9.
10. Código del punto de entrada mod_prueba.php <?php // no permitir acceso directo defined ( ‘_JEXEC’ ) or die ( ‘Restricted access’ ); // incluir al helper que devolverá los datos, solo una vez require_once( dirname (__FILE__).DS.‘helper.php’ ); $mensaje = modPruebaHelper::getMensaje( $params ); require( JModuleHelper::getLayoutPath( ‘mod_prueba’,‘default’) ); ?>
11. Código del helper: <?php class modPruebaHelper { function getMensaje( $params ) { return “Hola Mundo”; } } ?> La clase helper ha de llamarse con el nombre del modulo sin “_” seguido de helper: Nombre del módulo sin “_” + Helper
28. Modelo <?php defined (’_JEXEC’) or die (); jimport( ‘joomla.application.component.model’ ); class PruebaModelPrueba extends JModel { function getMensaje(){ //Aquí se obtienen datos de la BD return “Hola soy un valor que ha devuelto el modelo”; } } ?>
41. <?xml version=”1.0″ encoding=”utf-8″ ?> <install version=”1.5″ type=”plugin” group=”content”> <name>Content - Prueba</name> <author>David Noguera</author> <creationDate>15-02-2008</creationDate> <authorEmail>david@nosolocodigo.com</authorEmail> <authorUrl>www.nosolocodigo.com</authorUrl> <version>1.0</version> <description>Muestra un mensaje antes de mostrar el contenido</description> <files> <filename plugin=”Prueba”>Prueba.php</filename> <filename>Prueba.xml</filename> </files> </install>
42. Fichero holaMundo.php <?php defined ( ‘_JEXEC’ ) or die ( ‘Acceso Restringido’ ); jimport( ‘joomla.plugin.plugin’ ); // Convención : Nombre de la clase (plg + tipo plugin + nombre del plugin) class plgContentPrueba extends JPlugin { function plgContentPrueba( &$subject ) { parent::__construct( $subject ); } function onBeforeDisplayContent(&$article, &$params, $limitstart=0) { $salidaPantalla = ‘<h2>Hola Mundo</h2>’; return $salidaPantalla; } } ?>