Le Viste sono lo strumento molto versatile e possono essere usate non solo per mostrare elenchi di Entità, ma anche per altri scopi. Vediamo in questa Guida come guidare con una Vista l'inserimento di un valore in un Campo di tipo Riferimento, prendendo come esempio la selezione della Categoria quando si carica un nuovo Attrezzo nella app: invece che digitare "a caso" caratteri confidando di azzeccare il nome della Categoria, vorremmo mostrare all'Utente l'elenco di tutte le Categorie, ordinate secondo la loro Categoria superiore:

A questo scopo risulta utile una particolare Visualizzazione delle Viste, chiamata Entity Reference, (dalla versione 11 di Drupal questa Visualizzazione è stata aggiunta al Core e quindi non serve più installare un modulo aggiuntivo, segnale del successo di questa funzione). Vediamo passo passo come ottenere questo risultato:
- Creare una Visualizzazione di tipo Entity Reference
- Usare la Visualizzazione in un Campo Riferimento
- Scegliere come selezionare i valori
Creare una Visualizzazione di tipo Entity Reference
Una Vista di tipo Entity Reference è una Vista normale, con una Visualizzazione di tipo Entity Reference. La creiamo quindi come abbiamo imparato a fare nelle Guide precedenti, in grassetto le istruzioni specifiche:
| crea una Vista che elenca le Categorie | in Struttura - Viste crea una nuova Vista di nome "Selezione Categoria", formata da Contenuti di tipo Categoria, mostrati come elenco non formattato |
| aggiungi la relazione Categoria → Categoria Superiore | nella sezione Relazioni della Vista aggiungi il Campo "Categoria Superiore" della Categoria e rinominalo come "Superiore" |
| elenca tutte le Categorie ordinate per Categoria Superiore | nella sezione Campi aggiungi un Campo Titolo, selezionando per esso come Relazione "Superiore" (mostra quindi il titolo della Categoria Superiore) ed un secondo Campo Titolo, senza alcuna Relazione (mostra quindi il titolo della Categoria). Nella sezione Criteri di ordinamento aggiungi un Campo Titolo, selezionando come Relazione "Superiore" e, dopo di esso, un altro Campo Titolo, in modo che l'elenco sia prima ordinato per Categoria Superiore e poi per Categoria Nella sezione Criteri del filtro aggiungi un Campo Titolo con Relazione "Superiore" e come operatore seleziona non è vuoto. In questo modo non saranno elencate le Categorie Superiori come righe a se stante, perché le Categorie Superiori non hanno a loro volta una Categoria Superiore. |
| aggiungi alla Vista una Visualizzazione di tipo Entity Reference | seleziona Duplica come Entity Reference: in Visualizzazioni appare una seconda Visualizzazione di nome "Entity Reference". Clicca su di essa. |
| configura la Visualizzazione | nella sezione Formato - Elenco di riferimenti a entità - Impostazioni seleziona entrambi i Campi Titolo Nella sezione Formato - Mostra - Entity Reference inline fields - Impostazioni seleziona entrambi i Campi Titolo per allinearli orizzontalmente e digita come separatore " - " Nella sezione Paginazione - Elementi da visualizzare seleziona Visualizza tutti gli elementi (per motivi i di efficienza le Visualizzazioni di tipo Enitty Reference vengono di default limitate a 10 elementi ma in realtà funzionano bene anche con molti più elementi). |
Usare la Visualizzazione in un Campo Riferimento
Creata la Visualizzazione di tipo Entity Reference che elenca le Categorie, possiamo usarla come strumento per selezionare la Categoria nel Campo "Categoria" dell'Attrezzo:
- vai in Struttura - Tipi di Contenuto - Attrezzo - Gestisci Campi - Categoria - Modifica,
- come Tipo di riferimento seleziona Views filter by an entity reference view
- come Vista utilizzata per selezionare le entità seleziona la Visualizzazione di tipo Entity Reference che hai predisposto es. "Seleziona Categoria".
Scegliere come selezionare i valori
In Struttura - Tipi di Contenuto - Attrezzo - Gestione visualizzazione form - Categoria, come Amministratore puoi scegliere se mostrare l'elenco delle Categorie come elenco da cui selezionarne una oppure come un Campo in cui digitare il nome della Categoria.