Joomla! Avanzado - Crear extensiones a medida (I)
Cuando trabajamos con Joomla! tenemos un ecosistema completo de extensiones listas para usar que nos sirven para infinidad de cosas. Sin embargo, no siempre encontramos lo que queremos, o lo que un cliente necesita. También ocurre que, a veces, las extensiones que encontramos tienen un modo de funcionamiento que no es el que nos interesa. Por todo ello, nunca está de más ponernos código en mano y crear nosotros mismos la extensión.
Esta es la primera entrega de una serie en la que queremos explicar los primeros pasos para poder programar extensiones en Joomla!.
En Joomla! existen muchos tipos de extensiones, desde una simple librería con un conjunto de clases para hacer cosas repetitivas sobre una aplicación hasta un template que muestra un HTML que tenemos como plantilla para generar un contenido.
También tenemos la posibilidad de hacer plugins, haciendo enganche con eventos de Joomla!, personalizar una generación de un contenido, personalizar una autenticación, etc. Módulos, que son una pequeña área o bloque de una web, que se muestra en diferentes posiciones, siempre dentro de una plantilla, y permite personalizar tanto la parte front-end como back-end. Por último, los componentes permiten hacer un sistema completo de gestión de contenidos, programando cualquier cosa que quieras hacer totalmente nueva en Joomla!, que contendría tanto la parte del front-end como la parte del back-end para administración de los componentes.
Requisitos previos para programar para Joomla!
Si queremos programar para Joomla!, necesitamos contar con una serie de elementos previamente:
- Entorno de ejecución de PHP, con Apache, MySQL, PHP
- Entorno de desarrollo, como pueden ser Sublime Text, Aptana, o PhpStorm, Brackets, etc.
Además, en cuanto a conocimientos necesitas:
- PHP
- Javascript y jQuery
- HTML5 y CSS
- Recomendados, Git, Xdebug
Como referencia a conocimientos útiles también se recomienda seguir la documentación oficial de Joomla! para desarrolladores, donde encontrarás mucha información. Está en inglés, pero que si no tienes problemas con el idioma es importante revisar esta página porque dan muchos trucos interesantes para poder desarrollar Joomla! en la mejor de las condiciones y con un nivel de estandarización elevado.
Además,merece la pena conocer los denominados Joomla! Coding Standards, para asegurarte que tu código tiene la calidad y la forma adecuada en Joomla!. El manual de Joomla! Coding Standards está disponible en https://joomla.github.io/coding-standards/
Consejos importantes a la hora de programar para Joomla!
El core de Joomla! soluciona muchas dudas que puedas tener, así que si tienes interés en aprender a hacer las cosas bien, no dejes de observarlo.
No cargues CSS o Javascript desde dentro de un módulo. Ten en cuenta que hay funciones que permiten hacer eso y genera código más mantenible, sitios web mejor posicionados y, además, la posibilidad que otros desarrolladores modifiquen las cargas del CSS o Javascript sin tener que editar el código del propio módulo. Ten en cuenta que, si necesitas cargar jQuery, hay que agregar un parámetro en el config.
Ojo con las consultas SQL. Joomla! tiene una librería llamada jDatabaseQuery que te permite una interfaz mucho más cómoda y segura que escribir las SQL a mano. Recuerda que en el Core puedes ver muchos ejemplos de uso de esta librería. Si al final del todo prefieres generar tu propio SQL, por favor, no olvides nunca escapar las variables que inyectas en las consultas.
Ten en consideración usar un sistema de autoloading para cargar las clases de tu módulo.
En próximos artículos de esta serie sobre Joomla! Avanzado, explicaremos cómo crear un primer módulo para este gestor de contenido.