Joomla!

Joomla!
software
Instalación por defecto de Joomla! 1.5
GéneroSistema de gestión de contenidos
DesarrolladorEquipo de desarrollo de OSM
Fecha de la primera versión15 de septiembre de 2005
Ultima versión4.0.5 (14 de diciembre de 2021)
Sistema operativoMultiplataforma
IdiomaPHP
JavaScript
LicenciaGPL v.2
( licencia gratuita )
Sitio webwww.joomla.org

Joomla! ( IPA : /ˈdʒuːm.lɑː/ ) es un sistema de gestión de contenido (CMS) para la creación de sitios web , escrito en lenguaje PHP y publicado bajo la licencia libre GNU GPL v2 . Nacido en septiembre de 2005 a partir de una bifurcación ( bifurcación ) del código del CMS Mambo , actualmente se encuentra en rápido desarrollo, bajo la guía de un grupo de programadores (en su mayoría ex-desarrolladores de Mambo) reunidos en la organización sin fines de lucro Asociación Open Source Matters [1] . Es uno de los CMS más conocidos del mundo.

Historia

Versiones de Joomla [2]
Versión Fecha de distribución Soportado hasta
1.0 22-09-2005 07-2009
1.5 (LTS) 22-01-2008 09-2012
1.6 01-10-2011 08-2011
1.7 19-07-2011 02-2012
2.5 (LTS) 24-01-2012 12-2014
3.0 27/09/2012 05-2013
3.1 24-04-2013 12-2013
3.2 06-11-2013 10-2014
3.3 30-04-2014 02-2015
3.4 24-02-2015 03-2016
3.5 21-03-2016 07-2016
3.6 12-07-2016 04-2017
3.7 25-04-2017 09-2017
3.8 19-09-2017 10-2018
3.9 20-10-2018 08-2021
3.10 (LTS) 17-08-2021
4.0 17-08-2021
4.1 15-02-2022

     Versión que ya no es compatible

     Versión aún compatible

     Versión futura

Joomla! nació como resultado de una bifurcación de Mambo entre la australiana Miro Corporation , propietaria de la marca comercial Mambo , y un grupo de programadores voluntarios, incluidos todos los miembros del equipo de desarrollo. Los dos grupos se separaron el 17 de agosto de 2005 .

La Corporación Miro fundó una fundación sin fines de lucro con el objetivo de financiar el proyecto y protegerse de problemas legales. El equipo de desarrollo afirmó que muchos de los fondos entregados a la fundación iban en contra de los acuerdos previos hechos por el Comité Directivo de Mambo electo, carecían de la consulta necesaria con los miembros clave del proyecto e incluían cláusulas que violaban los valores de código abierto .

El equipo de desarrollo creó un sitio web llamado OpenSourceMatters para distribuir información a usuarios, desarrolladores, diseñadores web y la comunidad en general. El líder del proyecto, Andrew Eddie , "MasterChief", escribió una carta abierta a la comunidad que apareció en la sección de anuncios del foro público en mamboserver.com.

Al día siguiente, 1000 personas se suscribieron al foro opensourcematters.org , la mayoría de las cuales enviaron palabras de aliento y apoyo a las acciones del Equipo de Desarrollo. El nuevo sitio web recibió algunos comentarios y apareció en numerosos artículos de noticias sobre los eventos que aparecieron en newsforge.com , eweek.com y ZDnet.com .

Este evento provocó profundas reflexiones en la comunidad de código abierto sobre lo que podría constituir el concepto mismo de código abierto. Los foros y muchos otros proyectos de código abierto tomaron medidas enviando comentarios a favor y en contra de las acciones de ambos lados. Los cargos contra Miro y la Fundación Mambo fueron acalorados.

En las dos semanas posteriores al anuncio de Eddie, los equipos se reorganizaron y la comunidad siguió creciendo. El 1 de septiembre de 2005 , se anunció el nuevo nombre del proyecto a más de 3000 seguidores del equipo de desarrollo.

El nombre del proyecto es una interpretación fonética de la palabra swahili jumla que significa "todos juntos" o "como una sola entidad". Se eligió este término porque reflejaba las intenciones del equipo de trabajo que aún preside con la comunidad para llevar a cabo el proyecto.

El primer lanzamiento de Joomla se anunció el 16 de septiembre de 2005: era un clon de Mambo versión 4.5.2.3 combinado con una cierta cantidad de parches de seguridad de nivel moderado . El objetivo principal era reescribir completamente el código para hacerlo totalmente compatible con la versión MySQL 5 de la base de datos.

Joomla se distribuye bajo la Licencia Pública General GNU versión 2.

Descripción

El CMS se distribuye como un paquete comprimido. Es suficiente descomprimir el archivo en una carpeta pública de un servidor web con soporte PHP y tener una base de datos MySQL disponible para los datos del programa. Después de un proceso de instalación (más propiamente la primera configuración) de unos minutos, el sitio está operativo.

