Transparencias del taller sobre desarrollo de extensiones para el CMS Joomla! que dío Jesús Espino en la Asocación de Webmasters de Granada el 13 de Noviembre de 2009.
1. ´
Indice
Desarrollo de m´dulos y componentes en Joomla
o
Jes´s Espino Garc´
u ıa
jespinog@gmail.com
Granada - Noviembre 2009
13 de noviembre de 2009
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
2. ´
Indice
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
3. Introducci´n
o
Desarrollo
Otros temas
Para terminar
¿Qu´ es Joomla?
e
Gestor de contenidos (CMS).
Framework de desarrollo.
Extensible.
Moderno.
Sencillo.
Bonito.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
4. Introducci´n
o
Desarrollo
Otros temas
Para terminar
¿Por que programar sobre Joomla?
Es sencillo.
Es r´pido.
a
Es f´cil de integrar.
a
Es un framework.
Es libre y gratuito.
Muchas extensiones (no es necesario partir de 0).
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
5. Introducci´n
o
Desarrollo
Otros temas
Para terminar
¿Que extensiones soporta?
Plantillas.
Componentes.
M´dulos.
o
Plugins.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
6. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
7. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
Plantillas
C´digo encargado de dar aspecto y estructura a la pagina.
o
Queda fuera del alcance de este curso.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
8. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
9. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
¿Que son?
Son extensiones de Joomla que nos permiten mostrar informaci´n
o
en el bloque principal del oomla.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
10. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
Ficheros y directorios
Los ficheros de componentes se sit´an en
u
componentes/com_nombredelcomponente.
nombredelcomponente.php: Es el punto de entrada del
componente.
nombredelcomponente.xml: Contiene informaci´n referente
o
al componente, incluida la de instalaci´n.
o
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
11. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
Ejemplo Hola Mundo
Ejemplo de componente que muestra al usuario un mensaje de
”Hola Mundo”.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
12. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
13. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
¿Que son?
Son extensiones de Joomla que nos permiten mostrar informaci´n
o
en diferentes posiciones de la web.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
14. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
Ficheros y directorios
Los ficheros de m´dulos se sit´an en modules.
o u
mod_nombredelmodulo.php: Es el punto de entrada del
modulo.
mod_nombredelmodulo.xml: Contiene informaci´n referente
o
al modulo, incluida la de instalaci´n.
o
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
15. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
Ejemplo Hola Mundo
Ejemplo de componente que muestra al usuario un mensaje de
”Hola Mundo”.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
16. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
17. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
Plugins
Extensiones orientadas a eventos.
Asocian eventos a manejadores (funciones).
Los plugins pueden ser de varios tipos:
Contenido: Hacen conversiones de contenido en el ultimo
momento.
B´squeda: A˜aden soporte de b´squeda en nuestros
u n u
componentes.
Editores: A˜aden soporte para nuevos editores web.
n
Sistema: A˜ade funcionalidades bases del sistema (cache,
n
debug, logs...)
Autenticaci´n: A˜ade soporte para nuevos sistemas de
o n
autenticaci´n.
o
Otros...
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
18. Introducci´n
o Templates/Plantillas
Desarrollo Componentes
Otros temas Modulos
Para terminar Plugins
Ejemplo Hola Mundo
Ejemplo de plugin que enlaza los textos ”Hola Mundo.a su
descripci´n en la wikipedia.
o
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
19. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
20. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
JDatabase
Joomla define un objeto bases de datos.
Este objeto se puede compartir por todo el c´digo.
o
Esta nos permite hacer consultas y obtener objetos de ella
(filas).
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
21. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
JTable
Joomla define un objeto tabla.
Nos permite hacer CRUD sobre una tabla.
Nos permite gestionar acciones habituales (publish, hit,
checkout...).
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
22. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
JModel
Joomla define un objeto modelo.
Nos permite abstraer de los objetos de nuestra base de datos.
Es necesario implementar estas consultas, ya sean con SQL o
con JTables.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
23. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
24. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
Empaquetado
Fichero comprimido que contiene todos los datos de
instalaci´n:
o
El c´digo PHP.
o
El c´digo SQL (si es necesario).
o
Ficheros extra (im´genes, css, javascript...)
a
Fichero de meta-informaci´n de la instalaci´n.
o o
El fichero de meta-informaci´n de la instalaci´n incluye:
o o
Tipo de extensi´n.
o
Informaci´n sobre el programa (nombre, descripci´n, autor,
o o
licencia...).
Informaci´n sobre los ficheros y carpetas a instalar (en el
o
front-end como en el back-end).
Informaci´n del SQL a ejecutar.
o
Informaci´n de par´metros configurables de la extensi´n.
o a o
Otras informaciones.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
25. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
26. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
Par´metros
a
Son configuraciones que se pueden establecer en el
administrador.
Se a˜aden directamente en el XML de instalaci´n.
n o
Permite una forma simple de configurar globalmente las
extensiones.
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
27. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
Parametros: Tipos de parametros
text: Campo de texto.
´
textarea: Area de texto.
list: Lista de selecci´n (con su listado de opciones).
o
radio: Lista tipo radio (con su listado de opciones).
spacer: Linea horizontal (separador).
imagelist: Listado de selecci´n de im´genes. Se le puede
o a
especificar un directorio concreto.
category: Un listado de las categor´ de contenidos de
ıas
Joomla.
section: Un listado de las secciones de contenidos de Joomla.
Otros...
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
28. Introducci´n
o
Accediendo a la base de datos
Desarrollo
Empaquetado
Otros temas
Par´metros
a
Para terminar
Par´metros: Acceso desde el c´digo
a o
Se obtienen del objeto $params usando el m´todo get del
e
siguiente modo:
$params->get(’name’,’if_empty_value’)
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
29. Introducci´n
o
Desarrollo Referencias
Otros temas Dudas
Para terminar
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
30. Introducci´n
o
Desarrollo Referencias
Otros temas Dudas
Para terminar
Referencias
joomla.org: Sitio oficial de Joomla.
help.joomla.org: Secci´n de ayuda del sitio oficial de Joomla.
o
extensions.joomla.org: Secci´n de extensiones del sitio oficial
o
de Joomla.
forge.joomla.org: Gestor de proyectos de Joomla.
www.joomlaspanish.org: Pagina web de Joomla en castellano.
Learning Joomla! 1.5 Extension Development (Packt
Publishing)
Mastering Joomla! 1.5 (Packt Publishing)
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
31. Introducci´n
o
Desarrollo Referencias
Otros temas Dudas
Para terminar
´
Indice
1 Introducci´n
o
2 Desarrollo
Templates/Plantillas
Componentes
Modulos
Plugins
3 Otros temas
Accediendo a la base de datos
Empaquetado
Par´metros
a
4 Para terminar
Referencias
Dudas
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o
32. Introducci´n
o
Desarrollo Referencias
Otros temas Dudas
Para terminar
Dudas
...
Jes´s Espino Garc´ jespinog@gmail.com
u ıa Desarrollo de m´dulos y componentes en Joomla
o