1. Introduction
1.5 Aims of study
La gestión de administración principal del proyecto esta delegada al grupo principal ("CoreTeam"). Todos los miembros de este grupo trabajan en conjunto como un solo grupo, comprometidos para guiar a Joomla! dentro del movimiento de código abierto. Este grupo está compuesto por diferentes perfiles, con variadas experiencias y una serie diversa de disciplinas.
29Joomla:
Este grupo nace cuando se experimentó el surgimiento de Joomla en el 2005. El grupo principal es mucho más que una congregación de desarrolladores, su responsabilidad principal radica en la organización con respecto Joomla en su estructura funcional como organización y no únicamente en la programación del sistema de gestión de contenidos.
El proyecto se constituye de varios grupos que se han creado para enriquecer el conocimiento que la comunidad Joomla proporciona. Cada uno de los grupos se centra en un aspecto especifico de Joomla! que es importante para la expansión y desarrollo, el grupo principal no puede estar en cada discusión de estos temas, por ello existe un líder y un cabecilla alterno en cada uno de los grupos que se encargan de comunicarse de forma directa con el Grupo Principal, ver Figura III. 11.
Los grupos de trabajo, suministran un canal de comunicación esencial entre la gran comunidad de Joomla! y el grupo principal de forma que traen inquietudes a la luz, mediación de cambios y extensión de información.30
Figura III. 11: Estructura Organizativa de Joomla!30
30Joomla:
3.2.6. Estado actual
De forma similar a otros proyectos, Joomla mantiene dos versiones de la aplicación: una estable y otra Beta o en desarrollo. La versión estable es la que se considera para usuarios y a medida que aparecen errores se corrigen, esta versión se publica sin nuevas funcionalidades. La versión Beta, incluye nuevas funcionalidades y mejoras a los fallos reportados en versiones anteriores, de igual forma se tiene que en este tipo de versión se reflejan las directivas del proyecto para usuarios avanzados y desarrolladores.
El 22 de enero de 2008 se ha lanzado la versión 1.5 estable de Joomla, que incorpora notables mejoras en el área de seguridad, administración y cumplimiento con estándares W3C. Actualmente cuenta con una gran cantidad de componentes, módulos y plugins, aunque se pueden usar los de la versión anterior (1.0.X). Únicamente hay que activar un plugin incluido llamado System - Legacy que mejora considerablemente (no por completo) la compatibilidad con los mambots para Joomla! 1.0.X.
Hoy en día es el CMS más utilizado del mundo, el más seguro y con mayor crecimiento que cualquier otro.
3.2.7. Plataformas compatibles
• En GNU/Linux: Después de bajar el archivo de distribución en un directorio bajo el sitio del servidor web, ejecute la descompresión porque el archivo generalmente viene en formato .zip. Este programa no necesita recompilarse porque se basa en php que es un lenguaje interpretado. Por ejemplo: si el root de su sitio web es /var/www/html es posible crear un directorio que se llame /var/www/html/joomla donde quedarán todos los guiones del programa.
• En Windows: De forma similar a GNU/Linux, es necesario descomprimir el archivo dentro de un directorio en la raíz del servidor web por ejemplo si apache está instalado en c:\apache, el archivo se debe crear en c:\apache\htdocs\joomla.
Se asume que el usuario ha trabajado con el servidor Apache y el gestor de bases de datos MYSQL, por ello es necesario que antes de iniciar el proceso de instalación, tanto para Windows como para GNU/Linux se haya creado una base de datos en mysql con el correspondiente usuario y permisos; el siguiente paso a ejecutar es por medio del navegador, se debe entrar al directorio que se ha creado, siguiendo con nuestro ejemplo se debe ingresar al url, http://su_sitio.com/joomla de forma que se correrá un asistente que lo guiará hasta el final de la instalación. • En Mac OSX: Se puede hacer de dos maneras. O bien activando el
ordenador como servidor Apache mediante la función "compartir web" en Preferencias del Sistema, o instalando una aplicación denominada MAMP que a su vez instala MySQL, PHP 5 y Apache 2. De esta manera el contenido del archivo .zip de Joomla! debe ser colocado en la carpeta: Aplicaciones/MAMP/htdocs/ y luego iniciar la instalación.
3.2.8. Desarrollo de componentes
3.2.8.1. Prefacio
Desde la versión 1.5 de Joomla! Incluye la posibilidad de incorporar un patrón de diseño MVC en la elaboración de componentes, que a la larga facilitará el mantenimiento de nuestro componente, y lo hará más fácil de
extender al mismo tiempo que resultará más fácil de leer por otras personas.
El patrón de diseño MVC se lleva utilizando mucho tiempo en el ámbito del desarrollo web en marcos de trabajo como Jakartastruts de apache (java), Java Server Faces de Sun (java), Symphony (php), etc.
El marco de trabajo de Joomla! proporciona una implementación sin archivos de configuración, al contrario de lo que hacen otros marcos de trabajo como Struts o JSF. Esto puede ser una ventaja o una desventaja según como se mire. Joomla no proporciona este archivo de configuración, sin embargo tiene otra forma de mapear las acciones del controlador. Joomla le da vital importancia al nombre que se tiene que dar a cada fichero del componente, es importantísimo nombrar bien el controlador, las vistas y los modelos del componente, de lo contrario Joomla no sabrá encontrarlos.
Nuestro componente tendrá dos partes diferenciadas: el front-end y el back-end.
• Front-end: el front-end es la parte del componente que es visible para el usuario de nuestro sitio web. Se visualiza donde hayamos incluido la etiqueta <jdoc:includetype=”component” /> en el template. Su código fuente se encuentra en el directorio components dentro del directorio principal de Joomla!.
• Back-end: es la parte del componente que se mostrará cuando entremos al sitio como administradores. El componente se mostrará donde lo hayamos especificado en el template del back-end. El template para la parte de back-end y la parte de front-end es diferente. Su código fuente se encuentra en el directorio components dentro del directorio administrator dentro del directorio principal de Joomla!.
En la parte de back-end se realizara labores de mantenimiento y configuración para la aplicación. Después, en la parte de front-end se
obtendrá los parámetros que previamente hemos configurado en la parte de back-end.31
3.2.8.2. Elaboración
Al iniciar la elaboración del componente, Joomla impone la norma de: los componentes se deben de ubicar en un directorio cuyo nombre empiece por com_ seguido del nombre del componente, por ejemplo para el componente prueba seria com_prueba. Este componente se debe crearlo dentro de la capeta components, ubicada en la carpeta principal de Joomla! en nuestro servidor web.
Al momento de llamar al componente, lo primero que hace Joomla es buscar el archivo php que hay dentro, con el mismo nombre que el componente, y lo ejecuta. Este es el punto de entrada del componente donde residirá una instancia del componente. Se establecerá el fichero
prueba.php dentro del directorio del componente.
Siguiendo con el patrón MVC, a continuación crearemos el controlador de nuestro componente, controller.php, dentro del directorio. En el mismo directorio del componente se creará un directorio con nombre modelsy otro con nombre views.
Dentro del directorio views, hay que crear un directorio por cada vista y el directorio tiene que tener el nombre de la vista; se debe crear el directorio
prueba dentro del directorio views.
Dentro del directorio views/prueba se debe crear el directorio tmpl, aquí es donde se guardarán los layouts de la vista. El layout es el fichero final que se mostrará por el navegador.
31Joomla:
Se creará el fichero views/prueba/view.html.php, este fichero es muy necesario. Ahora se debe crear el fichero prueba.php dentro de models, el cual corresponde a nuestro modelo según el patrón MVC.32
Así quedará la estructura básica de un componente (el componente prueba), usando el patrón MVC en Joomla!. Ver Figura III.12.
Figura III. 12: Estructura del componente Prueba
3.3. Drupal
3.3.1. Argumento
"Drupal es el equivalente fonético en inglés a la palabra neerlandesa33 druppel que significa gota”.
32Joomla:
http://www.nosolocodigo.com/tutorial-componentes-para-joomla-15-ii(2009-10-2) 33
Drupal es un sistema de gestión de contenido modular multipropósito y muy configurable que permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una base de datos y se editan utilizando un entorno Web.34
Es un programa de código abierto, con licencia GNU/GPL, escrito en PHP, desarrollado y mantenido por una activa comunidad de usuarios. Destaca por la calidad de su código y de las páginas generadas, el respeto de los estándares de la web, y un énfasis especial en la usabilidad y consistencia de todo el sistema
El diseño de Drupal es especialmente idóneo para construir y gestionar comunidades en Internet. No obstante, su flexibilidad y adaptabilidad, así como la gran cantidad de módulos adicionales disponibles, hace que sea adecuado para realizar muchos tipos diferentes de sitio web.
3.3.2. Características
Ayuda on-line.- Un robusto sistema de ayuda online y páginas de ayuda para los módulos del 'núcleo', tanto para usuarios como para administradores.
Búsqueda.- Todo el contenido en Drupal es totalmente indexado en tiempo real y se puede consultar en cualquier momento.
Código abierto.- El código fuente de Drupal está libremente disponible bajo los términos de la licencia GNU/GPL. Al contrario que otros sistemas de
34
'blogs' o de gestión de contenido propietarios, es posible extender o adaptar Drupal según las necesidades.
Módulos.- La comunidad de Drupal ha contribuido muchos módulos que proporcionan funcionalidades como 'página de categorías', autenticación mediante jabber, mensajes privados, bookmarks, etc.
Personalización.- Un robusto entorno de personalización está implementado en el núcleo de Drupal. Tanto el contenido como la presentación pueden ser individualizados de acuerdo las preferencias definidas por el usuario.
URL’s amigables.- Drupal usa el mod_rewrite de Apache para crear URLs que son manejables por los usuarios y los motores de búsqueda.
Autenticación de usuarios.- Los usuarios se pueden registrar e iniciar sesión de forma local o utilizando un sistema de autenticación externo como Jabber, Blogger, LiveJournalo otro sitio Drupal. Para su uso en una intranet, Drupal se puede integrar con un servidor LDAP.
Permisos basados en roles.- Los administradores de Drupal no tienen que establecer permisos para cada usuario. En lugar de eso, pueden asignar permisos a un 'rol' y agrupar los usuarios por roles.
Control de versiones.- El sistema de control de versiones de Drupal permite seguir y auditar totalmente las sucesivas actualizaciones del contenido: qué se ha cambiado, la hora y la fecha, quién lo ha cambiado, y más. También permite mantener comentarios sobre los sucesivos cambios o deshacer los cambios recuperando una versión anterior.
Enlaces permanentes (Permalinks).- Todo el contenido creado en Drupal tiene un enlace permanente asociado a él para que pueda ser enlazado externamente sin temor de que el enlace falle en el futuro.
Objetos de Contenido (Nodos).- El contenido creado en Drupal es, funcionalmente, un objeto (Nodo). Esto permite un tratamiento uniforme de
la información, como una misma cola de moderación para envíos de diferentes tipos, promocionar cualquiera de estos objetos a la página principal o permitir comentarios -o no- sobre cada objeto.
Plantillas (Templates).- El sistema de temas de Drupal separa el contenido de la presentación permitiendo controlar o cambiar fácilmente el aspecto del sitio web. Se pueden crear plantillas con HTML y/o con PHP.
Sindicación del contenido.- Drupal exporta el contenido en formato RDF/RSS para ser utilizado por otros sitios web. Esto permite que cualquiera con un 'Agregador de Noticias', tal como NetNewsWire o Radio UserLand visualice el contenido publicado en la web desde el escritorio.
Agregador de noticias.- Drupal incluye un potente Agregador de Noticas para leer y publicar enlaces a noticias de otros sitios web. Incorpora un sistema de cache en la base de datos, con temporización configurable.
Soporte de Blogger API.- La API de Blogger permite que un sitio Drupal sea actualizado utilizando diversas herramientas, que puedan ser 'herramientas web' o 'herramientas de escritorio' que proporcionen un entorno de edición más manejable.
Independencia de la base de datos.- Aunque la mayor parte de las instalaciones de Drupal utilizan MySQL, existen otras opciones. Drupal incorpora una 'capa de abstracción de base de datos' que actualmente está implementada y mantenida para MySQL y PostgresSQL, aunque permite incorporar fácilmente soporte para otras bases de datos.
Multiplataforma.- Drupal ha sido diseñado desde el principio para ser multi-plataforma. Puede funcionar con Apache o Microsoft IIS como servidor web y en sistemas como Linux, BSD, Solaris, Windows y Mac OS X. Por otro lado, al estar implementado en PHP, es totalmente portable.
Múltiples idiomas y Localización.- Drupal está pensado para una audiencia internacional y proporciona opciones para crear un portal multilingüe. Todo el texto puede ser fácilmente traducido utilizando una
interfaz web, importando traducciones existentes o integrando otras herramientas de traducción como GNU ettext.
Administración vía Web.- La administración y configuración del sistema se puede realizar enteramente con un navegador y no precisa de ningún software adicional.
Análisis, Seguimiento y Estadísticas.- Drupal puede mostrar en las páginas web de administración informes sobre referrals (enlaces entrantes), popularidad del contenido, o de cómo los usuarios navegan por el sitio.
Registros e Informes Toda la actividad y los sucesos del sistema son capturados en un 'registro de eventos', que puede ser visualizado por un administrador.
Comentarios enlazados.- Drupal proporciona un potente modelo de comentarios enlazados que posibilita seguir y participar fácilmente en la discusión sobre el comentario publicado. Los comentarios son jerárquicos, como en un grupo de noticias o un foro.
Encuestas.- Drupal incluye un módulo que permite a los administradores y/o usuarios crear encuestas on-line totalmente configurables.
Foros de discusión.- Drupal incorpora foros de discusión para crear sitios comunitarios vivos y dinámicos.
Libro Colaborativo.- Esta característica es única de Drupal y permite crear un proyecto o "libro" a ser escrito y que otros usuarios contribuyan contenido. El contenido se organiza en páginas cómodamente navegables. Control de congestión.- Drupal incorpora un mecanismo de control de congestión que permite habilitar y deshabilitar determinados módulos o bloques dependiendo de la carga del servidor. Este mecanismo es totalmente configurable y ajustable.
Sistema de Cache.- El mecanismo de cache elimina consultas a la base de datos incrementando el rendimiento y reduciendo la carga del servidor.
3.3.3. Versiones
Drupal hace su lanzamiento un primero de enero del 2001 con la versión 4 Drupal 4.X
Drupal 5.X Drupal 6.X
En la actualidad la se utiliza la versión 6.19.