SlideShare une entreprise Scribd logo
1  sur  18
Módulos en Joomla! Leonel Cantón @leonelcanton
Estructura de Archivos Por estandarización todos los módulos deben tener por lo menos estos archivos Abril 2011 2
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
mod_NombreModulo.php defined( '_JEXEC' ) or die( 'Restrictedaccess' ); Abril 2011 4 ,[object Object]
Todos los archivos en Joomla! deberían iniciar con esta instrucción,[object Object]
Recordar que Joomla! utiliza MVC,[object Object]
La variable $eventos puede ser consultada del el template del módulo,[object Object],[object Object]
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>
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>
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>
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>
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
Helper.php $paramid_evento = $params->get('id_evento'); Abril 2011 14 Para leer los parámetros del Módulo
Helper.php $db =& JFactory::getDBO(); $query= “Select …. ”; $db->setQuery($query); $eventos = $db->loadObjectList(); Abril 2011 15 Interacción con DB
Default.php <?php // no directaccessdefined( '_JEXEC' ) or die( 'Restrictedaccess' ); ?> <?php $sufijo = $params->get('class_sfx'); ?> <divclass="Eventos<?php echo $sufijo; ?>">  <?phpforeach($eventos as $eventos) :  ?> <?phpif ($params->get('text_before')) { 	$restantes = $eventos->restantes; $total_disponible = $eventos->disponibilidad; $fecha = $eventos->fecha; $nombre = $eventos->nombre; $lugar = $eventos->lugar; $text_before= $params->get('text_before'); echo '<divclass="text_before'.$sufijo.'">'; $restantes = str_replace("%restantes%", $restantes, $text_before); if($params->get('mostrar_total')) { $restantes = str_replace("%total_disponible%", " de ". $total_disponible, $restantes);} if($params->get('mostrar_nombre')) { 		$restantes = str_replace("%Nombre%", " Nombre: ". $nombre."</br>", $restantes); } else 		$restantes = str_replace("%Nombre%", " ", $restantes); if($params->get('mostrar_fecha')) { 		$restantes = str_replace("%Fecha%", " Fecha: ". $fecha."</br>", $restantes); } else 		$restantes = str_replace("%Fecha%", " ", $restantes); if($params->get('mostrar_lugar')) { 		$restantes = str_replace("%Lugar%", " Lugar: ". $lugar."</br>", $restantes); } else 	$restantes = str_replace("%Lugar%", " ", $restantes); 		echo $restantes; echo "</div>";} ?> <?phpendforeach; ?>  </div> Abril 2011 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
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
Crear modulos

Contenu connexe

Tendances

Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresÁlvaro Alonso González
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptjubacalo
 
Evidencia: Sesión Virtual Funciones PHP
Evidencia: Sesión Virtual Funciones PHPEvidencia: Sesión Virtual Funciones PHP
Evidencia: Sesión Virtual Funciones PHPSebastián Joya
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcatjubacalo
 
Jose manuel avila gonzález
Jose manuel avila gonzálezJose manuel avila gonzález
Jose manuel avila gonzálezJose Avila
 
Jose manuel avila gonzález
Jose manuel avila gonzálezJose manuel avila gonzález
Jose manuel avila gonzálezJose Avila
 
Evidencia sesión virtual “funciones php”
Evidencia sesión virtual “funciones php”Evidencia sesión virtual “funciones php”
Evidencia sesión virtual “funciones php”JOANSAGO
 
Wp config.php
Wp config.phpWp config.php
Wp config.phpgregozz
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4pokerpc
 
Curso de Desarrollo Web
Curso de Desarrollo WebCurso de Desarrollo Web
Curso de Desarrollo Webjuliocombativo
 

Tendances (15)

Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladores
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
 
Evidencia: Sesión Virtual Funciones PHP
Evidencia: Sesión Virtual Funciones PHPEvidencia: Sesión Virtual Funciones PHP
Evidencia: Sesión Virtual Funciones PHP
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Jsf
JsfJsf
Jsf
 
Jose manuel avila gonzález
Jose manuel avila gonzálezJose manuel avila gonzález
Jose manuel avila gonzález
 
Jose manuel avila gonzález
Jose manuel avila gonzálezJose manuel avila gonzález
Jose manuel avila gonzález
 
Evidencia sesión virtual “funciones php”
Evidencia sesión virtual “funciones php”Evidencia sesión virtual “funciones php”
Evidencia sesión virtual “funciones php”
 
Wp config.php
Wp config.phpWp config.php
Wp config.php
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Php1
Php1Php1
Php1
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4
 
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnitIntroducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
 
Curso de Desarrollo Web
Curso de Desarrollo WebCurso de Desarrollo Web
Curso de Desarrollo Web
 

En vedette

Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Roberto Segura
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomlaRoberto Segura
 
Taller de introducción a Fabrik
Taller de introducción a FabrikTaller de introducción a Fabrik
Taller de introducción a Fabrikjachavesnaranjo
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!SergioIglesiasNET
 
