Drupal Views: creare query potenti

Cos'e' Views

Views e' il modulo più iconico di Drupal: un query builder visuale che consente di creare liste, tabelle, slider, blocchi, feed e pagine partendo dai contenuti del sito senza scrivere SQL. In Drupal 10/11 e' nel core e rappresenta lo strumento principale per costruire dashboard, archivi articoli, vetrine prodotti.

Anatomia di una view

Ogni view si articola in:

  • Display: come la view appare (Page, Block, Feed, Attachment, REST export)
  • Format: layout (Unformatted list, Grid, Table, HTML list)
  • Show: cosa renderizzare (Fields, Content teaser, Search result)
  • Fields: colonne da mostrare se Show=Fields
  • Filter criteria: condizioni WHERE
  • Sort criteria: ORDER BY
  • Contextual filters: parametri dall'URL
  • Relationships: JOIN su entità correlate

Creare una view base

Da /admin/structure/views/add si sceglie il tipo di entità (Content, Users, Files, Media, Taxonomy), si abilita Page e/o Block, si configurano i campi e i filtri. La preview live mostra i risultati man mano.

Filtri contestuali

I contextual filter (argomenti URL) abilitano view dinamiche come "articoli di una tassonomia" o "contenuti di un'autore". L'argomento può essere preso da node ID, nome utente loggato, raw URL component o default custom via PHP.

Relationship: JOIN avanzati

Le Relationship permettono di esporre campi di entità collegate. Esempio: una view di "commenti" può accedere ai campi dell'autore del commento aggiungendo una relationship a User. Senza relationship i campi user non sono disponibili nella view di commento.

Exposed filter

Esponendo i filtri si crea una mini-search form sulla pagina: dropdown per categoria, textfield per testo, daterange. Better Exposed Filters (modulo contrib) trasforma i dropdown in checkbox, radio, slider con UX moderna.

Performance

View con molti risultati e relationships pesanti vanno cacheate con Tag-based cache (default in D10): la cache si invalida automaticamente quando un contenuto correlato cambia. Per query pesanti su molti nodi considerare views_aggregator o un decoupling via Search API.

REST export e JSON

Una view può esporre un display REST export per servire JSON a frontend headless o app mobile. Combinato con JSON:API risolve gran parte dei casi headless senza scrivere codice.

Programmatic alteration

I view possono essere alterati via hook_views_query_alter() per modifiche custom alla query SQL generata. Utile per condizioni che la UI Views non supporta direttamente.

Hai bisogno di aiuto?

Se vuoi un sito Drupal performante dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?