15 de marzo de 2013

Qué es Joomla?

Joomla! es una aplicación web de gestión de contenidos que permite, desde grandes organizaciones hasta personas individuales, crear y mantener páginas web (sitios web) sin mayores conocimientos técnicos. Joomla! es un sistema libremente disponible, es decir se puede usar gratis, y en permanente evolución liberando nuevas versiones del sistema periodicamente desde el año 2005 a la fecha.

Debido a su facilidad de personalización, proveer una simple gestión de contenidos desde el propio navegador, su escalabilidad, y una gran comunidad de desarrolladores y diseñadores ha llevado a Joomla! ha consolidarse en una de las tres principales aplicaciones de su tipo en Internet. Se estima que Joomla!, en una panorámica actual (2013), es usado en aproximadamente el 3% de todos los sitios web en Internet.
Joomla! es una aplicación web del tipo CMS (Sistema de Administración de Contenidos) flexible y escalable, al igual que otras populares aplicaciones como: Wordpress y Drupal que también son CMS de libre acceso (gratis en su uso) y de código abierto (abierto a modificaciones en su código).

Inicio de Joomla!

Joomla! tiene sus orígenes en Mambo Open Source (MOS o Mambo OS), una variación del CMS Mambo pero de código abierto propiedad de la empresa australiana Miro International. Joomla! se origina por cambios en la licencia que la empresa propietaria aplicó a Mambo Open Source.
Noticia que causó un revuelo en el mundo open source y de cierta medida dió más notoriedad a Mambo, en especial al conocerse publicamente la intención de los desarrolladores líderes como Andrew Eddie de iniciar un nuevo sistema en reemplazo de Mambo OS.
En ese escenario nació Joomla!, en el año 2005, en sus orígenes fue muy similar a Mambo Open Source, sin duda para mantener la compatibilidad con los sitios que aún usaban ese CMS, pero con una licencia sin las restricciones de este último.
El nombre adoptado para el nuevo sistema fue Joomla!, una palabra que el lenguaje sujili significa 'Todos Juntos!' muy bien representado en su logotipo.
Esto dio inicio a una creciente comunidad de desarrolladores y diseñadores que colaboraron y aportaron a este nuevo sistema. Y posibilitó su rápido desarrollo, dejando el camino abierto a los sitios que usaban MOS (Mambo Open Source) poder migrar a Joomla!.

Ventajas de Joomla!

Joomla! es un sistema administrador de contenidos (CMS), desarrollado en PHP junto con la base de datos MySQL que posee una gran versatilidad en la adaptación del sistema para:
  • Incorporara Distintas funcionalidades. Es decir, ir más allá de la gestión de contenidos y crear otro tipo de aplicación web.
  • Una personalización profunda en el diseño de su interfaz. Ya sea creado una nueva plantilla, o comprando y/o adaptando las disponibles en el mercado.
En sus primeras versiones, Joomla! fue muy criticado porque no traia un manejo de direcciones amigables (Friendly URLs) de paquete y su limitado nivel en la jerarquía de contenidos, en relación a otros CMS's. Sin embargo, estos problemas ya han sido resueltos en las versiones actuales de Joomla!.
La creación de distintas funcionalidades, y poder usar Joomla! como motor para: Crear un sistema de avisos clasificados, o un portal de descargas, o un sitio comunitario, o una tienda de e-commerce o cualquier otra funcionalidad distinta a un CMS tradicional. O simplemente usar Joomla! y agregar sólo un componente de para gestionar los comentarios.
Y lo principal de Joomla!, hacer todo el cambio de la funcionalidad y presentación gráfica del sistema si un conocimiento técnico del usuario, sólo valiendose de la gran disponibilidad de componentes gratis y de pago para Joomla!.
El lugar donde se encuentran disponibles y organizados las Extensiones de Joomla! es:
También hay facilidades para los usuarios desarrolladores en adoptar Joomla! como sus sistema de gestión de contenidos, especialmente en las últimas versiones del sistema, donde el patrón de diseño MVC se ha consolidado como la Arquitectura de Desarrollo habitual en joomla.

¿Cómo iniciar mi proyecto web con Joomla!?

