Quando parliamo di CMS, il primo pensiero è rivolto a Wordpess. Anche io lo utilizzo abitualmente, ma ultimamente ho scoperto le potenzialità di Drupal.
Drupal è un CMS utilizzato da alcune delle più grandi organizzazioni del mondo, tra cui Tesla e la NASA. In Italia è utilizzato dall’Enac, l’Ente Nazionale per l’aviazione civile, per il quale recentemente sono stato chiamato a sistemare alcuni dettagli relativi all’accessibilità.
A mio avviso, Drupal è una piattaforma molto potente che offre un’ampia gamma di funzionalità, tra cui ovviamente quelle standard come la creazione di contenuti, la gestione del flusso di lavoro e amministrazione degli utenti.
Offre anche una solida struttura di sicurezza, che rende questo CMS la scelta ideale per le organizzazioni che devono proteggere i dati sensibili. Inoltre, Drupal è altamente estensibile e consente alle organizzazioni di adattarlo alle loro esigenze specifiche. Di conseguenza, non sorprende che Drupal sia una delle piattaforme CMS più popolari al mondo.
L’UX di Drupal è uno dei suoi punti di forza. La piattaforma è stata progettata per essere facile da usare, con l’obiettivo di rendere disponibili tutte le funzionalità di cui gli utenti hanno bisogno. Il team UX di Drupal fa un ottimo lavoro per garantire che la piattaforma sia costantemente migliorata, con l’obiettivo di fornire un’esperienza eccezionale ai suoi utenti, indipendentemente dal loro livello di competenza tecnica.
La flessibilità e le funzionalità offerte da Drupal ne fanno un CMS irresistibile per costruire applicazioni web dinamiche, reattive e altamente intuitive.
La svolta con Drupal 8
Sinceramente non so come fossero le versioni precedenti alla 8, ma posso dire con certezza che con Drupal 8 è stato fatto un grande salto di qualità. Il CMS è stato reingegnerizzato sulla base del framework Symfony 2, rendendolo compatibile con i moderni standard PHP.
L’integrazione con la programmazione orientata agli oggetti è stata ottimizzata, aspetto che favorisce la riusabilità e la manutenibilità del codice.
Inoltre sono state introdotte funzionalità come la compilazione degli assets statici (JavaScript e CSS) in file unici, con conseguente beneficio per i siti web ad alto traffico. Ma vediamo cosa offre Drupal in termini di UX Design.
Template gestito con Twig
Drupal 8 è dotato di un nuovo motore di tematizzazione chiamato Twig. Twig è un moderno template engine basato su PHP, veloce, sicuro e flessibile. Twig è stato creato da Fabien Potencier, il creatore del framework Symfony.
Questo template engine consente di creare complessi layout con codice PHP semplificato.
L’engine compila i template in codice PHP semplice e ottimizzato, che riduce l’overhead rispetto al normale PHP e rende facile anche per chi non è uno sviluppatore PHP costruire applicazioni web funzionali e di grande impatto estetico.
Miglioramenti al multilinguismo
Dalla versione 8, Drupal offre funzionalità multilingua integrate per sviluppare e visualizzare contenuti in diverse lingue.
Per costruire un sito multilingua, è possibile sfruttare i 4 moduli del nucleo di Drupal: Lingua, Locale (traduzione dell’interfaccia), Traduzione dei contenuti e Traduzione della configurazione.
Grazie alle funzionalità di traduzione, è possibile tradurre contenuti, profili utente, stili di immagine, visualizzazioni, commenti, feed, blocchi, menu, tassonomie e altro ancora.
Drupal consente di tradurre l’intero sito per offrire un’esperienza nativa e personalizzata, specifica per ogni nazione.
Inoltre, parlando da sviluppatore, l’integrazione di moduli personalizzati con il supporto multilingua, è abbastanza semplice. Basta implementare le giuste classi del modulo che andranno a richiamare le funzionalità native del software.
Integrazione di BigPipe
L’utente medio decide di rimanere o abbandonare un sito web entro i primi 3 secondi dall’accesso in una pagina. Immaginate il suo disappunto se il vostro sito web si carica lentamente. Drupal ha adottato il modulo BigPipe con Drupal 8.
Il modulo BigPipe è stato inventato da Facebook nel 2015 ed è uno dei metodi più popolari per velocizzare il caricamento delle pagine.
Prima era un modulo separato, ma con Drupal 8.3.0 è stato integrato nel core, consentendo agli sviluppatori di ottimizzare le prestazioni di caricamento del sito.
Supporto integrato per i servizi web
Prima della versione 8, Drupal costringeva gli sviluppatori a utilizzare plugin di terze parti per interrogare servizi web. L’Hypertext Application Language (HAL) delle versioni recenti di Drupal consente di sfruttare i servizi Restful in modo semplice.
Oggi, Drupal ha una soluzione integrata per le API dei servizi web RESTful. Inoltre, questo modulo consente alla piattaforma stessa di agire come fonte di dati e di esporre dati in JSON o XML.
Questo miglioramento rappresenta un enorme vantaggio in termini di caricamento dei contenuti su una pagina web.
Caching avanzato
Drupal 8 ha migliorato il suo meccanismo di caching. Mette in cache tutte le entità e carica il supporto JavaScript solo quando necessario.
Così, quando una pagina viene visualizzata, all’accesso successivo, viene aggiornato solo il codice JavaScript, evitando di ricaricare l’intera pagina.
La funzionalità è integrata e abilitata di default, quindi in fase di sviluppo è altamente consigliato disabilitarla.
Accessibilità migliorata
Drupal 8 ha migliorato notevolmente l’adozione di tecnologie standard di accessibilità come WAI-ARIA. WAI-ARIA è un insieme di ruoli, stati e proprietà che possono essere applicati al markup per fornire una semantica ricca, aumentando l’accessibilità e l’interazione.
Utilizzando l’attributo role con un elemento HTML, gli autori possono fornire maggiori informazioni sullo scopo dei componenti nella pagina.
Le persone con disabilità possono incontrare difficoltà nell’utilizzo di un sito web e spesso necessitano di dispositivi e browser non standard. Per questo motivo è bene pensare anche a loro, rendendo i siti Web più accessibili.
Gestione delle viste e dei modi di visualizzazione
Quanto detto nel paragrafo precedente, trova la sua applicazione nella gestione delle viste e nel display mode di Drupal. Le viste sono rappresentazioni grafiche dei dati e sono facilmente gestibili dal pannello di amministrazione.
Spiegato in maniera un pò più semplice, attraverso questo modulo possiamo cambiare da interfaccia il layout dei blocchi nel frontend, ad esempio:
- Lista articoli
- Lista tassonomie

