Actualmente la versión 1.5.X de Joomla! se estructura en un sistema de 3 niveles:
El el primer nivel ubicamos la capa de las extensiones (Extension Layer) que se compone de Módulos, Componentes y Templates.
En el segundo nivel tenemos la capa de las Aplicaciones (Application layer) que está compuesta por aplicaciones que amplifican el Framework de la clase ***JApplication***. Actualmente contiene:
- JInstallation: que es la responsable de instalar Joomla en el servidor web, aplicación que debe ser eliminada una vez que se concluye el proceso de instalación.
- JAdministrator: que es responsable de administrar el BackEnd del sistema.
- JSite: responsable de administrar el FrontEnd del sistema.
- XML-RPC: que soporta la administración remota del sitio web Joomla!
En el tercer nivel, tenemos la capa del Framework propiamente tal, en donde encontramos:
- El ***Framework*** de Joomla! en sí, con sus respectivas clases.
- Las ***Librerías*** que son requeridas por el Framework o son instaladas por terceros (extensiones externas) para atender requerimientos de éstas.
- Los ***Plugins*** (o plugines) que son los encargados de extender las funcionalidades del Framework.
Modelo Vista Controlador (MVC) de Joomla
La Arquitectura Model-View-Controller (Modelo Vista Controlador - MVC) es un patrón solicitado por Joomla a los desarrolladores de extensiones y a sus propios desarrolladores, como una manera de estandarizar la estructura de los componentes, módulos, plugines, etc. en tres dimensiones, separando: los datos de una aplicación (modelo), la interfaz de usuario (vista) y la lógica de control (controlador). De esta manera se tiene una arquitectura de software ordenada y limpia, que nos permite entender el código más rápidamente, crear extensiones con mucha facilidad, así como intervenir el código sin mayores complicaciones.
El Patrón MVC opera separando
- Controlador: el controlador es el punto de entrada de la aplicación, se mantiene a la escucha de todas las peticiones, ejecuta la lógica de la aplicación, y muestra la vista apropiada para cada caso.
- Modelo: el modelo contiene todo el código relacionado con el acceso a datos. Es importante que sea un código lo más genérico posible y se pueda reutilizar. Nunca incluiremos lógica en el modelo, solamente consultas a la base de datos y validaciones de entrada de datos.
- Vista: la vista contiene el código que representará lo que nosotros veremos por pantalla, en este caso se trata de código html.
Patrón MVC aplicado a un módulo:
Controlador mod_modulo.pho recibe la consulta, ejecuta la clase modelo y pasa el resultado al template
Modelo: encargado de acceder a los datos
Vista (Template): encargado de mostrar los datos
Funcionalidad CRUD
CRUD: Create (Crear), Read (Leer), Update (Actualizar), Delete (Borrar)
Funcionalidad que permite realizar automátizadamente cuatro operaciones básicas sobre una tabla de la base de datos MySQL: Crear, Leer, Actualizar y Borrar. Es una característica que posee Joomla! 1.5
.
.