Para iniciar un proyecto web con la última versión de Joomla!, se requiere:
  • Un servidor web: Por ejemplo, Apache 2 o IIS 7.
  • El interprete PHP versión 5.3.1 o mayor.
  • MySQL versión 5.1 o mayor. También puede funcionar con: MS SQL 10.50.1600.1 o mayor, y PostgreSQL 8.3.18 o mayor.
Y naturalemente descargar la última versión de Joomla!, es este caso, Joomla! 3.0:

¿Cómo se administra Joomla!?

Joomla! dispone de dos (2) puntos de acceso: uno punto que corresponde al front-end del sistema, o mejor dicho la parte pública de la aplicación, y otro punto de acceso que corresponde a la interfaz de administración del sistema.
Por ejemplo, si instalamos Joomla! en el dominio 'www.mi_proyecto.com', entonces los accesos son los siguientes:
  • Acceso público de Joomla!: http://www.mi_proyecto.com
  • Acceso al panel de administración: http://www.mi_proyecto.com/administrator/
En la versión de Joomla!, Joomla 3.0, el panel de administración recibió un rediseño completa, mejorando sustancialmente su usabilidad, y facilitando su administración desde dispositivos móviles.
Esta es una de las grandes novedades de Joomla!, el hacer el sistema compatible con los dispositivos móviles, así si se desea migrar su sitio web a Joomla! tendrá un sitio web para móviles directamente.
La administración de Joomla!, permite:
  • Gestionar los contenidos.
  • Ampliar las características del sistema.
La Ampliación de las características funcionales y de presentación de Joomla! se manejan en los siguientes ámbitos:
  • Administración de Templates.
  • Administración de agregados de Funcionalidad:
  • Componentes.
  • Módulos.
  • Y Plugins.
Joomla!, separa la funcionalidad que puede ser agregada al sistema base en: Componentes, Módulos y Plugins. Entonces, ¿Cual es la diferencia entre ellos?
###Tipos de extensiones en Joomla! En una explicación simple, podríamos decir que las Extensiones en Joomla funcionan del siguiente modo:
  1. Un componente de Joomla! es un paquete de software que mantiene un control sobre una URL, es decir, contiene al menos un controlador si lo miramos desde la perspectiva del patrón de diseño MVC.
  2. Por otro lado, un Módulo en Joomla! es un paquete de software que se accesa o ejecuta desde dentro del contexto de la plantilla (front-end) del sistema, no es posible acceder a un módulo individualmente desde una URL, como es el caso de los componentes.
  3. Por último un Plugin de Joomla!, cuyo nombre recibido en Mambo Open Source era Mambots, son paquetes de software que interactúan con el núcleo del sistema y permiten interceptar ciertas llamadas, son una especie de 'hooks' con los encontrados en algunos populares frameworks PHP. Por ejemplo, un plugin puede actuar reconociendo cierto elemento de contenido en un artículo y sustituirlo por otro.
Todas estas extensiones de Joomla!, se pueden instalar, configurar y desinstalar por el propio usuario desde el panel de administración de Joomla!.

¿Es Joomla! apropiado para mi aplicación web?

Joomla! actualmente es un sistema muy poderoso, para crear aplicaciones para la Web 2.0. Sin embargo, no es la herramienta apropiada para cualquier tipo de proyecto. Por ejemplo, si en los requerimientos funcionales de nuestra aplicación son muy particulares, entonces tendríamos problemas de encontrar las extensiones adecuadas.
Además, ir ampliando sucesivamente el sistema cargando toda la base de código de Joomla! sería más costoso, en terminos de desarrollo y de hardware, que diseñar un sistema a la medida. Este no es un problema específico de Joomla!, sino de la gran mayoría de los CMS's.
El otro problema que se presenta, es para los usuarios que ya tienen portales web corriendo sobre Joomla!, es la facilidad o mejor dicho, dificultad de migrar los contenidos a otro aplicación, debido a las inconsistencias que se plasman en la base de datos de las instalación de las distintas extensiones de Joomla!. También en este aspecto no es un problema base del sistema, sino de la forma que es administrado Joomla! en muchos casos.
Pese a todo Joomla!, sigue siendo una buena alternativa para el desarrollo rápido de aplicaciones web si se tiene el conocimiento de las extensiones adecuadas para hacerlo.