Creato originariamente da Dries Buytaert[1] come bulletin board system, divenne un progetto libero nel 2001. Il nome Drupal è la traslitterazione inglese per la parola olandese druppel che significa goccia. Il nome nasce dal defunto drop.org, sito il cui codice si evolse lentamente fino a trasformarsi in Drupal. Buytaert voleva chiamare il sito «dorp» (in olandese «villaggio», riferendosi all'orientamento «per community» del progetto), ma commise un errore di digitazione quando controllò la disponibilità del dominio. Rileggendo, decise che drupal suonava meglio.[2]
Negli anni Drupal ha acquistato popolarità. Da maggio 2006 ad aprile 2007, Drupal è stato scaricato più di 600 000 volte.[3] Ora lo sviluppo di Drupal gode dell'apporto di una grande comunità.[4]
Nell'agosto 2007, le traduzioni dell'interfaccia di Drupal sono disponibili in 37 lingue oltre all'inglese (la lingua predefinita).[5] I linguaggi supportati ne comprendono alcuni con scrittura da destra a sinistra, come l'arabo e l'ebraico. Dal novembre 2009 il sito della Casa BiancaWhiteHouse.gov utilizza Drupal.[6]
Il 30 maggio 2013 Drupal.org viene hackerato e tutte le password degli utenti scaricate. Drupal inviò una mail a tutti richiedendo il reset della password.[7]
Il 7 ottobre 2015 viene annunciata la versione Drupal 8. Drupal 8 include nuove caratteristiche e miglioramenti, sia per l'utente, sia per gli sviluppatori. Tra questi miglioramenti sono da evidenziare una nuova interfaccia grafica; la possibilità di modificare i contenuti in modalità visuale e direttamente sul contenuto stesso (WYSIWYG in-place); il supporto all'interfaccia mobile; l'aggiunta e l'ampliamento di moduli cruciali fra i quali Views, Date, e Entity Reference; l'adozione di un backend orientato agli oggetti basato sul framework Symfony; l'evoluzione del supporto multilingua. Drupal 8.0.0 è stato distribuito definitivamente nel novembre 2019. Successivamente sono state rilasciati numerosi aggiornamenti e risoluzioni di bugs.
Nel dicembre 2019 la comunità Drupal contava su 1.29 milioni di membri fra i quali 117 000 utenti sviluppatori attivi, con il risultato di rendere disponibili più di 44 000 moduli gratuiti in grado di estendere le funzionalità del "core" di Drupal. Inoltre erano disponibili 2 800 temi grafici gratuiti e 1 300 distribuzioni gratuite. Tutto ciò rende Drupal un content management framework molto estensibile e scalabile, adatto anche a progetti complessi e personalizzabili.
Drupal 9.0.0 è stato distribuito a partire dal 3 giugno 2020. A differenza del passaggio tra Drupal 7 e Drupal 8, che ha comportato un cambio di paradigma di progettazione, dalla tecnica prevalentemente procedurale di Drupal 7 a quella prevalentemente ad oggetti di Drupal 8, la versione Drupal 9 si presenta come un consolidamento e un'ulteriore evoluzione volta a rendere Drupal un sistema stabile, affidabile, scalabile e adatto anche a fornire un solido backend a soluzioni dove l'interfaccia utente necessiti lo sviluppo su piattaforme di front-end dedicate (React, Angular, IOs, Android ecc.).
Si prevede la distribuzione di Drupal 10 per luglio 2022.
Drupal 9 estende l'adozione del "data abstraction layer" (livello di astrazione per la gestione del database) tanto da non richiedere più allo sviluppatore di scrivere le "Queries" nel linguaggio SQL. Microsoft ha scritto un driver che consente di utilizzare SQL Server. Inoltre già Drupal 7 supporta il database SQLite.
I requisiti dettagliati sono disponibili sul sito ufficiale di Drupal[8].
Drupal ha ricevuto vari apprezzamenti da alcuni webmaster, progettisti e programmatori, in parte grazie al suo design modulare che permette al suo livello base, o «core», di fornire solo le funzioni essenziali nella sua configurazione predefinita. Funzioni e capacità di visualizzazione aggiuntive possono estendere il «core» tramite l'installazione di moduli e temi.[9]
Moduli
Il «core» di Drupal contiene i propri moduli. I moduli sviluppati dalla comunità possono comunque essere scaricati e installati in un'area dell'installazione di Drupal non destinata al «core». Il «core» di Drupal è stato progettato con un sistema di «hook» (ganci) o callback, che permettono ai moduli sviluppati dalla comunità di inserire funzioni nel processo di esecuzione di Drupal.
I moduli inclusi nel «core» forniscono le seguenti funzionalità:
Inserire, modificare e catalogare i contenuti
Eseguire ricerche
Inserire commenti
Partecipare a forum
Rispondere a sondaggi
Lavorare a progetti di scrittura collaborativa
Inserire e visualizzare i profili degli utenti
Comunicare tra gli utenti e con gli amministratori del sito
Modificare l'aspetto del sito utilizzando temi grafici già sviluppati e pronti all'uso
Creare menu su più livelli della struttura di navigazione
Localizzare l'interfaccia in diverse lingue, permettendo all'utente di scegliere
Aggregare e presentare i contenuti RSS di altri siti
Registrare nuovi utenti e gestirne gli account
Gestire in modo granulare permessi e ruoli per i singoli utenti o per interi gruppi
Usare regole per impedire l'accesso al sito a determinati utenti in base a nome, indirizzo e-mail, indirizzo IP
Collezionare e presentare statistiche dettagliate del sito
Gestire il caching delle pagine e il throttling, funzionalità che permette di disabilitare alcuni moduli/blocchi in caso di alto traffico del sito
Creare e specificare vari filtri sull'input degli utenti e diversi modelli di contenuto
Generare indirizzi semplici da ricordare, permettendo una migliore catalogazione ai motori di ricerca
Inoltre, il sito di Drupal contiene migliaia di moduli gratuiti sviluppati dalla comunità. Alcune delle funzionalità fornite o migliorate dai moduli sviluppati dagli utenti:
Gestire servizi di terze parti (Adsense, AuctionAds, Technorati, etc.)
Tracciamento delle versioni
update_status, un nuovo modulo disponibile per Drupal 5.x (parte del «core» in Drupal 6.0) notifica automaticamente il gestore del sito quando vengono distribuite nuove versioni dei moduli e temi installati.
Prima di ogni aggiornamento è tuttavia raccomandabile effettuare un backup dell'installazione e del database. Se dovesse presentarsi un errore dovuto ad incompatibilità di un modulo, il backup può essere ripristinato facilmente. Sono a disposizione dell'utente diversi moduli per eseguire i backup.
Per gli sviluppatori l'adozione, già con Drupal 7 e poi sempre più profonda con Drupal 8 e 9, del gestore di pacchetti Composer rende l'aggiornamento tramite "linea di comando" sicuro e affidabile. Composer è consigliato anche per l'installazione dell'intero progetto e dei moduli che via via si rendono necessari[10].
Temi
La maggior parte dei temi per Drupal 8 sono creati usando il motore di template Twig; in Drupal 7 erano utilizzati i sistemi PHPTemplate[11] o il sistema XTemplate[12]. In passato, si usavano temi sviluppati in solo PHP.
Versioni precedenti del meccanismo per i temi di Drupal sono state criticate[13] per essere meno orientate al design e più complesse rispetto ai sistemi di Mambo e Plone. L'inclusione in Drupal prima dei sistemi PHPTemplate e XTemplate, poi del potente TWIG sono state una risposta alla maggior parte di queste critiche.
L'adozione del sistema TWIG consente lo sviluppo e modifica dei temi anche senza la conoscenza di PHP[14].
Attraverso il sito ufficiale Drupal.org è possibile scaricare e installare una grande quantità di temi gratuiti già pronti per l'uso. Alcuni di questi temi hanno una versione a pagamento che consente di accedere a strumenti di controllo più sofisticati.
A disposizione di sviluppatori e designer Drupal.org mette a disposizione alcuni temi che in effetti sono ambienti di sviluppo di interfacce grafiche basati, ad esempio, su Bootstrap 3 o 4.
Drupal 8 e 9 sono fortemente orientati a sviluppare installazioni che abbiano l'interfaccia "Mobile" come prima opzione (Mobile First). I temi installati insieme al "Core" sono predisposti per accogliere con rapidità versioni ottimizzate per i dispositivi portatili.
A questo proposito il creatore di Drupal Dries Buytaert si è impegnato personalmente nel facilitare lo sviluppo delle API REST che consentono di affiancare al Backend Drupal interfacce grafiche progettate in ambienti differenti (React, Angular, ecc.). In ambiente Drupal si definisce questa opportunità con il termine "Decoupled". Drupal 8 e successivi contengono nell'installazione Core gli strumenti necessari per creare progetti "Decoupled".
Accessibilità
Già da Drupal 7 il tema dell'accessibilità è stato uno degli argomenti più sostenuti nella comunità Drupal. Drupal si presta alla costruzione di Siti Web accessibili a persone con disabilità. La maggior parte delle opzioni a favore dell'accessibilità è stata integrata nel Core di Drupal.
Tra le funzionalità più funzionali all'accessibilità si segnalano:
Funzionalità Drag and Drop (trascina e incolla)
Miglioramento del contrasto dei colori e della loro intensità
Aggiunta di default delle etichette nei moduli
Adattamento della clausola CSS display:none in modo che consenta di nascondere o mostrare i testi che assumono il "focus"
Aggiunta del supporto ARIA Live Regions
Miglioramento della navigazione tramite tastiera
Critiche
L'installazione di Drupal (e dei suoi moduli) richiede l'accesso a un database ed alcuni permessi avanzati, ad esempio la possibilità di usare comandi SQL come SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER e LOCK TABLES. Alcuni fornitori di hosting web non offrono queste funzioni. Chi voglia usare Drupal deve accertarsi che il suo server offra queste funzioni prima di installare.
Come per altri sistemi di gestione dei contenuti, è possibile configurare il database di partenza da riga di comando drupal.org oppure con phpMyAdmin/PhpPgAdmin. A partire dalla versione 5.0, è possibile installare Drupal e configurare il database quasi interamente tramite un'interfaccia web.
Alcuni[15] considerano più difficile imparare a usare Drupal e installarlo, rispetto ad altri CMS o a semplici piattaforme per blog come WordPress. Drupal 5.0, distribuito il 15 gennaio 2007, contiene un assistente all'installazione utilizzabile con il browser, per rispondere in parte a queste critiche; Drupal 6.0, pubblicato il 13 febbraio 2008, rende ancora più semplice l'installazione.[16]
A partire da Drupal 7 l'installazione è diventata molto semplice, sia per l'utente non sviluppatore che può installare a partire da un unico pacchetto scaricato dal sito Drupal.org, sia per gli sviluppatori che attraverso Composer possono effettuare l'installazione con un solo comando.
Per semplificare il processo di installazione a coloro che vogliano usare Drupal in un contesto specifico (un negozio online, un sito di recensioni musicali, un blog, ecc.), la comunità di Drupal ha discusso se distribuire installazioni di Drupal pronte all'uso, pre-configurate con moduli di terze parti e impostate per un tipo particolare di sito.
Ci sono già diverse distribuzioni personalizzate di Drupal. Molte sono semplicemente costituite da Drupal con l'aggiunta di moduli di terze parti, ma alcune includono anche modifiche al «core». Un esempio di queste distribuzioni è vbDrupal, che è Drupal integrato con vBulletin.
Drupal 4.2[17] è stato usato da DeanSpace, che ha ospitato molti siti web indipendenti a supporto della campagna presidenziale di Howard Dean nel 2004. Dopo la fine della campagna di Dean, il progetto DeanSpace si è trasformato in CivicSpace, una «piattaforma per l'organizzazione di movimenti dal basso che fornisce strumenti all'azione collettiva nelle comunità e connette e ravvicina gruppi distanti di sostenitori» basata su Drupal. Quindi CivicSpace è una distribuzione derivata, basata su Drupal 4.2.
Molte innovazioni di CivicSpace sono state poi riportate all'interno del progetto di Drupal[18]. Funzioni particolarmente utili per organizzazioni no-profit e campagne politiche sono disponibili nel modulo CiviCRM per Drupal 5.0 e versioni seguenti.
^Le funzioni del «core» di Drupal sono descritte nel «Manuale di Drupal» disponibile online all'indirizzo Copia archiviata, su drupal.org. URL consultato l'8 aprile 2009 (archiviato dall'url originale il 28 luglio 2008).