Entre las principales características propuestas se encuentran:

Otros componentes de código abierto disponibles por separado, patrocinados por Joomla! pero no desarrollado por el mismo equipo permiten, entre otras cosas, a:

Extensiones

Uno de los puntos fuertes de Joomla! es la vivacidad de la comunidad que lo respalda, tanto en términos de capacidad de discusión y ayuda (el foro oficial supera las 100.000 publicaciones mensuales) como en la amplia disponibilidad de complementos para personalizar la funcionalidad del motor.

Todas las extensiones se distribuyen en forma de paquetes comprimidos, cuya instalación se gestiona de forma totalmente automática mediante un script específico , disponible en la sección de administración de tu sitio Joomla!, que también te permite desinstalar extensiones ya instaladas.

Hay tres tipos: componentes , módulos y complementos (que en Joomla! 1.0 se llamaban mambots ). Muchas extensiones (del orden de miles) pueden descargarse del archivo oficial http://extensions.joomla.org .

Componentes

Los componentes de Joomla! son extensiones específicas que le permiten agregar funciones complejas a un sitio creado con el CMS de Joomla!.

Los componentes para Joomla! se diferencian de los módulos esencialmente en el nivel de complejidad soportado. Tradicionalmente, los módulos se utilizan para implementar funcionalidades elementales, mientras que los componentes pueden agregar varios módulos para lograr una funcionalidad más compleja y completa. En general, agregar un componente corresponde a agregar una sección completa al sitio donde se instala.

Por ejemplo, en el caso de la gestión de una newsletter los módulos cubren funciones como "suscripción (añadir) un nuevo usuario", "baja de suscripción de un usuario", etc. mientras que un componente podría gestionar la newsletter como un todo.

A su vez, según el mismo esquema modular, los componentes pueden ser utilizados por aplicaciones que cubran niveles de funcionalidad aún más complejos.

Los componentes pueden ser realizados por cualquier usuario de Joomla!. En la web también puede encontrar componentes listos para usar, producidos por desarrolladores independientes.

Compatibilidad de componentes

Para el uso de un componente, la versión de Joomla! para el cual fue desarrollado. De hecho, el Joomla! 1.0, debido a las limitaciones intrínsecas del marco , también pone límites a la complejidad de los componentes, límites que la versión 1.5 ha permitido superar con la adopción del modelo MVC ( modelo-vista-controlador ). Un componente desarrollado específicamente para una versión específica de Joomla! también se le conoce como un "componente nativo" para esa versión.

Entre la versión 1.0 y la versión 1.5 de Joomla! solo se admite la compatibilidad hacia adelante de los componentes, es decir, puede usarlo en Joomla! 1.5 componentes desarrollados originalmente para Joomla! 1.0, gracias también a un plugin llamado Legacy Mode . El uso de este complemento puede tener un impacto en el nivel de seguridad y el rendimiento de los componentes; sin embargo, ha impedido la reescritura de muchos componentes nativos.

Los componentes nativos de Joomla! 1.5 no son compatibles con versiones anteriores, es decir, no se pueden usar en Joomla! 1.0, debido a los cambios notables en el marco y el cambio de modelo. La versión de Joomla! 1.6 no es compatible con versiones anteriores.

Componentes para Joomla! 1.0

Entre los componentes de terceros más populares para esta versión se encuentran:

  • Community Builder , para administrar comunidades en línea y grupos de usuarios
  • JoomlaXplorer , con funciones de cliente FTP y administrador de archivos directamente desde Joomla!
  • Akeeba Backup (anteriormente llamado Joomlapack), para la gestión de copias de seguridad del sitio
  • Joom!Fish , para gestionar sitios multiidioma
  • Virtuemart , para montar sitios de comercio online
  • FireBoard , para integrar un foro en el sitio
  • sh404SEF , para administrar URL (reescritura, redirecciones) y para personalizar páginas de error del servidor
  • DOCman , administrador de archivos para permitir a los visitantes descargar documentos y archivos
  • MisterEstate , dedicada a la gestión de sitios de propiedad comercial (alquileres, ventas, etc.).
Componentes para Joomla! 1.5

Entre los componentes más difundidos y utilizados se encuentran:

  • Fabrik , el más avanzado de los pocos componentes de encapsulación de bases de datos para ser GNU General Public License 2.0
  • Community Builder, para administrar comunidades en línea y grupos de usuarios
  • eXtplorer , con funciones de cliente FTP y administrador de archivos directamente desde Joomla!
  • Akeeba Backup (anteriormente llamado Joomlapack), para la gestión de copias de seguridad del sitio
  • XCloner, para la gestión de copias de seguridad del sitio
  • Joom!Fish , para gestionar sitios multiidioma
  • JCE, un editor alternativo muy utilizado
  • Virtuemart , para montar sitios de comercio online
  • Qcontacts , para ampliar los campos del componente estándar de gestión de contactos
  • civicrm , para la gestión integrada de bases de datos/eventos/boletines/donaciones/asociados, distribuidos bajo licencia GNU AGPL 3

