logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Drupal 7 – Lavorare con il database tramite PHP PDO

14/10/2025, by Ivan

Con il passaggio a Drupal 7 utilizziamo il nuovo livello di astrazione del database, il Drupal DB Abstraction Layer API, basato su PDO. PDO è già da tempo impiegato nel framework Zend e in molti altri framework PHP. Tutto funzionava bene in Drupal 6 con le query SQL scritte manualmente, quindi perché introdurre qualcosa di nuovo?

Cominciamo col capire cosa sia esattamente PDO.

Lavorare con il database in Drupal 7 – Lezione 1 – Drupal Database API

14/10/2025, by Ivan

Se hai già sviluppato moduli per la versione 6 di Drupal, non ti sarà difficile passare al nuovo Database API di Drupal 7. Il nuovo DB API si basa sull’estensione PHP PDO, il che gli consente di funzionare con diversi tipi di database come MySQL, PostgreSQL, MSSQL e persino Oracle. In termini di semplicità, serve un po’ di pratica per abituarsi alla nuova sintassi, poiché scrivere query SQL tradizionali può sembrare più familiare.

Ecco un estratto da quanto riportato nella documentazione ufficiale:

Lavorare con il database in Drupal 7 – Lezione 2 – Configurazione del database

14/10/2025, by Ivan

Il principale strumento per definire la connessione al database in Drupal è l’array $databases nel file settings.php. Come suggerisce il nome stesso, $databases consente di definire più connessioni al database e supporta anche la definizione di più target (obiettivi). La connessione non viene aperta (cioè l’oggetto di connessione non viene creato) finché una parte del codice non esegue effettivamente una query sul database.

Lavorare con il database in Drupal 7 – Lezione 3 – Query statiche (SELECT)

14/10/2025, by Ivan

La forma più comune di query in Drupal è la query statica. Una query statica viene passata al database così com’è, senza modifiche da parte di Drupal. Solo le query di selezione (SELECT) possono essere statiche.

Le query statiche dovrebbero essere usate solo per operazioni molto semplici. Per query più complesse, dinamiche o modificabili a runtime, è preferibile usare le query dinamiche.

Un modo semplice per eseguire una query statica è il seguente:

Lavorare con il database in Drupal 7 – Lezione 4 – Query dinamiche (SELECT)

14/10/2025, by Ivan

Probabilmente siamo arrivati alla parte più interessante del Database API di Drupal: le query dinamiche. Si chiamano così perché Drupal costruisce dinamicamente la stringa della query. Tutte le query di inserimento, aggiornamento, eliminazione o unione possono essere dinamiche. Le query di selezione possono essere sia dinamiche che statiche, ma è consigliato usare sempre le query dinamiche anche per le SELECT.

Lavorare con il database in Drupal 7 – Lezione 6 – Modifica dinamica delle query (hook_query_alter)

14/10/2025, by Ivan

Una caratteristica importante delle query dinamiche di selezione in Drupal è la possibilità per altri moduli di modificare una query “al volo”. Ciò consente ad altri moduli di aggiungere istruzioni personalizzate alla query, influenzando così il suo comportamento o applicando modifiche durante l’esecuzione, ad esempio per definire restrizioni di accesso ai nodi. Esistono tre componenti principali per la modifica dinamica delle query: tagging, meta data e hook_query_alter().

Lavorare con il database in Drupal 7 – Lezione 7 – Elaborazione dei risultati di una query (fetch)

14/10/2025, by Ivan

Una query di selezione restituirà sempre un risultato che può contenere da 0 a più record. Esistono diversi modi per elaborare i dati restituiti, e puoi scegliere quello più adatto alle tue esigenze.

Il metodo più comune per elaborare i risultati è utilizzare un ciclo foreach():

Lavorare con il database in Drupal 7 – Lezione 8 – Query di inserimento (INSERT INTO)

14/10/2025, by Ivan

Le query di inserimento devono sempre essere costruite utilizzando il costruttore di query. Alcuni database richiedono gestori speciali per i campi LOB (Large Object, come TEXT in MySQL) e BLOB (Binary Large Object), quindi è necessario un livello di astrazione per consentire ai driver di database di implementare tali gestori specifici.

Le query di inserimento iniziano con la funzione db_insert():

Lavorare con il database in Drupal 7 – Lezione 9 – Query di aggiornamento (UPDATE)

14/10/2025, by Ivan

Le query di aggiornamento devono sempre essere create utilizzando il costruttore di query. I diversi database hanno gestori specifici per i tipi di dati LOB (Large Object, come TEXT in MySQL) e BLOB (Binary Large Object), quindi è necessario un livello di astrazione per consentire ai driver di implementare i propri gestori specifici.

Le query di aggiornamento devono iniziare con la funzione db_update():