Manual Google Adwords 2017. Intruduccion
Manual Google Adwords 2017. IntruduccionManual Google Adwords 2017. Intruduccion
Manual Google Adwords 2017. IntruduccionUnai Benito
 
Tutorial de MailChimp en español · Guía completa Ⓡ
Tutorial de MailChimp en español · Guía completa ⓇTutorial de MailChimp en español · Guía completa Ⓡ
Tutorial de MailChimp en español · Guía completa ⓇRubén Alonso
 
10 trucos para no tirar el dinero en Google AdWords. 2018 Manual Google Adwo...
10 trucos para no tirar el dinero en Google AdWords. 2018  Manual Google Adwo...10 trucos para no tirar el dinero en Google AdWords. 2018  Manual Google Adwo...
10 trucos para no tirar el dinero en Google AdWords. 2018 Manual Google Adwo...Unai Benito
 
Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021
Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021 Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021
Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021 Abraham Morales Ruiz
 

En vedette (10)

Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
 
Api joomla!.key
Api joomla!.keyApi joomla!.key
Api joomla!.key
 
Creando plantillas responsive para Joomla, por David Hurley
Creando plantillas responsive para Joomla, por David HurleyCreando plantillas responsive para Joomla, por David Hurley
Creando plantillas responsive para Joomla, por David Hurley
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomla
 
Taller de introducción a Fabrik
Taller de introducción a FabrikTaller de introducción a Fabrik
Taller de introducción a Fabrik
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!
 
Manual Google Adwords 2017. Intruduccion
Manual Google Adwords 2017. IntruduccionManual Google Adwords 2017. Intruduccion
Manual Google Adwords 2017. Intruduccion
 
Tutorial de MailChimp en español · Guía completa Ⓡ
Tutorial de MailChimp en español · Guía completa ⓇTutorial de MailChimp en español · Guía completa Ⓡ
Tutorial de MailChimp en español · Guía completa Ⓡ
 
10 trucos para no tirar el dinero en Google AdWords. 2018 Manual Google Adwo...
10 trucos para no tirar el dinero en Google AdWords. 2018  Manual Google Adwo...10 trucos para no tirar el dinero en Google AdWords. 2018  Manual Google Adwo...
10 trucos para no tirar el dinero en Google AdWords. 2018 Manual Google Adwo...
 
Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021
Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021 Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021
Examen Conceptos Básicos Google Ads. Respuestas Google Ads 2021
 

Similaire à Crear modulos

Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Raul Fraile
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroEduardo Turiño
 
Android Bootcamp - GTUG Uruguay
Android Bootcamp - GTUG UruguayAndroid Bootcamp - GTUG Uruguay
Android Bootcamp - GTUG Uruguaygtuguruguay
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.comoctabio
 
Web matrix y j querymobile
Web matrix y j querymobileWeb matrix y j querymobile
Web matrix y j querymobileGonzalo C.
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebChema Alonso
 
Construcción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARConstrucción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARMarcos Martinez
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NETpabloesp
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigMarcos Labad
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2Mario IC
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 
Sesiones en-php1536
Sesiones en-php1536Sesiones en-php1536
Sesiones en-php1536xib32
 

Similaire à Crear modulos (20)

Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde Cero
 
Android Bootcamp - GTUG Uruguay
Android Bootcamp - GTUG UruguayAndroid Bootcamp - GTUG Uruguay
Android Bootcamp - GTUG Uruguay
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.com
 
Web matrix y j querymobile
Web matrix y j querymobileWeb matrix y j querymobile
Web matrix y j querymobile
 
Introduccion Struts2
Introduccion Struts2Introduccion Struts2
Introduccion Struts2
 
PHP
PHPPHP
PHP
 
Encuentro Linux 2011
Encuentro Linux 2011Encuentro Linux 2011
Encuentro Linux 2011
 
Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en Web
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Construcción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARConstrucción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEAR
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NET
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. Twig
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Step by step developing with Facebook PHP API by Bruno Kamiche
Step by step developing  with Facebook PHP API by Bruno KamicheStep by step developing  with Facebook PHP API by Bruno Kamiche
Step by step developing with Facebook PHP API by Bruno Kamiche
 
Sesiones en-php1536
Sesiones en-php1536Sesiones en-php1536
Sesiones en-php1536
 
Sesiones en Php
Sesiones en  PhpSesiones en  Php
Sesiones en Php
 

Plus de Grupo de Usuarios de Joomla! Guatemala

Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...
Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...
Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...Grupo de Usuarios de Joomla! Guatemala
 

Plus de Grupo de Usuarios de Joomla! Guatemala (19)

Overrides intecap-leo canton
Overrides intecap-leo cantonOverrides intecap-leo canton
Overrides intecap-leo canton
 
Sitios web responsive con Joomla!
Sitios web responsive con Joomla!Sitios web responsive con Joomla!
Sitios web responsive con Joomla!
 