Con la stessa facilità è possibile impostare quali campi deve visualizzare la vista. Ma non solo, sempre da interfaccia possiamo passare classi CSS personalizzate al campo.
È possibile anche passare altri tipi di attributo al campo, con l’opzione per riscrivere completamente l’output.
A mio avviso, questa però è una soluzione abbastanza invasiva. Di fronte ad un’esigenza del genere, è meglio affidarsi allo sviluppatore che sfruttando gli hooks del CMS può passare qualsiasi proprietà a qualsiasi oggetto istanziato da Drupal.
Gestione dei tipi di contenuto e dei relativi campi
Chi utilizza WordPress sa quanto è laborioso aggiungere un nuovo tipo di contenuto. Bisogna usare un plugin o agire da codice per creare il nuovo post_type e successivamente passare alla gestione dei campi personalizzati. Per poi finire con il template.
In Drupal tutto ciò si fa con pochi click: Si crea una nuova entità, si associano i campi e si crea la relativa vista. Tutto ciò da interfaccia senza ausilio di alcun modulo aggiuntivo.
Conclusioni
Come si è capito, anche se drupal può essere facile da utilizzare è sempre utile affidarsi ad esperti, come quelli che ci hanno presentato DRUPAL , oggi, Luca Terribili , grande sostenitore di Drupal. Tant’è vero che il suo sito personale è realizzato proprio con questo CMS.
Inoltre, ci ricorda che il volume di codice che deve scrivere si è notevolmente ridotto, perchè come abbiamo visto, gran parte della UX è gestibile attraverso il pannello di amministrazione e Twig.
Quando poi è necessario mettere le mani al codice per aggiungere qualche attributo custom, Drupal mette a disposizione una vasta gamma di hooks dove iniettare le funzionalità custom.
