Drupal

Da Wikipedia, l'enciclopedia libera.
Drupal
Logo di Drupal
Screenshot di Drupal
Home page di una installazione predefinita di Drupal
Sviluppatore Drupal community
Ultima versione 7.26[1] (15 gennaio 2014; 2 mesi fa)
Sistema operativo Multipiattaforma
Linguaggio PHP
Genere Content management system
Licenza GNU GPL
(Licenza libera)
Sito web drupal.org

Drupal è un content Management System (CMS) modulare scritto in linguaggio PHP e distribuito sotto licenza GNU GPL.

Storia[modifica | modifica sorgente]

Creato originariamente da Dries Buytaert[2] 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 evolvette 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.[3]

Negli anni Drupal ha acquistato popolarità. Da maggio 2006 ad aprile 2007, Drupal è stato scaricato più di 600.000 volte.[4] Ora lo sviluppo di Drupal gode dell'apporto di una grande comunità.[5] Nell'agosto 2007, le traduzioni dell'interfaccia di Drupal sono disponibili in 37 lingue oltre all'inglese (la lingua predefinita).[6] 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 Bianca WhiteHouse.gov utilizza Drupal.[7]

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.[8]

Caratteristiche[modifica | modifica sorgente]

Funziona su diversi sistemi operativi, tra cui Windows, Mac OS X, Linux e qualsiasi piattaforma software che supporti i web server Apache (versione 1.3 o superiore) o IIS (versione 5 o superiore) e il linguaggio PHP (versione 4.3.3 o superiore). Drupal utilizza inoltre un database per memorizzare i contenuti, e necessita dunque di un software come MySQL e PostgreSQL che sono gli unici DBMS al momento supportati. I requisiti dettagliati sono disponibili sul sito ufficiale di Drupal[9].

Drupal ha ricevuto vari apprezzamenti dai 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.[10]

Moduli[modifica | modifica sorgente]

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
  • Fornire feed RSS
  • 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 ed 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 centinaia di moduli gratuiti sviluppati dalla comunità. Alcune delle funzionalità fornite o migliorate dai moduli sviluppati dagli utenti:

  • Sistemi e-commerce
  • Flusso di lavoro redazionale
  • Gallerie fotografiche
  • Gruppi autogestiti
  • Sitemap di Google
  • Gestione di mailing list
  • Integrazione con CVS
  • Gestire immagini e video
  • Gestire servizi di terze parti (Adsense, AuctionAds, Technorati, etc.)

Tracciamento delle versioni[modifica | modifica sorgente]

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 rilasciate nuove versioni dei moduli e temi installati.

Temi[modifica | modifica sorgente]

La maggior parte dei temi per Drupal sono creati usando il sistema 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 dei sistemi PHPTemplate e XTemplate sono state una risposta ad alcune di queste critiche.

Critiche[modifica | modifica sorgente]

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[14] considerano più difficile imparare a usare Drupal e installarlo, rispetto ad altri CMS o a semplici piattaforme per blog come WordPress. Drupal 5.0, rilasciato 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.[15]

Alcuni programmatori criticano Drupal perché non lo considerano sviluppato con la Programmazione orientata agli oggetti (OOP), ma Programmare Drupal da una prospettiva orientata agli oggetti (in inglese) spiega come i principi della OOP e della Programmazione orientata agli aspetti (AOP) siano applicati anche a Drupal.

Distribuzioni[modifica | modifica sorgente]

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[16] è 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[17]. Funzioni particolarmente utili per organizzazioni no-profit e campagne politiche sono disponibili nel modulo CiviCRM per Drupal 5.0 e versioni seguenti.

Note[modifica | modifica sorgente]

Bibliografia[modifica | modifica sorgente]

Drupal è stato trattato in molti libri sullo sviluppo di applicazioni web. Al momento non ne esistono delle traduzioni in italiano.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]