Sitios Multi Idiomas, por Leonel Cantón
Sitios Multi Idiomas, por Leonel CantónSitios Multi Idiomas, por Leonel Cantón
Sitios Multi Idiomas, por Leonel Cantón
 
Joomla Platform, por David Hurley
Joomla Platform, por David HurleyJoomla Platform, por David Hurley
Joomla Platform, por David Hurley
 
Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...
Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...
Joomla + Azure: Interoperabilidad y Escalabilidad en tus manos, por Víctor Ca...
 
Creando un mundo mejor con Joomla, por Paul Orwig
Creando un mundo mejor con Joomla, por Paul OrwigCreando un mundo mejor con Joomla, por Paul Orwig
Creando un mundo mejor con Joomla, por Paul Orwig
 
SEO en Joomla
SEO en JoomlaSEO en Joomla
SEO en Joomla
 
Frameworks para Plantillas, por Tito Alvarez
Frameworks para Plantillas, por Tito AlvarezFrameworks para Plantillas, por Tito Alvarez
Frameworks para Plantillas, por Tito Alvarez
 
Responsive Web Design, por Víctor López
Responsive Web Design, por Víctor LópezResponsive Web Design, por Víctor López
Responsive Web Design, por Víctor López
 
Un recorrido por Joomla 3
Un recorrido por Joomla 3Un recorrido por Joomla 3
Un recorrido por Joomla 3
 
Introducción a Joomla, por Gretel Gutiérrez
Introducción a Joomla, por Gretel GutiérrezIntroducción a Joomla, por Gretel Gutiérrez
Introducción a Joomla, por Gretel Gutiérrez
 
Conferencia Inicial del Joomla Day Guatemala 2013. Paul Orwig
Conferencia Inicial del Joomla Day Guatemala 2013.  Paul OrwigConferencia Inicial del Joomla Day Guatemala 2013.  Paul Orwig
Conferencia Inicial del Joomla Day Guatemala 2013. Paul Orwig
 
Joomla! sitio web en 30 minutos (Flisol GT 2011)
Joomla! sitio web en 30 minutos (Flisol GT 2011)Joomla! sitio web en 30 minutos (Flisol GT 2011)
Joomla! sitio web en 30 minutos (Flisol GT 2011)
 
Diseñar en joomla!.key
Diseñar en joomla!.keyDiseñar en joomla!.key
Diseñar en joomla!.key
 
Qué es joomla
Qué es joomlaQué es joomla
Qué es joomla
 
Template overrides
Template overridesTemplate overrides
Template overrides
 
Qué más podemos hacer admin joomla
Qué más podemos hacer  admin joomlaQué más podemos hacer  admin joomla
Qué más podemos hacer admin joomla
 
Estructura básicas de plantillas en joomla!
Estructura básicas de plantillas en joomla!Estructura básicas de plantillas en joomla!
Estructura básicas de plantillas en joomla!
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 

Dernier

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 

Dernier (20)

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 

Crear modulos

  • 1. Módulos en Joomla! Leonel Cantón @leonelcanton
  • 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
  • 13. Helper.php $paramid_evento = $params->get('id_evento'); Abril 2011 14 Para leer los parámetros del Módulo
  • 14. Helper.php $db =& JFactory::getDBO(); $query= “Select …. ”; $db->setQuery($query); $eventos = $db->loadObjectList(); Abril 2011 15 Interacción con DB
  • 15. Default.php <?php // no directaccessdefined( '_JEXEC' ) or die( 'Restrictedaccess' ); ?> <?php $sufijo = $params->get('class_sfx'); ?> <divclass="Eventos<?php echo $sufijo; ?>"> <?phpforeach($eventos as $eventos) : ?> <?phpif ($params->get('text_before')) { $restantes = $eventos->restantes; $total_disponible = $eventos->disponibilidad; $fecha = $eventos->fecha; $nombre = $eventos->nombre; $lugar = $eventos->lugar; $text_before= $params->get('text_before'); echo '<divclass="text_before'.$sufijo.'">'; $restantes = str_replace("%restantes%", $restantes, $text_before); if($params->get('mostrar_total')) { $restantes = str_replace("%total_disponible%", " de ". $total_disponible, $restantes);} if($params->get('mostrar_nombre')) { $restantes = str_replace("%Nombre%", " Nombre: ". $nombre."</br>", $restantes); } else $restantes = str_replace("%Nombre%", " ", $restantes); if($params->get('mostrar_fecha')) { $restantes = str_replace("%Fecha%", " Fecha: ". $fecha."</br>", $restantes); } else $restantes = str_replace("%Fecha%", " ", $restantes); if($params->get('mostrar_lugar')) { $restantes = str_replace("%Lugar%", " Lugar: ". $lugar."</br>", $restantes); } else $restantes = str_replace("%Lugar%", " ", $restantes); echo $restantes; echo "</div>";} ?> <?phpendforeach; ?> </div> Abril 2011 16
  • 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