Componentes vs. Módulos:Diferencias y semejanzas
Components (componentes):
Son elementos de contenido o aplicaciones de Joomla! que son generalmente mostrados en el centro del área de contenido principal en un template. Esto depende claro del template en uso. Los componentes son elementos básicos (core elements) de la funcionalidad de Joomla. Estos elementos básicos incluyen Banners, Contact (Contacto), News Feeds, Polls (Encuestas) y Web Links. Miembros de la comunidad Joomla producen componentes nuevos constantemente.
Module (Módulos):
Extienden las capacidades de Joomla, dándole nuevas funcionalidades. Los módulos son pequeños ítems de contenido que pueden ser mostrados en cualquiera de los lugares que su témplate permita. Los módulos son muy fáciles de instalar en la Sección de Admin (trastienda o backend). Los módulos de Joomla pueden incluir: Main Menú (Menú Principal), Top Menú (Menu Superior), Template Chooser (Selector de Templates), Polls (Encuestas), Hit Counter (Contador de Visitas), etc. Los miembros de la comunidad Joomla producen módulos continuamente. Un ejemplo de código PHP de un modulo es <?php mosLoadModules ( ’module position’ ); ?>
Pero ¿Cual es la diferencia entre componentes y módulos?
Aquí tienes una respuesta corta: Los módulos pueden aparecer en cualquier página y son generalmente muy simples. Los componentes se cargan en la parte central de la página y pueden ser bastante complejos.
Pues este es solo in bocadito, para que te vayas haciendo una ideal.
Esta debería ser una respuesta que satisfaga si eres simplemente un curioso o no tiene mucho tiempo para leer sobre las maravillas de la arquitectura Joomla. Para aquellos interesados en más, pues déjame decirte que aun faltan algunas cosas por descubrir. Empecemos viendo el modo en que una página de Joomla, se carga realmente.
Cuando alguien visita tu sitio Joomla, el archivo index.php del directorio de raíz es llamado. Este archivo carga muchas clases php y alguno que otros pedazos de código que hacen que joomla trabaje correctamente. Después de todo esto, Joomla busca el directorio de la plantilla que se esta usando por defecto e intenta cargar el archivo index.php localizado allí (localizado dentro del directorio de la plantilla).Cave aclarar que tanto el directorio de raíz como el directorio de plantilla tienen su propio archivo index.php, con el index.php de raíz del sitio carga al index.php de la plantilla para definir el diseño y por ende la localización o ubicación de los módulos.
El archivo index.php en el directorio de la plantilla que se carga, parece prácticamente un archivo de HTML típico. ¿Dentro de este archivo, usted debería encontrar el código <? php include_once ('mainbody.php');?>. Esto dice a PHP dejar de escribir las líneas de HTML e incluir el código de mainbody.php, que carga exactamente un componente. Esto quiere decir que cada página en Joomla carga un componente. ¡mmmm!... pues con eso quiero decir que puedes quitar dicho código, y como consecuencia ningunos componentes cargarían, pero esto solo limitaría el funcionamiento de joomla, pero puedes hacerlo como practica.
Esto es algo que normalmente no lo vas a encontrar en la red, pon mucha atención: Por defecto Joomla cargará el componente correspondiente al primer artículo en el menú. Normalmente el primer articulo de menú es 'Inicio' , el cual llama al componente 'com_frontpage' . com_Frontpage muestra el texto introductoria de una serie de artículos o noticias escritos por autores de sitio. Para un mayor entendimiento de esto, prueba colocando como primer ítem de menú alguno que llame a las encuestas, o alguna galería y observa que sucede. Cuando usted pulsa a sobre un enlaces o en el título de los artículos (depende de la configuración del administrador), este le dice a joomla que cargue el componente 'content', junto al artículo específico almacenado en la base de datos. Otros enlaces pueden indicar a Joomla la cargar otros componentes.
Además de la inclusión mainbody.php, la plantilla tendrá que cargar muchas funciones mosLoadModules (), que se encuentran en el archivo index.php de la plantilla, por ejemplo… mosLoadModules (' left '); Este código le dice a Joomla cargar todos los módulos en la posición 'izquierda' (las posiciones por defecto son left, right, top, bottom, inset, user1 y user2). Los módulos que son cargados en posiciones que no están definidas en la plantilla, nunca serán cargados.
Los módulos se pueden instalar de la opción de la instaladores/Módulos.

Mas abajo tenemos una lista de todos lo módulos instalados en nuestro Sitio.

Si deseamos desinstalar, solo tenemos que marcar el nombre del modulo y dar clic en el botón desinstalar.

Cuando ingresar al “Administrador de módulos”(menú Módulos/Módulos del Sitio) tenemos una lista de todos los módulos y una serie de opciones que nos permitirán hacer cosas como publicar/No publicar, establecer un orden, etc.
Esta lista puede ser más larga que la primera lista de módulos que acabamos de ver hace un momento, ¿Porque?, por la sencilla razón que nosotros podemos crear módulos adicionales, independiente mente de los módulos que tengamos instalados, estos módulos no se alimentan de los archivos instalados en las carpeta de los módulos (sitio_joomla/modules), sino que se alimentan desde contenido en la base de datos así como lo hacen los artículos. Sin importar el origen, aparecen como otros módulos.
Todos los módulos permiten la inclusión de parámetros. Los parámetros permiten a los administradores del sitio cambiar las diferentes opciones del módulo, que afectaran los datos que mostraran o su presentación. Por ejemplo, si un desarrollador de módulos deseó dar a administradores control sobre el color del fondo, un parámetro se podría definir en la Administración del módulo que permita configurar esto.
Diseñar la administración de un componente requiere mucho más esfuerzo, pero permite crear interfaces más amplias dando así una mayor libertad a los administradores, permitiendo el manejo de funcionalidades más complejas. Cuando se carga el interfaz administrativo de un componente, el archivo admin.[ nombre_del_componente].php se ejecuta de la carpeta [nombre_del_componente] desde la carpeta /administrator/components/com_[nombre_del_componente]. Este archivo entonces carga el interfaz apropiado para dicho componente.
Una vez que entiendas la diferencia entre los componentes y los módulos, la estructura general de Joomla llega a estar muy clara para ti. Si estas orgullos de tus habilidades de programación en PHP, no dudes en probarlas, creando tus propios componentes y módulos. Sin embargo, es recomendable comprobar primero en http://joomlacode.org/ , ya que tal vez encuentres allí lo que estas buscando antes de empezar a programar un proyectos que ya esta hecho. En caso de no encontrarlo, pues lánzate a crear uno.
Además cabe recalcar que Los componentes crean tablas en la base de datos, los módulos no, más bien se limitan a tomar información de tablas de componentes.
Espero que te sea de utilidad este pequeño artículos y que te pueda orientar a un mejor conocimiento de este excelente CMS.
Un saludo, Erick Mines Lumbre.




En función a las constantes preguntas por parte de los usuarios en los foros, tanto en ingles como en español, acerca de la relacion o diferencia existente entre los módulos y componentes, hemos creado este artículo. Ya veras una vez aclaro este concepto te será mucho mas fácil entender como funciona joomla. 


