Nozioni di base

Drupal è fortemente modulare, flessibile e personalizzabile. Queste caratteristiche ne fanno un prodotto con una curva di apprendimento sicuramente più lunga di altri software di questo genere, ma molto potente perchè con esso si è in grado di "costruire" letteralmente il proprio progetto. La differenza tra un CMS orientato alle funzionalità (blog, bookmarking, community) e Drupal è quella che intercorre tra l'avere un oggetto finito, che è in generale utile solo allo scopo per cui è nato, e l'avere a disposizione materiali e strumenti per realizzarne uno, più vicino alle nostre reali necessità.

Drupal si presenta, già nella sua dotazione di base (core), ricco di funzionalità che nella maggior parte dei casi coprono le principali necessità di chi si appresta a costruire un sistema di gestione di contenuti. Può essere poi ulteriormente esteso con moduli aggiuntivi (http://drupal.org/project/Modules), ossia componenti che aggiungono nuove funzionalità al sistema come la gestione delle immagini, delle gallerie, della messaggistica, dell'amministrazione di sistema (cck, views, imagecache sono per dirne alcuni) ed altro.

L'astrazione è il concetto base di Drupal ed è un concetto fondamentale in informatica: l'astrazione ci dà la possibilità di semplificare i sistemi ricercando in essi i concetti fondamentali che accomunano le varie parti di cui sono composti.

In Drupal i tipi di contenuto sono rappresentati dai nodi mentre l'architettura dell'informazione, cioè la struttura organizzativa dei contenuti, è gestita tramite il sistema di menù. Il nodo è l'astrazione di un contenuto qualsiasi, sia esso un intervento in un blog o una pagina: se tutto è un nodo allora possiamo gestire ognuno di questi contenuti, per quanto diversi nell'aspetto e nelle linformazioni, con un meccanismo unificato, che permette di centralizzare le operazioni effettuate su di essi (ad esempio la pubblicazione, la catalogazione, la ricerca). Questo si traduce in una struttura più "generica", che ci permette di gestire una gamma virtualmente infinita di contenuti, senza essere costretti a "scrivere" codice specifico per ogni singolo tipo di contenuto (è generamente il problema dei software creati per un certo obiettivo, cioè orientati alle funzionalità).

Drupal Stack

L'informazione in Drupal è gestita tramite uno stack composto da cinque livelli, dalla base di dati alla presentazione.


Il primo livello si occupa dell'interazione con la base di dati, dal salvataggio al fetching delle informazioni. Il livello di astrazione permette di utilizzare vari database per i dati.


Al secondo livello troviamo i moduli del core e aggiuntivi che richiedono i dati al livello inferiore (database) o al livello superiore (es. interfacce utente) e li elaborano per il salvataggio o per l'output.


I menù sono necessari alla struttura logica e semantica del sito e i blocchi servono a definire dei contenitori dove finiscono determinate informazioni da visualizzare all'utente.


I permessi utente permettono di definire le funzioni del sistema a cui ogni utente ha il permesso di accedere.


Il livello dei modelli (templates) permette l'elaborazione dei dati sottostanti e li prepara alla visualizzazione all'utente finale.