2. Estructura de Archivos Por estandarización todos los módulos deben tener por lo menos estos archivos Abril 2011 2
3. mod_NombreModulo.php <?php /** * Modulo de disponibiliad de eventos - joomlagt.prg * * @license GNU/GPL, see LICENSE.php * mod_eventosis free software. Thisversionmayhavebeenmodifiedpursuant * tothe GNU General PublicLicense, and as distributeditincludesor * isderivative of workslicensedunderthe GNU General PublicLicenseor * other free or open source software licenses. */ // no acceso directo defined( '_JEXEC' ) or die( 'Restrictedaccess' ); // incluir al helper que devolverá los datos, solo una vez require_once( dirname(__FILE__).DS.'helper.php' ); $eventos = modEventosHelper::getDisponibilidad( $params ); require( JModuleHelper::getLayoutPath( 'mod_eventos','default') ); ?> Abril 2011 3
4.
5.
6.
7.
8. mod_NombreModulo.xml Datos Generales del Módulo Estos datos se ven reflejados en el administrador Al instalar Al configurar Al eliminar Abril 2011 9 <?xmlversion="1.0" encoding="utf-8"?> <installtype="module" version="1.5.0"> <name>Disponibilidad en el Evento</name> <author>Leonel Canton</author> <version>1.5.0</version> <creationDate>01.04.2011</creationDate> <description>asientos disponibles en un evento</description> <authorEmail>lcanton@joomlagt.org</authorEmail>
9. mod_NombreModulo.xml <files>……</files> Abril 2011 10 Aquí se incluyen todos los archivos incluidos en el módulo <files> <filename>mod_eventos.xml</filename> <filenamemodule="mod_eventos">mod_eventos.php</filename> <filename>helper.php</filename> <filename>index.html</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> </files>
10. mod_NombreModulo.xml <languages>……</languages> Abril 2011 11 Aquí se incluyen todos los archivos de idioma que incluidos en el módulo <languages> <!-- Anylanguage files includedwiththe module --> <languagetag="es-ES">es-ES.mod_eventos.ini</language> <languagetag="en-GB">en-GB.mod_eventos.ini</language> </languages>
11. mod_NombreModulo.xml <params>……</params> Abril 2011 12 Aquí se incluyen todos los parámetros que deseamos incluir en el módulo <paramname="id_evento" type="text" default="1" label="Id del Evento" description="Muestra la información del evento" > </param>
12. Helper.php <?php defined('_JEXEC') or die('Restrictedaccess'); classmodEventosHelper { functiongetDisponibilidad( $params ) { $db =& JFactory::getDBO(); $paramid_evento = $params->get('id_evento'); $query ='SELECT #__eventos.disponibilidad, #__eventos.nombre, #__eventos.disponibilidad - count(#__eventos_participantes.evento_id ) as restantes, count(#__eventos_participantes.evento_id ) as participantes_inscritos, #__eventos.descripcion_breve, #__eventos.fecha, #__eventos.hora_inicio, #__eventos.hora_fin, #__eventos.lugar FROM #__eventos leftjoin #__eventos_participantes ON #__eventos.id = #__eventos_participantes.evento_id WHERE #__eventos.id='.$paramid_evento ; $db->setQuery($query); $eventos = $db->loadObjectList(); return$eventos; } } ?> Abril 2011 13
16. Default.php <?php $sufijo = $params->get('class_sfx'); ?> <divclass="Eventos<?php echo $sufijo; ?>"> </div> Con estas líneas yo puedo agregar una clase csspersonalizada al módulo, permitiendo que pueda tener varias copias del mismo módulo Abril 2011 17
17. Default.php <?phpforeach($eventos as $eventos) : ?> $restantes = $eventos->restantes; $total_disponible = $eventos->disponibilidad; $fecha = $eventos->fecha; $nombre = $eventos->nombre; $lugar = $eventos->lugar; <?phpendforeach; ?> </div> Con estas líneas tengo acceso al resultado de la consulta realizada en el helper.php Abril 2011 18