Nel precedente articolo sono stati descritti alcuni moduli Drupal per creare blocchi personalizzati, ma come fare per posizionarli nel proprio layout? Il metodo classico è quello di inserirli nelle varie regioni attraverso l'interfaccia di default per la configurazione dei blocchi, interfaccia che però in molti casi può essere limitante o comunque complessa da utilizzare. Grazie ad alcuni moduli appositi si può semplificare e migliorare la gestione dell'impaginazione del sito.
Panels
Panels è un modulo molto complesso che permette di specificare diversi layout nello stesso sito partendo da una serie di condizioni. Ecco un esempio: si può specificare un certo layout, ad esempio a tre colonne, nel caso in cui venga visualizzato un articolo del blog. Ogni colonna potrà contenere uno o più blocchi, delle viste, elementi del nodo o altri contenuti personalizzati.
Il modulo Panels offre di default una serie di suddivisioni della pagina con una, due o tre colonne (disponibili in più varianti ed estendibili con configurazioni personalizzate) all'interno delle quali posizionare i vari elementi. Il posizionamento degli oggetti nelle aree definite dai layout del pannello viene effettuato tramite una comoda interfaccia grafica. I layout offerti dal modulo Panels sono inseriti nella regione del contenuto principale di Drupal che andrà opportunamente configurato tenendo conto di questa ulteriore suddivisione.
Panels ha però due punti deboli: non usa le regioni standard del tema Drupal ma delle sotto-regioni da esso gestite e la sua configurazione può essere anche molto complessa nel momento in cui si deve condividere parte del layout tra diverse tipologie di pagine.
Context
Il modulo Context, invece, permette di creare una serie di contesti definiti da un insieme di condizioni ed una serie di reazioni. Tra le varie reazioni c'è anche la possibilità di mostrare dei blocchi all'interno di una regione. Si può quindi sfruttare questa caratteristica per definire un contesto generale, ad esempio per mostrare il blocco del piè pagina in ogni pagina, e vari contesti specializzati per stabilire quando e dove mostrare altri blocchi nelle varie sezioni del sito. A differenza di Panels, più contesti possono essere attivi nella stessa pagina e quindi le varie configurazioni si intersecano.
Inoltre, con il modulo Context field si può associare uno specifico contesto ad una singola istanza di una entità (ad esempio un nodo) e, grazie all'interfaccia drag & drop fornita da Context UI, posizionare i blocchi disponibili, piuttosto che nuovi blocchi creati con il modulo Boxes o, perché no, con il modulo Bean, nelle varie regioni del tema.
Un'altra estensione del modulo Context è data dal nuovo modulo Delta che è in grado di configurare più varianti di configurazioni del tema in uso ed attivarle sulla base del contesto attivo.
Quale metodo usare?
Insomma, sia Panels che Context sono due ottimi metodi per gestire il layout di siti complessi, l'adozione di uno di questi moduli per Drupal dipenderà di volta in volta dalle specifiche esigenze del progetto; in alcuni casi sarà preferibile l'uso di Panels ed in altri converrà adottare Context.