Drupal ( / ˈ d r uː p əl / ) [5] es un sistema de gestión de contenido web (CMS) gratuito y de código abierto escrito en PHP y distribuido bajo la Licencia Pública General GNU . [4] [6] [7] Drupal proporciona un marco de back-end de código abierto para al menos el 14% de los 10.000 sitios web más importantes del mundo [8] y el 1,2% de los 10 millones de sitios web más importantes [9] , desde blogs personales a sitios corporativos, políticos y gubernamentales. [10] Drupal también se puede utilizar para la gestión del conocimiento y la colaboración empresarial. [11]
En marzo de 2022 [actualizar], la comunidad Drupal tenía más de 1,39 millones de miembros, [12] [13] [14] incluidos 124.000 usuarios que contribuyen activamente, [15] lo que da como resultado más de 50.000 módulos gratuitos que amplían y personalizan la funcionalidad de Drupal, [16] más de 3.000 temas gratuitos que cambian la apariencia de Drupal, [17] y al menos 1.400 distribuciones gratuitas que permiten a los usuarios configurar rápida y fácilmente un Drupal complejo y de uso específico en menos pasos. [18]
La versión estándar de Drupal, conocida como Drupal core , contiene características básicas comunes a los sistemas de gestión de contenidos . Estos incluyen registro y mantenimiento de cuentas de usuario, gestión de menús, canales RSS , taxonomía, personalización del diseño de página y administración del sistema. La instalación principal de Drupal puede servir como un sitio web simple, un blog para uno o varios usuarios, un foro de Internet o un sitio web comunitario que proporcione contenido generado por el usuario .
Drupal también se describe a sí mismo como un marco de aplicación web . [19] En comparación con marcos notables, Drupal cumple con la mayoría de los requisitos de características generalmente aceptados para dichos marcos web. [20] [21]
Aunque Drupal ofrece una API sofisticada para desarrolladores, la instalación básica del sitio web y la administración del marco no requieren conocimientos de programación. [22]
Drupal se ejecuta en cualquier plataforma informática que admita tanto un servidor web capaz de ejecutar PHP como una base de datos para almacenar contenido y configuración.
Drupal fue escrito originalmente por Dries Buytaert como un tablero de mensajes para que sus amigos se comunicaran en sus dormitorios mientras trabajaba en su maestría en la Universidad de Amberes . [29] [30] Después de graduarse, Buytaert trasladó el sitio a la Internet pública y lo llamó Drop.org. [29] Entre 2003 y 2008, Dries Buytaert trabajó para obtener un doctorado en la Universidad de Gante . [31]
El nombre Drupal representa una traducción inglesa de la palabra holandesa druppel , que significa "gota" (como en una gota de agua). [32] El nombre proviene del ya desaparecido Drop.org, cuyo código evolucionó lentamente hasta convertirse en Drupal. Buytaert quería llamar al sitio "dorp" (que en holandés significa "pueblo") por sus aspectos comunitarios, pero lo escribió mal al verificar el nombre del dominio y pensó que el error sonaba mejor. [33]
Drupal se convirtió en un proyecto de código abierto en 2001. [33] El interés en Drupal recibió un impulso significativo en 2003 cuando ayudó a construir "DeanSpace" para Howard Dean , uno de los candidatos en la campaña primaria del Partido Demócrata de EE.UU. para las elecciones presidenciales de 2004. elección . DeanSpace utilizó el uso compartido de código abierto de Drupal para respaldar una red descentralizada de aproximadamente 50 sitios web dispares y no oficiales pro-Dean que permitían a los usuarios comunicarse directamente entre sí y con la campaña. [34] Después de que Dean terminó su campaña, los miembros de su equipo web continuaron persiguiendo su interés en desarrollar una plataforma web que pudiera ayudar al activismo político mediante el lanzamiento de CivicSpace Labs en julio de 2004, "... la primera empresa con empleados de tiempo completo que estaba desarrollando y distribuyendo tecnología Drupal." [35] Otras empresas comenzaron a especializarse también en el desarrollo de Drupal. [36] [37]
En 2013, el sitio web de Drupal enumeraba cientos de proveedores que ofrecían servicios relacionados con Drupal. [38]
A partir de 2014 [actualizar], Drupal es desarrollado por una comunidad. [39] [ necesita actualización ] Desde julio de 2007 hasta junio de 2008, el sitio Drupal.org proporcionó más de 1,4 millones de descargas de software Drupal, un aumento de aproximadamente el 125% respecto al año anterior. [40] [41]
En enero de 2017, [actualizar]más de 1.180.000 sitios utilizan Drupal. [42] Estas incluyen cientos de organizaciones conocidas, [43] incluidas corporaciones, medios y empresas editoriales, gobiernos, organizaciones sin fines de lucro, [44] escuelas e individuos. Drupal ha ganado varios premios Packt Open Source CMS Awards [45] y ganó el Webware 100 [ se necesita aclaración ] tres veces seguidas. [46] [47]
Drupal 6 se lanzó el 13 de febrero de 2008, [48] el 5 de marzo de 2009, Buytaert anunció una congelación del código para Drupal 7 para el 1 de septiembre de 2009. [49] Drupal 7 se lanzó el 5 de enero de 2011, con fiestas de lanzamiento en varios países. [50] Después de eso, el mantenimiento de Drupal 5 se detuvo, y solo se mantuvo Drupal 7 y Drupal 6. [51]
El fin de vida de Drupal 7 estaba programado para noviembre de 2021, pero dado el impacto de COVID-19 y el uso generalizado y continuo, el fin de vida se retrasó hasta el 1 de noviembre de 2023, para ser revisado anualmente. [52] El fin de vida de Drupal 7 se extendió una vez más a partir de junio de 2023. Ahora está programado para el 5 de enero de 2025. Se espera que esta sea la extensión final de Drupal 7. [53]
El 7 de octubre de 2015, se anunció la primera versión candidata (rc1) de Drupal 8. [54] Drupal 8 incluye nuevas características y mejoras tanto para usuarios como para desarrolladores, que incluyen: una interfaz de usuario renovada; WYSIWYG y edición in situ; soporte móvil mejorado; se agregaron y mejoraron módulos clave contribuidos que incluyen Vistas, Fecha y Referencia de entidad; introdujo un nuevo backend orientado a objetos que aprovecha los componentes de Symfony ; gestión de configuración renovada; y soporte multilingüe mejorado. Drupal 8 rc1 es el trabajo colectivo de más de 3200 colaboradores principales. [54] Drupal 8 solo permite a los clientes usar imágenes locales y utiliza solo diseños HTML filtrados. [55] Drupal 8 finalizó su vida útil el 30 de noviembre de 2021. [56]
Drupal 9 se lanzó el 3 de junio de 2020. [57] Drupal 9 finalizó su vida útil el 1 de noviembre de 2023. [58]
En octubre de 2022, Drupal lanzó un acelerador CMS sin cabeza de código abierto , que permite gestionar el front-end fuera del sistema central. [59] [60]
En diciembre de 2022, la comunidad lanzó Drupal 10.0. [61]
En la comunidad Drupal, "núcleo" se refiere a la base de código construida en colaboración que se puede ampliar a través de módulos contribuyentes y, para versiones anteriores a Drupal 8, se mantiene fuera de la carpeta "sitios" de una instalación de Drupal. [62] (A partir de la versión 8, el núcleo se mantiene en su propio subdirectorio 'núcleo'). Drupal core es el elemento stock de Drupal. Las bibliotecas comunes específicas de Drupal, así como el proceso de arranque, se definen como núcleo de Drupal; todas las demás funciones se definen como módulos Drupal, incluido el módulo del sistema en sí.
En la configuración predeterminada de un sitio web Drupal, los autores pueden aportar contenido como usuarios registrados o anónimos (a discreción del administrador). Los visitantes de la web pueden acceder a este contenido a través de una variedad de criterios seleccionables. A partir de Drupal 8, Drupal ha adoptado algunas bibliotecas de Symfony en el núcleo de Drupal.
Los módulos principales también incluyen un sistema de taxonomía jerárquica , que permite a los desarrolladores categorizar el contenido o etiquetarlo con palabras clave para facilitar el acceso. [22]
Drupal mantiene un registro de cambios detallado de las actualizaciones de funciones principales por versión. [63]
Drupal core incluye módulos que el administrador puede habilitar para ampliar la funcionalidad del sitio web principal. [64] [65]
La distribución principal de Drupal proporciona una serie de características, que incluyen: [64]
Drupal incluye temas centrales que personalizan la "apariencia" de los sitios Drupal, [67] por ejemplo, Garland y Bartik.
El módulo de color, introducido en Drupal core 5.0, permite a los administradores cambiar la combinación de colores de ciertos temas a través de una interfaz de navegador. [68]
A partir de septiembre de 2022, Drupal está disponible en 100 idiomas, incluido el inglés (el valor predeterminado). [69] [55] Se incluye soporte para idiomas de derecha a izquierda como árabe , persa y hebreo . [70]
La localización de Drupal se basa en gettext , la biblioteca de internacionalización y localización de GNU (i18n).
Drupal puede notificar automáticamente al administrador sobre nuevas versiones de módulos, temas o el núcleo de Drupal. [70] Es importante actualizar rápidamente después de que se publiquen las actualizaciones de seguridad.
Antes de actualizar, se recomienda encarecidamente realizar una copia de seguridad del núcleo, los módulos, el tema, los archivos y la base de datos. Si se muestra algún error después de la actualización o si la nueva actualización no es compatible con un módulo, se puede reemplazar rápidamente con una copia de seguridad. Hay varios módulos de respaldo disponibles en Drupal.
El 15 de octubre de 2014, se anunció una vulnerabilidad de inyección SQL y se publicó una actualización. [71] Dos semanas más tarde, el equipo de seguridad de Drupal publicó un aviso explicando que todos deberían actuar bajo el supuesto de que cualquier sitio que no se actualizara dentro de las 7 horas posteriores al anuncio estaba comprometido por ataques automatizados. [72] Por lo tanto, puede ser extremadamente importante aplicar estas actualizaciones rápidamente y se recomienda encarecidamente el uso de una herramienta como drush para facilitar este proceso.
Antes de la versión 7, Drupal tenía funciones que realizaban tareas relacionadas con bases de datos, como limpieza de consultas SQL, prefijo de nombres de tablas de sitios múltiples y generación de consultas SQL adecuadas. En particular, Drupal 6 introdujo una capa de abstracción que permitía a los programadores crear consultas SQL sin escribir SQL.
Drupal 9 amplía la capa de abstracción de datos para que un programador ya no necesite escribir consultas SQL como cadenas de texto. Utiliza objetos de datos PHP para abstraer la base de datos. Microsoft ha escrito un controlador de base de datos para su SQL Server . Drupal 7 es compatible con el motor de base de datos SQLite basado en archivos , que forma parte de la distribución PHP estándar.
Con la nueva capa de abstracción de base de datos de Drupal 9 y la capacidad de ejecutarse en el servidor web de Windows IIS , ahora es más fácil para los desarrolladores de Windows participar en la comunidad Drupal.
Un grupo en Drupal.org está dedicado a problemas de Windows. [73]
Desde el lanzamiento de Drupal 7, la accesibilidad web ha mejorado constantemente en la comunidad Drupal. [74] Drupal es un buen marco para construir sitios accesibles para personas con discapacidades, porque muchas de las mejores prácticas se han incorporado en Drupal Core.
Drupal 8 vio muchas mejoras con respecto a las pautas de Authoring Tool Accessibility Pautas (ATAG) 2.0 que admiten tanto un entorno de creación accesible como soporte para que los autores produzcan contenido más accesible.
El equipo de accesibilidad continúa el trabajo de identificar y resolver barreras de accesibilidad y sensibilizar a la comunidad.
Drupal 8 tiene un buen soporte semántico para aplicaciones web enriquecidas a través de WAI-ARIA . Ha habido muchas mejoras tanto en el lado visitante como en el administrador de Drupal, especialmente:
La comunidad también agregó una puerta de accesibilidad para temas centrales en Drupal 8. [76]
El núcleo de Drupal es modular y define un sistema de ganchos y devoluciones de llamadas , a los que se accede internamente a través de una API . [77] Este diseño permite que módulos y temas aportados por terceros extiendan o anulen los comportamientos predeterminados de Drupal sin cambiar el código central de Drupal.
Drupal aísla los archivos principales de los módulos y temas aportados. Esto aumenta la flexibilidad y la seguridad y permite a los administradores actualizar limpiamente a nuevas versiones sin sobrescribir las personalizaciones de su sitio. [78] La comunidad Drupal tiene el dicho: "Nunca piratee el núcleo", una fuerte recomendación para que los desarrolladores de sitios no cambien los archivos principales. [62]
Los módulos contribuidos ofrecen características adicionales o alternativas como galerías de imágenes, tipos de contenido personalizados y listados de contenido, editores WYSIWYG , mensajería privada, herramientas de integración de terceros, [79] integración con portales BPM, [80] y más. En diciembre de 2019, [actualizar]el sitio web de Drupal enumera más de 44.000 módulos gratuitos . [dieciséis]
Algunos de los módulos contribuidos más utilizados incluyen: [81]
En diciembre de 2019 [actualizar], hay más de 2800 temas gratuitos aportados por la comunidad . [17] Los temas adaptan o reemplazan la apariencia predeterminada de un sitio Drupal.
Los temas de Drupal utilizan formatos estandarizados que pueden ser generados por motores de diseño de temas comunes de terceros. Muchos están escritos en el motor PHPTemplate [85] o, en menor medida, en el motor XTemplate. [86] Algunas plantillas utilizan PHP codificado . Drupal 8 y versiones futuras de Drupal integran el motor de plantillas Twig . [87]
La inclusión de los motores PHPTemplate y XTemplate en Drupal abordó las preocupaciones de los usuarios sobre la flexibilidad y la complejidad. [88] El sistema de temas de Drupal utiliza un motor de plantillas para separar aún más HTML / CSS de PHP. Un módulo popular contribuido por Drupal llamado 'Devel' proporciona información GUI a los desarrolladores y temáticos sobre la creación de la página.
Los temas aportados por la comunidad en el sitio web de Drupal se publican bajo una licencia GPL gratuita . [89] [90]
En el pasado, aquellos que querían una instalación totalmente personalizada de Drupal tenían que descargar una versión preadaptada por separado del núcleo oficial de Drupal. Hoy en día, sin embargo, una distribución define una versión empaquetada de Drupal que, tras la instalación, proporciona un sitio web o una aplicación creada para un propósito específico.
Las distribuciones ofrecen el beneficio de un nuevo sitio Drupal sin tener que buscar e instalar manualmente módulos aportados por terceros o ajustar la configuración. [91] Son colecciones de módulos, temas y ajustes de configuración asociados que preparan Drupal para una operación personalizada. Por ejemplo, una distribución podría configurar Drupal como un sitio de "folletos" en lugar de un sitio de noticias o una tienda en línea .
Drupal se basa en la arquitectura Presentation Abstraction Control , o PAC.
El sistema de menú actúa como controlador. Acepta entradas a través de una única fuente ( HTTP GET y POST ), enruta solicitudes a las funciones auxiliares apropiadas, extrae datos de la Abstracción (nodos y, desde Drupal 5 en adelante, formularios) y luego los pasa a través de un filtro para obtener un Presentación del mismo (el sistema temático).
Incluso tiene múltiples agentes PAC paralelos en forma de bloques que envían datos a un lienzo común (page.tpl.php). [92]
Drupal.org tiene una gran comunidad de usuarios y desarrolladores que brindan apoyo comunitario activo generando nuevas actualizaciones para ayudar a mejorar la funcionalidad de Drupal. [93] En enero de 2017, [actualizar]más de 105.400 usuarios están contribuyendo activamente. [15] La conferencia semestral DrupalCon alterna entre América del Norte, Europa y Asia. [94] La asistencia a DrupalCon creció de 500 en Szeged en agosto de 2008, a más de 3.700 personas en Austin, Texas, en junio de 2014.
Eventos más pequeños, conocidos como "Drupal Camps" o DrupalCamp, ocurren durante todo el año en todo el mundo. [95] El DrupalCamp anual de Florida reúne a los usuarios para Codificar por una causa que beneficia a una organización local sin fines de lucro, al igual que el evento anual GLADCamp (Campamento Drupal del Gran Los Ángeles), Coders with a Cause.
La comunidad Drupal también organiza reuniones profesionales y semiprofesionales llamadas meetups en una gran cantidad de lugares alrededor del mundo.
Hay más de 30 comunidades nacionales [96] alrededor de drupal.org que ofrecen soporte en idiomas específicos.
Los usuarios notables de Drupal incluyen:
La política de Drupal es anunciar la naturaleza de cada vulnerabilidad de seguridad una vez que se publica la solución. [104] [105]
Los administradores de sitios Drupal pueden ser notificados automáticamente sobre estas nuevas versiones a través del módulo Estado de actualización (Drupal 6) o mediante el Administrador de actualizaciones (Drupal 7). [106]
Drupal mantiene una lista de correo de anuncios de seguridad, un historial de todos los avisos de seguridad, una página de inicio del equipo de seguridad y un canal RSS con los avisos de seguridad más recientes. [107] [108] [109]
A mediados de octubre de 2014, Drupal emitió un aviso de seguridad "altamente crítico" con respecto a un error de inyección SQL en Drupal 7, también conocido como Drupaggeddon. [110] [111] [112] Descargar e instalar una actualización a Drupal 7.32 corrige la vulnerabilidad, pero no elimina ninguna puerta trasera instalada por los piratas informáticos si el sitio ya ha sido comprometido . [113] Los ataques comenzaron poco después de que se anunciara la vulnerabilidad. Según el equipo de seguridad de Drupal, cuando un sitio no fue parcheado a las pocas horas del anuncio, debe considerarse comprometido y desconectado al ser reemplazado con una página HTML estática, mientras que se debe informar al administrador de su servidor que otros sitios en el mismo Es posible que el servidor también se haya visto comprometido. Para resolver el problema, el sitio debe restaurarse utilizando copias de seguridad anteriores al 15 de octubre, parchearse y actualizarse manualmente, y todo lo que se fusione desde el sitio debe ser auditado. [114]
A finales de marzo de 2018, se lanzó un parche para la vulnerabilidad CVE-2018-7600, también denominada Drupalgeddon2 . El error subyacente permite a atacantes remotos sin roles o permisos especiales tomar el control total de los sitios Drupal 6, 7 y 8. [115] [116] Drupal 6 llegó al final de su vida útil el 24 de febrero de 2016 y no recibe actualizaciones de seguridad oficiales (hay soporte extendido disponible a través de dos proveedores pagos de servicios a largo plazo). [117] A principios de abril, se observaron ataques automatizados a gran escala contra sitios vulnerables, y el 20 de abril, se informó un alto nivel de penetración de sitios sin parches. [118]
El 23 de diciembre de 2019, Drupal solucionó un problema de carga de archivos arbitrarios. La falla en la carga de archivos afecta a Drupal 8.8.x anterior a 8.8.1 y 8.7.x anterior a 8.7.11, y Drupal clasifica la vulnerabilidad como moderadamente crítica. [119] [120]
En septiembre de 2022, Drupal anunció dos avisos de seguridad para una vulnerabilidad grave en Twig para los usuarios de Drupal 9.3 y 9.4. [121] Esa semana, Drupal también anunció un parche para el sistema de archivos S3 para solucionar un problema de omisión de acceso. [87]
En enero de 2023, Drupal anunció actualizaciones de software para resolver cuatro vulnerabilidades en el núcleo de Drupal y tres complementos. [122]
La dirección futura de Drupal está adoptando cada vez más una arquitectura CMS sin cabeza, transformando el panorama de los sistemas de gestión de contenidos. Este enfoque desacopla el frontend (presentación y publicación) del backend (contenido), lo que permite una mayor flexibilidad e innovación en la entrega de contenido. En particular, Drupal, un antiguo competidor de WordPress, ha invertido significativamente en este enfoque sin cabeza. El creador de Drupal, Dries Buytaert, ha hablado del nuevo kit de inicio sin cabeza de código abierto de Acquia, que es parte integral del Acquia CMS basado en Drupal. Este kit permite a las organizaciones ofrecer contenido más allá de los navegadores web tradicionales, atendiendo a una variedad de medios digitales como señalización digital, dispositivos portátiles, chatbots, aplicaciones móviles y quioscos. [123]
{{cite web}}
: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace )Actividad de Drupal.org
Debe proceder bajo el supuesto de que todos los sitios web de Drupal 7 se vieron comprometidos a menos que se actualicen o apliquen parches antes del 15 de octubre a las 11 p. m. UTC, es decir, 7 horas después del anuncio.
Simplemente actualizar a Drupal 7.32 no eliminará las puertas traseras ... actualizar a la versión 7.32 o aplicar el parche soluciona la vulnerabilidad pero no repara un sitio web ya comprometido. Si descubre que su sitio ya está parcheado pero no lo hizo, eso puede ser un síntoma de que el sitio fue comprometido: algunos ataques han aplicado el parche como una forma de garantizar que son el único atacante en control del sitio.
{{cite book}}
: Mantenimiento CS1: falta el editor de la ubicación ( enlace )