Formularios

Módulos Joomla! son extensiones que permiten agregar pequeñas porciones de HTML a un sitio creado usando Joomla!. Se utilizan para mostrar elementos de información o funciones interactivas dentro de un sitio Joomla!, como garantía del contenido principal. Se pueden considerar como ventanas adicionales a través de las cuales dar información no necesariamente relacionada con la página mostrada, tal vez para mostrar otras características del sitio.

Los módulos recuperan la información, o partes de información definidas a través de parámetros, y las visualizan en el área de su competencia; por ejemplo, el módulo de "últimas noticias" recupera por defecto solo los títulos de los artículos para mostrarlos en el sitio como una lista, dando al visitante la posibilidad de anticipar lo que hay dentro del sitio y cuáles son las noticias más recientes. El usuario tiene la posibilidad de elegir qué módulos mostrar y dónde colocarlos dentro del diseño de la página , de acuerdo con una plantilla (ver más abajo). Los módulos también son los menús de navegación dentro de un sitio Joomla!.

Actuando directamente en la sección Administrador de módulos de la administración , se pueden crear formularios HTML simples. En el caso de scripts más complejos, generalmente se preparan para ser instalados con los procedimientos adecuados. Hay muchos módulos muy útiles ya programados y listos para usar, disponibles de forma gratuita en la sección correspondiente del sitio web oficial de las extensiones.

Los módulos estándar incluyen el módulo de menú principal (el menú principal), el módulo de inicio de sesión (para acceso restringido de usuarios), el de encuestas ( poll ) y el de distribución de fuentes RSS ( syndicate ).

Estructura de módulos

Generalmente, un módulo consta de un archivo XML que actúa como instalador y contiene información sobre el desarrollador de la extensión y los demás archivos que la componen.

Está flanqueado por uno o más archivos PHP que realizan su función principal, que es generar el código html que luego se repetirá en el sitio.

Puede incluir archivos .ini para facilitar la localización del módulo.

Todos los archivos enumerados anteriormente se compactan en un archivo .tgz o .zip , que luego se puede instalar en el CMS.

Complemento

Los mambots son en la versión 1.0 el equivalente a los plugins de la versión 1.5x en adelante, cuando son llamados activan un programa, un script o realizan una función específica. A menudo actúan en segundo plano en todo el sitio. Pueden ser tan simples como la función que reemplaza cierto texto escrito con una función codificada (por ejemplo, colocar una imagen precargada y paginarla en el texto o dividir el contenido de un artículo largo en dos páginas), pero también pueden tener mucho efectos más evidentes, como recordar, dentro de las ventanas de los formularios de inserción de contenidos, las funcionalidades de sofisticados editores de texto en modo WYSIWYG desarrollados por terceros. También pueden permitir conexiones entre diferentes componentes; una galería de imágenes, por ejemplo, puede tener un mambot vinculado que hace que la descripción de las imágenes esté disponible para las funciones de búsqueda en el sitio.

Existen mambots para insertar funciones Flash , para vincular automáticamente un glosario a las palabras contenidas en los textos de los artículos, para generar miniaturas de las imágenes insertadas en los textos para que al seleccionarlas aparezca una ventana con una imagen de mayor resolución, y muchas otras .

Plantilla

Una plantilla es un documento HTML / CSS que contiene el código necesario para impulsar Joomla! y maquetar los contenidos: por ejemplo contiene el código que permite la carga de los distintos módulos en posiciones predefinidas, código para cargar el llamado mainbody (el área en la que se encuentran los principales contenidos generados por Joomla! o por complementos presentado) y así sucesivamente. Para lograr el aspecto deseado, muchas plantillas también contienen una serie de imágenes (para fondos, bordes, etc.). Cada plantilla se puede descargar de sitios específicos de forma gratuita o por una tarifa e instalarse a través del área de administración correspondiente.

posicionamiento web

Para un buen SEO de Joomla! deberías [3] [4] :

  • Activando los módulos SEO para Joomla!
  • Elija el protocolo HTTPS
  • Active el mapa del sitio XML y el archivo Robots.txt
  • Habilite la creación de redireccionamientos cuando se cambien las URL
  • ¡Asegúrate de estar usando la última versión de Joomla!
  • Introducción de fragmentos enriquecidos
  • Palabra clave principal en el primer párrafo
  • Poda de contenido (eliminación de contenido desactualizado que ya no puede ser útil para los usuarios)
  • Palabras clave en etiquetas H1
  • Imágenes correctamente nombradas (no por ejemplo "tr_1009_nh.jpg") y uso de la etiqueta ALT
  • Uso de la etiqueta TITLE en enlaces
  • Aplicar nofollow para enlaces innecesarios
  • Aplicar el marcado de esquema. Ejemplo:< div class = ”product-view” itemscope itemtype = ”http://sito.org/Product“ >

