Programación avanzada en Joomla!

download Programación avanzada en Joomla!

If you can't read please download the document

description

Presentación realizada por Fernando Hidalgo y Juan Luis Pérez sobre programación avanzada en Joomla! en el 2009 JoomlaDay! en Barcelona.

Transcript of Programación avanzada en Joomla!

  • 1. JoomlaDay 2009
      • Taller avanzado de programacin

2. JoomlaDay - Taller Avanzado de Desarrollo - ndice

  • Introduccin: Presentacin 3. Introduccin: Objetivos 4. IDE: Instalando NetBeans 5. IDE: JoomlaCode 6. Esqueleto: Creando esqueleto 7. Esqueleto: Creando do.sh 8. Instalador: Vista version, paquete auto-actualizable 9. Instalador: Mltiples mdulos y plugins 10. Instalador: Mdulos en nuestras vistas 11. Propuesta FrontEnd: Diseo OO 12. Propuesta FrontEnd: Controladores y peticiones AJAX 13. Propuesta FrontEnd: Mtodo genrico GET 14. Otros ejemplos: Ms formas de potenciar nuestros componentes

Fernando Hidalgo - Juan Luis Prez (Blobject) 15. Introduccin: Presentacin

  • Fernando Hidalgo (hidabe) 16. Juan Luis Prez 17. Blobject http://www.blobject.es 18. DentroVideo - http://www.dentrovideo.com

Fernando Hidalgo - Juan Luis Prez (Blobject) 19. Introduccin: Objetivos

  • Conocimientos previos deseados: Linux, IDEs, PHP, Joomla FrameWork. 20. Optimizar tiempo en el desarrollo. 21. Conocer mejor la potencia del FrameWork de Joomla. 22. Programacin mejor estructurada. 23. Aplicar conceptos de Joomla 1.6 desde ya.

Fernando Hidalgo - Juan Luis Prez (Blobject) 24. IDE

  • Concepto: Integrated Development Environment 25. Nuestra propuesta: NetBeans, JoomlaCode, SVN 26. Por qu NetBeans en lugar de Eclipse? 27. Ventajas: Derivadas directamente del uso de NetBeans, JoomlaCode, SVN: 28. Uso de JoomlaCode (oficial) 29. Control de versiones, 30. Fcil trabajo en equipo, 31. Fcil y rpido desarrollo, fcil y rpidas liberaciones.

Fernando Hidalgo - Juan Luis Prez (Blobject) 32. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 33. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 34. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 35. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 36. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 37. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 38. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 39. IDE: Instalando NetBeans Fernando Hidalgo - Juan Luis Prez (Blobject) 40. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 41. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 42. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 43. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 44. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 45. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 46. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 47. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 48. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 49. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 50. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 51. IDE: JoomlaCode Fernando Hidalgo - Juan Luis Prez (Blobject) 52. IDE: Ruegos y Preguntas

  • Tienes alguna duda?

53. Esqueleto: Creando esqueleto Fernando Hidalgo - Juan Luis Prez (Blobject) 54. Esqueleto: Creando esqueleto Fernando Hidalgo - Juan Luis Prez (Blobject) 55. Esqueleto: Creando esqueleto Fernando Hidalgo - Juan Luis Prez (Blobject) 56. Esqueleto: Creando esqueleto Fernando Hidalgo - Juan Luis Prez (Blobject) 57. Esqueleto: Creando esqueleto: XML

  • Uso de la etiqueta 58. Creamos index.html en todas las carpetas 59. Directorio sql para auto-updater 60. Vistas bsicas del admin: version y panel 61. Directorio helpers en components 62. Method upgrade

Fernando Hidalgo - Juan Luis Prez (Blobject) 63. Esqueleto: Creando do.sh

  • Crearemos un script: do.sh que empaquete el componente 64. Metemos el script en el repositorio 65. Ejecutamos una vez el script y aadimos el paquete al repositorio

Fernando Hidalgo - Juan Luis Prez (Blobject) 66. Esqueleto: Ruegos y Preguntas

  • Tienes alguna duda?

67. Instalador: Vista version, auto-actualizar

  • De qu se trata? Concepto - Jfusion 68. Ventajas 69. Vista version 70. install.advhelloworld.php 71. Mtodo getVersionLocal() 72. Mtodo getVersionRemote() 73. Ejecutando ficheros SQLs segn fecha 74. Ejemplo de modificacin

Fernando Hidalgo - Juan Luis Prez (Blobject) 75. Instalador: Mltiples mdulos y plugins

  • De qu se trata? Concepto Jfusion 76. Ventajas 77. Actualizando do.sh 78. Recorriendo paquetes de forma dinmica y textos en fichero de lenguaje (install.advhelloworld.php) 79. Ejemplo de modificacin: aadir un nuevo mdulo

Fernando Hidalgo - Juan Luis Prez (Blobject) 80. Instalador: Modulos en nuestras vistas

  • Modificar los XML de las plantillas 81. View.php 82. Insertando los mdulos en nuestros templates

83. Instalador: Ruegos y Preguntas

  • Tienes alguna duda?

84. Propuesta Frontend: Diseo OO

  • Superclases (clases abstractas) 85. Advhelloworld.php 86. Model.php View.php y Controller.php 87. Patrones GRASP
    • Bajo Acoplamiento.-Debe haber pocas dependencias entre las clases 88. Experto.-La responsabilidad de realizar una labor es de la clase que tiene o puede tener los datos involucrados (atributos) 89. Alta Cohesin.-Cada elemento debe realizar una labor nica y auto-identificable 90. 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 inicializacin de A o usa a A.

91. Propuesta Frontend: Controladores y AJAX

  • Valoraciones de AJAX en el Frontend
    • Accesibilidad 92. Usabilidad 93. Rendimiento
  • Ejemplos en DentroVideo con mootools 1.2
    • DOM 94. Estructura del archivo JS

95. Propuesta FrontEnd: Mtodo genrico GET

  • Concepto: Mtodo genrico para hacer una consulta de forma fcil a cualquier tabla. 96. Ventajas:
    • Mismo mtodo para todas las consultas 97. No tenemos que escribir tanto cdigo
  • Implementacin del mtodo en model.php 98. Ejemplo de uso en el modelo temas.php

99. FrontEnd: Ruegos y Preguntas

  • Tienes alguna duda?

100. Otros ejemplos

  • Componente DentroVideo. 101. Sistema de generacin de themes. 102. Sistema de permisos. Elemento avanzado de Panel de Configuracin de Joomla. 103. Potencia de Sistema de plugins y eventos. Plugin de mensajes en popup. 104. Discover & Import de Youtube. Uso de AJAX.

105. Ruegos y Preguntas

  • Tienes alguna duda?