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 hasta 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 contribuían activamente, [15] lo que dio como resultado más de 50 000 módulos gratuitos que amplían y personalizan la funcionalidad de Drupal, [16] más de 3000 temas gratuitos que cambian la apariencia de Drupal, [17] y al menos 1400 distribuciones gratuitas que permiten a los usuarios configurar rápida y fácilmente un Drupal complejo y específico para su uso en menos pasos. [18]
La versión estándar de Drupal, conocida como núcleo de Drupal , contiene características básicas comunes a los sistemas de administración de contenido . Estas incluyen el registro y mantenimiento de cuentas de usuario, administración de menús, feeds RSS , taxonomía, personalización del diseño de página y administración del sistema. La instalación del núcleo 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 los usuarios .
Drupal también se describe a sí mismo como un marco de aplicaciones 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 de un sitio web y la administración del marco no requieren habilidades de programación. [22]
Drupal funciona en cualquier plataforma informática que admita un servidor web capaz de ejecutar PHP y una base de datos para almacenar contenido y configuración.
En 2023/2024, Drupal recibió más de 250.000 euros del Sovereign Tech Fund de Alemania . [23]
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 . [34] [35] Después de graduarse, Buytaert trasladó el sitio a Internet público y lo llamó Drop.org. [34] Entre 2003 y 2008, Dries Buytaert trabajó para obtener un doctorado en la Universidad de Gante . [36]
El nombre Drupal proviene de la palabra holandesa druppel , que significa "gota" (como una gota de agua). [37] El nombre proviene del ahora extinto Drop.org, cuyo código evolucionó lentamente hasta convertirse en Drupal. Buytaert quería llamar al sitio "dorp" ("aldea" en holandés) por sus aspectos comunitarios, pero lo escribió mal al verificar el nombre de dominio y pensó que el error sonaba mejor. [38]
Drupal se convirtió en un proyecto de código abierto en 2001. [38] 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 los EE. UU. para la elección presidencial de los EE. UU. de 2004. DeanSpace utilizó el intercambio de código abierto de Drupal para respaldar una red descentralizada de aproximadamente 50 sitios web dispares y no oficiales a favor de Dean que permitían a los usuarios comunicarse directamente entre sí y con la campaña. [39] Después de que Dean terminara 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 lanzando CivicSpace Labs en julio de 2004, "... la primera empresa con empleados a tiempo completo que estaba desarrollando y distribuyendo tecnología Drupal". [40] Otras empresas también comenzaron a especializarse en el desarrollo de Drupal. [41] [42]
En 2013, el sitio web de Drupal enumeraba cientos de proveedores que ofrecían servicios relacionados con Drupal. [43]
A partir de 2014 [actualizar], Drupal es desarrollado por una comunidad. [44] [ 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 del año anterior. [45] [46]
En enero de 2017, [actualizar]más de 1.180.000 sitios utilizan Drupal. [47] Entre ellos se encuentran cientos de organizaciones conocidas, [48] entre las que se incluyen corporaciones, empresas de medios y editoriales, gobiernos, organizaciones sin fines de lucro, [49] escuelas y particulares. Drupal ha ganado varios premios Packt Open Source CMS Awards [50] y ha ganado el premio Webware 100 [ aclaración necesaria ] tres veces seguidas. [51] [52]
Drupal 6 fue lanzado el 13 de febrero de 2008, [53] el 5 de marzo de 2009, Buytaert anunció una congelación de código para Drupal 7 para el 1 de septiembre de 2009. [54] Drupal 7 fue lanzado el 5 de enero de 2011, con fiestas de lanzamiento en varios países. [55] Después de eso, el mantenimiento de Drupal 5 se detuvo, con solo Drupal 7 y Drupal 6 mantenidos. [56]
El fin de la vida útil de Drupal 7 estaba programado para noviembre de 2021, pero dado el impacto de COVID-19 y el continuo uso generalizado, el fin de la vida útil se ha pospuesto hasta el 1 de noviembre de 2023, para ser revisado anualmente. [57] El fin de la vida útil de Drupal 7 se ha extendido 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 para Drupal 7. [58]
En octubre de 2022, Drupal lanzó un acelerador de CMS sin interfaz de código abierto , que permite administrar el frontend fuera del sistema central. [59] [60]
En la comunidad Drupal, "core" se refiere a la base de código construida de manera colaborativa que se puede ampliar a través de módulos contributivos y, para versiones anteriores a Drupal 8, se mantiene fuera de la carpeta "sites" de una instalación de Drupal. [61] (A partir de la versión 8, el core se mantiene en su propio subdirectorio 'core'). El core de Drupal es el elemento estándar de Drupal. Las bibliotecas específicas comunes de Drupal, así como el proceso de arranque, se definen como core de Drupal; todas las demás funciones se definen como módulos de Drupal, incluido el módulo del sistema en sí.
En la configuración predeterminada de un sitio web Drupal, los autores pueden contribuir con contenido como usuarios registrados o anónimos (a discreción del administrador). Los visitantes del sitio web pueden acceder a este contenido mediante una variedad de criterios seleccionables. A partir de Drupal 8, Drupal ha adoptado algunas bibliotecas 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]
El núcleo de Drupal incluye módulos que el administrador puede habilitar para ampliar la funcionalidad del sitio web principal. [62] [63]
La distribución principal de Drupal proporciona una serie de características, entre ellas: [62]
Drupal incluye temas centrales que personalizan la "apariencia" de los sitios Drupal, [65] por ejemplo, Garland y Bartik.
El módulo de color, introducido en el núcleo de Drupal 5.0, permite a los administradores cambiar el esquema de color de ciertos temas a través de una interfaz de navegador. [66]
A partir de septiembre de 2022, Drupal está disponible en 100 idiomas, incluido el inglés (el predeterminado). [67] [68] Se incluye soporte para idiomas que se escriben de derecha a izquierda, como árabe , persa y hebreo . [69]
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. [69] 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 aparece 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 copia de seguridad disponibles en Drupal.
El 15 de octubre de 2014, se anunció una vulnerabilidad de inyección SQL y se lanzó una actualización. [70] Dos semanas después, 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. [71] 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 la limpieza de consultas SQL, la prefijación de nombres de tablas multisitio y la 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 de modo que un programador ya no necesita 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 servidor SQL Server . Drupal 7 admite el motor de base de datos SQLite basado en archivos , que forma parte de la distribución estándar de PHP.
Con la nueva capa de abstracción de base de datos de Drupal 9 y la capacidad de ejecutarse en el servidor web 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. [72]
Desde el lanzamiento de Drupal 7, la accesibilidad web ha mejorado constantemente en la comunidad Drupal. [73] Drupal es un buen marco para crear sitios accesibles para personas con discapacidades, porque muchas de las mejores prácticas se han incorporado a Drupal Core.
Drupal 8 vio muchas mejoras en las pautas de accesibilidad de herramientas de autor (ATAG) 2.0 que respaldan tanto un entorno de creación accesible como también soporte para que los autores produzcan contenido más accesible.
El equipo de accesibilidad continúa trabajando para identificar y resolver las barreras de accesibilidad y crear conciencia dentro de la comunidad.
Drupal 8 tiene un buen soporte semántico para aplicaciones web sofisticadas a través de WAI-ARIA . Se han realizado muchas mejoras tanto en el lado del visitante como en el lado del administrador de Drupal, especialmente:
La comunidad también agregó una puerta de accesibilidad para problemas centrales en Drupal 8. [75]
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 . [76] Este diseño permite que los módulos y temas aportados por terceros amplíen o anulen los comportamientos predeterminados de Drupal sin cambiar el código del núcleo 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 sin problemas a nuevas versiones sin sobrescribir las personalizaciones de su sitio. [77] La comunidad Drupal tiene el dicho "Nunca modifiques el núcleo", una recomendación firme para que los desarrolladores de sitios no cambien los archivos principales. [61]
Los módulos aportados ofrecen funciones 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, [78] integración con portales BPM, [79] y más. A diciembre de 2019, [actualizar]el sitio web de Drupal enumera más de 44.000 módulos gratuitos . [16]
Algunos de los módulos contribuidos más utilizados incluyen: [80]
A 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 de terceros comunes. Muchos están escritos en el motor PHPTemplate [84] o, en menor medida, en el motor XTemplate. [85] Algunas plantillas utilizan PHP codificado de forma rígida . Drupal 8 y las versiones futuras de Drupal integran el motor de plantillas Twig . [86]
La inclusión de los motores PHPTemplate y XTemplate en Drupal abordó las preocupaciones de los usuarios sobre la flexibilidad y la complejidad. [87] 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 de Drupal, llamado 'Devel', proporciona información de la GUI a los desarrolladores y tematizadores sobre la creación de páginas.
Los temas aportados por la comunidad en el sitio web de Drupal se publican bajo una licencia GPL gratuita . [88] [89]
En el pasado, quienes querían una instalación totalmente personalizada de Drupal tenían que descargar una versión personalizada previamente, separada del núcleo oficial de Drupal. Sin embargo, hoy en día, una distribución define una versión empaquetada de Drupal que, al instalarse, 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. [90] Son colecciones de módulos, temas y configuraciones asociadas que preparan Drupal para un funcionamiento personalizado. 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 de control de abstracción de presentación , o PAC.
El sistema de menú actúa como controlador. Acepta la entrada a través de una única fuente ( HTTP GET y POST ), dirige las solicitudes a las funciones auxiliares adecuadas, extrae datos de la abstracción (nodos y, a partir de Drupal 5, formularios) y luego los pasa por un filtro para obtener una presentación de ellos (el sistema de temas).
Incluso tiene múltiples agentes PAC paralelos en forma de bloques que envían datos a un lienzo común (page.tpl.php). [91]
Drupal.org tiene una gran comunidad de usuarios y desarrolladores que brindan soporte activo a la comunidad al proponer nuevas actualizaciones para ayudar a mejorar la funcionalidad de Drupal. [92] A partir de enero de 2017, [actualizar]más de 105 400 usuarios están contribuyendo activamente. [15] La conferencia semestral DrupalCon se alterna entre América del Norte, Europa y Asia. [93] La asistencia a DrupalCon aumentó de 500 en Szeged en agosto de 2008 a más de 3700 personas en Austin, Texas, en junio de 2014.
Eventos más pequeños, conocidos como "Drupal Camps" o DrupalCamp, se llevan a cabo durante todo el año en todo el mundo. [94] El Florida DrupalCamp anual 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 (Greater Los Angeles Drupal Camp), Coders with a Cause.
La comunidad Drupal también organiza reuniones profesionales y semiprofesionales llamadas meetups en numerosos lugares alrededor del mundo.
Hay más de 30 comunidades nacionales [95] en torno a drupal.org que ofrecen soporte específico para cada idioma.
Existen varias formas de medios específicas de Drupal. Las más populares son los podcasts. DrupalEasy, TalkingDrupal y Lullabot Podcast tienen cientos de episodios y miles de oyentes habituales.
Recientemente, The Drop Times [96] se ha convertido en un medio de comunicación centrado en Drupal, destacando historias relevantes para la comunidad Drupal.
Entre los usuarios destacados de Drupal se 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 recibir notificaciones automáticas de estas nuevas versiones a través del módulo Estado de actualización (Drupal 6) o a través del 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 Drupageddon. [110] [111] [112] Descargar e instalar una actualización a Drupal 7.32 corrige la vulnerabilidad, pero no elimina ninguna puerta trasera instalada por 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 dentro de las horas posteriores al anuncio, debe considerarse comprometido y desconectarse al ser reemplazado por una página HTML estática mientras que el administrador de su servidor debe ser informado de que otros sitios en el mismo servidor también pueden haber sido comprometidos. Para resolver el problema, el sitio debe restaurarse utilizando copias de seguridad anteriores al 15 de octubre, debe parchearse y actualizarse manualmente, y todo lo que se fusione desde el sitio debe ser auditado. [114]
A finales de marzo de 2018, se publicó 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 de 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 de dos proveedores de servicios a largo plazo pagos). [117] A principios de abril, se observaron ataques automatizados a gran escala contra sitios vulnerables y el 20 de abril, se informó de 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 arbitrario. El problema de 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 por 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. [86]
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 es adoptar cada vez más una arquitectura de CMS sin interfaz gráfica, transformando el panorama de los sistemas de gestión de contenido. 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. Cabe destacar que Drupal, un competidor de WordPress desde hace mucho tiempo, ha invertido significativamente en este enfoque sin interfaz gráfica. El creador de Drupal, Dries Buytaert, ha hablado sobre el nuevo kit de inicio sin interfaz gráfica de código abierto de Acquia, que es parte integral del CMS Acquia basado en Drupal. Este kit permite a las organizaciones entregar 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}}
: CS1 maint: numeric names: authors list (link)Actividad en Drupal.org
Debe proceder bajo el supuesto de que todos los sitios web de Drupal 7 se vieron comprometidos a menos que se actualizaran o parchearan antes del 15 de octubre a las 11 p. m. UTC, es decir, 7 horas después del anuncio.
La simple actualización a Drupal 7.32 no eliminará las puertas traseras ... la actualización a la versión 7.32 o la aplicación del parche solucionan la vulnerabilidad, pero no solucionan un sitio web que ya está comprometido. Si descubre que su sitio ya tiene el parche aplicado, pero usted no lo hizo, eso puede ser un síntoma de que el sitio se vio comprometido: algunos ataques han aplicado el parche como una forma de garantizar que son los únicos atacantes que controlan el sitio.
{{cite book}}
: CS1 maint: location missing publisher (link)