English

Parte de la fuerza de Joomla! es la potencia de sus componentes, pero cuando necesitamos una funcionalidad especial, la complejidad en su desarrollo puede dilatar los tiempos de programación. Veamos como solventarlo.

Desarrollar un componente para Joomla! desde cero puede resultar tedioso. Son demasiados los elementos que lo integran: la parte de administración, los archivos del sitio público, los controladores, los modelos, las vistas, los lenguajes, los scripts de integración con la base de datos, formularios...

Joomla! significa potencia y rapidez, no podemos estancarnos. Veamos como salvar de forma creativa la necesidad de implementación de una nueva funcionalidad vía componente.


Llevo más de 15 años que llevo trabajando con Joomla! y he aprendido distintas técnicas para agilizar mis desarrollos. Os voy a tratar de trasladar mi experiencia:

Recordemos que cada URL en Joomla! necesitará obligatoriamente cargar un componente como parte principal de la página, y este componente tendrá que estar ligado a un elemento de menú. El componente siempre condiciona la lógica del contenido de una página, por eso es tan importante.

¿Qué hacemos si no queremos eternizarnos en un desarrollo, y no encontramos un componente que nos genere confianza, o nos resuelva nuestras necesidades?

Os propongo 4 soluciones:

  1. Replicar un componente.
  2. Crear un componente con un servicio externo.
  3. Simular un componente con una vista.
  4. Trabajar con módulos.

Vamos a ver cada una de estas opciones. Cada una de ella tiene sus ventajas e inconvenientes, pero es importante manejar distintas alternativas para poder programar de una manera creativa y rápida. Depende del problema, buscaremos una solución.

1. Replicar un componente base

Tener un componente básico que nos sirva de modelo, para poder replicarlo es una de las soluciones.

Si tenemos un componente base ya desarrollado, con un poco de conocimiento podremos crear vistas, formularios, tablas pero partiendo de una base ya definida.

Yo he desarrollado un componente sencillo que almacena "leads", los categoriza, incorpora algunos campos básicos, con administración y vistas en la parte pública. También tiene un par de vistas vacías (una en el administrador y otra en el site) que son muy útiles para hacer desarrollos rápidos a medida.

Os lo podéis descargar pinchando aquí. Lo he llamado ASM Basic Component  También os lo dejo en GitHUb.

Método: copy & paste, posteriormente cambiar nombres de archivo, manifiestos, espacios de nombres, vistas, etc.. hasta llegar a tener vuestra copia de componente preparada para albergar la nueva funcionalidad.

No entraré más en detalle, pero paciencia si os decidís por esta solución. 

2. Crear un componente con un servicio SaaS

La opción del desarrollo de componentes con un servicio externo es una de mis preferidas:

A veces, a opción más barata.. ¡es pagar!

Sin duda, es mucho más rápido que replicar un modelo base (la opción anterior), pudiendo incorporar de una forma extremadamente fácil y rápida tablas, elementos, fichas, formularios tanto la parte del administrador como en la parte pública de la web.

Esta opción es muy recomendable cuando necesitamos un componente estilo ficha, con listado, campos, filtros.. y que se pueda usar desde el administrador y usar también en la parte pública. Ideal para hacer intranets y para darle al cliente el componente empaquetado y versionado.

Ojo, que no estoy haciendo publicidad, ni me pagan nada por hacer esta recomendación, pero tener contratado un servicio como Joomla Component Creator es esencial en mi día a día como desarrollador Joomla!

Recordemos de nuevo: estamos aquí para hacer cosas interesantes sin perder mucho el tiempo... desarrollamos con Joomla!

Método: registrarse, crear el componente, descargar el instalable e instalar.

3. Un componente de componentes

¡Esta sin duda es una de mis soluciones preferidas!... utilizar vistas "vacías" de un componente para introducir mi propia programación PHP en Joomla!

Esta opción es muy interesante cuando necesitamos programar rápidamente con PHP algo que necesita convertirse en la parte principal de una página (un formulario, un mapa, un carrusel...) y no queremos o necesitamos desarrollar un nuevo componente.

La manera más rápida y sencilla de hacer un componente es... no haciéndolo. 

Método:

  1. Instalamos un componente base con vistas vacías, por ejemplo ASM Basic Component.
  2. Subimos nuestro archivo *.php a la carpeta /components/com_algosemueve/tmpl/blankviews/includes/
  3. Creamos un elemento de menú con el componente "AlgoSeMueve" y la vista "Blankviews"
  4. Seleccionamos en la pestaña layouts el archivo que queremos mostrar.

¡Eureka!... ya tenemos nuestra nueva lógica tipo componente sin tener que haberlo creado.

4. Trabajar con módulos y pasar del componte

Por último, una opción también muy interesante y que podemos utilizar: desarrollar a lógica de una URL con módulos en lugar de componente.

Sabemos que cada página (Item de menú, URL..) en Joomla! siempre necesita un componente para que pueda funcionar. Usemos un componente "tonto", con una vista vacía, que no ejecute nada, y trabajar con módulos y que estos tomen el protagonismo de la lógica.

Método:

  1. Instalamos un componente base con vistas vacías, por ejemplo ASM Basic Component.
  2. Creamos un elemento de menú con el componente "AlgoSeMueve" y la vista "Blankviews"

Espero que estas 4 ideas os puedan ser de utilidad en vuestros desarrollos Joomla!

Un saludo!

Ciro

This site uses third-party cookies to measure and improve your experience.
You decide whether to accept or reject them:
More info