43
JoomlaDay 2009 Taller avanzado de programación

Programación Avanzado Joomla Day 2009

  • Upload
    erny66

  • View
    770

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Programación Avanzado Joomla Day 2009

JoomlaDay 2009

Taller avanzado de programación

Page 2: Programación Avanzado Joomla Day 2009

JoomlaDay - Taller Avanzado de Desarrollo - Índice

Introducción: Presentación

Introducción: Objetivos

IDE: Instalando NetBeans

IDE: JoomlaCode

Esqueleto: Creando esqueleto

Esqueleto: Creando do.sh

Instalador: Vista version, paquete auto-actualizable

Instalador: Múltiples módulos y plugins

Instalador: Módulos en nuestras vistas

Propuesta FrontEnd: Diseño OO

Propuesta FrontEnd: Controladores y peticiones AJAX

Propuesta FrontEnd: Método genérico GET

Otros ejemplos: Más formas de potenciar nuestros componentes

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 3: Programación Avanzado Joomla Day 2009

Introducción: Presentación

Fernando Hidalgo (hidabe)

Juan Luis Pérez

Blobject – http://www.blobject.es

DentroVideo - http://www.dentrovideo.com

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 4: Programación Avanzado Joomla Day 2009

Introducción: Objetivos

Conocimientos previos deseados: Linux, IDEs, PHP, Joomla FrameWork.

Optimizar tiempo en el desarrollo.

Conocer mejor la potencia del FrameWork de Joomla.

Programación mejor estructurada.

Aplicar conceptos de Joomla 1.6 desde ya.

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 5: Programación Avanzado Joomla Day 2009

IDE

Concepto: Integrated Development Environment

Nuestra propuesta: NetBeans, JoomlaCode, SVN

¿Por qué NetBeans en lugar de Eclipse?

Ventajas: Derivadas directamente del uso de NetBeans, JoomlaCode, SVN:

Uso de JoomlaCode (oficial)

Control de versiones,

Fácil trabajo en equipo,

Fácil y rápido desarrollo, fácil y rápidas liberaciones.

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 6: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 7: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 8: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 9: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 10: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 11: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 12: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 13: Programación Avanzado Joomla Day 2009

IDE: Instalando NetBeans

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 14: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 15: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 16: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 17: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 18: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 19: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 20: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 21: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 22: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 23: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 24: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 25: Programación Avanzado Joomla Day 2009

IDE: JoomlaCode

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 26: Programación Avanzado Joomla Day 2009

IDE: Ruegos y Preguntas

¿Tienes alguna duda?

Page 27: Programación Avanzado Joomla Day 2009

Esqueleto: Creando esqueleto

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 28: Programación Avanzado Joomla Day 2009

Esqueleto: Creando esqueleto

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 29: Programación Avanzado Joomla Day 2009

Esqueleto: Creando esqueleto

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 30: Programación Avanzado Joomla Day 2009

Esqueleto: Creando esqueleto

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 31: Programación Avanzado Joomla Day 2009

Esqueleto: Creando esqueleto: XML

Uso de la etiqueta <folder>

Creamos index.html en todas las carpetas

Directorio sql para auto-updater

Vistas básicas del admin: version y panel

Directorio helpers en components

Method upgrade

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 32: Programación Avanzado Joomla Day 2009

Esqueleto: Creando do.sh

Crearemos un script: do.sh que empaquete el componente

Metemos el script en el repositorio

Ejecutamos una vez el script y añadimos el paquete al repositorio

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 33: Programación Avanzado Joomla Day 2009

Esqueleto: Ruegos y Preguntas

¿Tienes alguna duda?

Page 34: Programación Avanzado Joomla Day 2009

Instalador: Vista version, auto-actualizar

¿De qué se trata? Concepto - Jfusion

Ventajas

Vista version

install.advhelloworld.php

Método getVersionLocal()

Método getVersionRemote()

Ejecutando ficheros SQLs según fecha

Ejemplo de modificación

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 35: Programación Avanzado Joomla Day 2009

Instalador: Múltiples módulos y plugins

¿De qué se trata? Concepto – Jfusion

Ventajas

Actualizando do.sh

Recorriendo paquetes de forma dinámica y textos en fichero de lenguaje (install.advhelloworld.php)

Ejemplo de modificación: añadir un nuevo módulo

Fernando Hidalgo - Juan Luis Pérez (Blobject)

Page 36: Programación Avanzado Joomla Day 2009

Instalador: Modulos en nuestras vistas

Modificar los XML de las plantillas

View.php

Insertando los módulos en nuestros templates

Page 37: Programación Avanzado Joomla Day 2009

Instalador: Ruegos y Preguntas

¿Tienes alguna duda?

Page 38: Programación Avanzado Joomla Day 2009

Propuesta Frontend: Diseño OO

Superclases (clases abstractas)

Advhelloworld.php

Model.php View.php y Controller.php

Patrones GRASP

Bajo Acoplamiento.-Debe haber pocas dependencias entre las clases

Experto.-La responsabilidad de realizar una labor es de la clase que tiene o puede tener los datos involucrados (atributos)

Alta Cohesión.-Cada elemento debe realizar una labor única y auto-identificable

Creador.-Se asigna la responsabilidad de que una clase B cree un Objeto de la clase A solamente cuando B contiene a A, está compuesto por A, lo almacena, tiene los datos de inicialización de A o usa a A.

Page 39: Programación Avanzado Joomla Day 2009

Propuesta Frontend: Controladores y AJAX

Valoraciones de AJAX en el Frontend

Accesibilidad

Usabilidad

Rendimiento

Ejemplos en DentroVideo con mootools 1.2

DOM

Estructura del archivo JS

Page 40: Programación Avanzado Joomla Day 2009

Propuesta FrontEnd: Método genérico GET

Concepto: Método genérico para hacer una consulta de forma fácil a cualquier tabla.

Ventajas:

Mismo método para todas las consultas

No tenemos que escribir tanto código

Implementación del método en model.php

Ejemplo de uso en el modelo temas.php

Page 41: Programación Avanzado Joomla Day 2009

FrontEnd: Ruegos y Preguntas

¿Tienes alguna duda?

Page 42: Programación Avanzado Joomla Day 2009

Otros ejemplos

Componente DentroVideo.

Sistema de generación de themes.

Sistema de permisos. Elemento avanzado de Panel de Configuración de Joomla.

Potencia de Sistema de plugins y eventos. Plugin de mensajes en popup.

Discover & Import de Youtube. Uso de AJAX.

Page 43: Programación Avanzado Joomla Day 2009

Ruegos y Preguntas

¿Tienes alguna duda?