Seguridad

Ataques de hackers

Joomla! puede ser víctima de varios ataques de hackers [5] :

  • Cross-site scripting (XSS): permite que un cracker inserte o ejecute código en el lado del cliente para llevar a cabo un conjunto variado de ataques como, por ejemplo, la recopilación, manipulación y redirección de información confidencial, visualización y modificación de datos en servidores, alteración del comportamiento dinámico de las páginas web, etc.
  • Inyección SQL o SQLi: un pirata informático puede insertar declaraciones SQL maliciosas en el sitio, lo que podría obtener acceso a datos confidenciales en la base de datos o destruir estos datos.
  • Ejecución remota de código : obtenga acceso a una cuenta con al menos nivel de privilegios reservados authoren un sitio de destino para ejecutar código PHP arbitrario en el servidor subyacente, lo que lleva a una captura remota completa.
  • ¡Un error CSRF en Joomla! permite a un atacante realizar acciones no deseadas en el sitio, como eliminar el contenido de la página.
  • Escalada de privilegios : La escalada de privilegios ocurre cuando a un usuario con privilegios administrativos más bajos se le otorgan privilegios más altos.
  • Los ataques de denegación de servicio distribuidos intentan sobrecargar los recursos del servidor en el que está instalado Joomla! está alojado
Posibles causas de los ataques

Los siguientes errores podrían hacer que Joomla! menos seguro [6] :

  • Extensiones obsoletas y desactualizadas
  • Componentes no utilizados
  • Contraseñas débiles
  • Falta de Firewall como 2FA usando Google Authenticator
  • Falta de CAPTCHA previo al inicio de sesión
  • Falta de conexiones SFTP / SSH
  • Configuraciones incorrectas del archivo .htaccess

Agradecimientos

Joomla! desde 2005 ha sido ganador de numerosos premios internacionales [7] :

  • 2005 : Mejor Proyecto Linux/Código Abierto
  • 2006 : Premio al sistema de gestión de contenido de código abierto
  • 2006 : Mejor Proyecto Linux / Código Abierto
  • 2007 : Mejor sistema de gestión de contenido de código abierto PHP [8]
  • 2011 : Premio al mejor sistema de gestión de contenido fuente [9]
  • 2014 : Mejor PHP CMS de código abierto - CMS Critic Awards
  • 2015 : Mejor CMS gratuito - CMS Critic Awards
  • 2016 : Mejor CMS gratuito - CMS Critic Awards
  • 2017 : Mejor CMS gratuito - CMS Critic Awards
  • 2018 : Mejor CMS gratuito - CMS Critic Awards
  • 2019 : Mejor CMS gratuito - CMS Critic Awards

Futuro

El equipo de desarrollo de Joomla! anunció, a principios de octubre de 2008 , el fin del soporte para la versión 1.0, que fue definitivamente suspendida a partir del 22 de julio de 2009 [10] , mientras que el soporte para la versión estable anterior, la 1.5, finalizó en abril de 2012. Ambas versiones mencionadas deben considerarse como LTS (Soporte a largo plazo). La última versión LTS de Joomla! es 3.9. Las versiones de transición están programadas para durar 6 meses cada una.

Notas

  1. ^ Asuntos de código abierto
  2. ^ EOL Joomla | Fin de vida útil (EOL) | Ciclo de vida , en endoflife.software . Consultado el 7 de enero de 2022 .
  3. ^ ( EN ) ste, Optimización para motores de búsqueda , en el soporte italiano de Joomla.it . Consultado el 28 de enero de 2021 .
  4. ^ Naveen Kumar, Mejores fragmentos enriquecidos, también conocidos como Complementos de esquema para Joomla , en JoomlaBeginner.com . Consultado el 28 de enero de 2021 .
  5. ^ Ataques joomla , en getastra.com .
  6. ^ sucuri.net , https://sucuri.net/guides/joomla-security/ . Consultado el 28 de enero de 2021 .
  7. ^ Joomla! Premios - Joomla! Documentación , en docs.joomla.org . Consultado el 28 de enero de 2021 .
  8. ^ Mejor sistema de gestión de contenido de código abierto PHP Archivado el 10 de noviembre de 2007 en Internet Archive .
  9. ^ Noticias del ganador de los premios Open Source Awards 2011: CMS de código abierto | Packt Publishing Technical & IT Book and eBook Store Archivado el 13 de noviembre de 2011 en Internet Archive .
  10. ^ Anuncio oficial _ _

Artículos relacionados

Otros proyectos

Enlaces externos