Filtrare le Viste sull'Utente

Filtrare il contenuto delle Viste in base all'Utente corrente. Creare variazioni di una Vista.
Dal Vocabolario: Filtro, Vista, Filtro esposto
Aggiornata il:

Nelle Guide precedenti abbiamo costruito la Vista "Magazzino", che elenca tutti gli Attrezzi disponibili al prestito. Vogliamo ora mettere a disposizione di ogni Utente una Vista "Miei Attrezzi" come una variazione della Vista "Magazzino" che mostra solo gli Attrezzi di proprietà dell'Utente stesso. Nella prossima Guida aggiungeremo i comandi per aggiungere un Attrezzo, passare da una Vista all'altra con un click e predisporre il comando che porta l'Utente al Cruscotto della app. 

I passaggi per ottenere questo risultato sono:

  • creare la Vista "Miei Attrezzi" come variazione della Vista "Magazzino"
  • aggiungere un Filtro a "Miei Attrezzi" che la limiti ai soli Attrezzi dell'Utente che sta usandola, cioè il cosiddetto Utente corrente (current user)

Puoi vedere il risultato guardando la Vista "Magazzino" e la Vista "Miei Attrezzi" sul sito di esempio.

Creare una variazione di una Vista

Per non creare la Vista "Miei Attrezzi" da zero, possiamo crearla una variazione della Vista "Magazzino" e poi adattarla alle nuove necessità. Per creare una variazione di una Vista esistente ci sono due metodi: fare una copia della Vista originale, oppure creare una nuova Visualizzazione della Vista originale. Vediamo entrambi i metodi ed i loro pro e contro.

Creare una nuova Vista come copia della Vista originale

Per duplicare la Vista originaleVai in Struttura - Viste e seleziona Duplica a fianco della Vista originale
Per distinguere la nuova Vista dalla Vista originaleDai un nome significativo alla nuova Vista e modifica anche il nome interno
Per evitare che Drupal confonda le due VisteNella sezione Impostazioni pagina della nuova Vista modifica il Percorso differenziandolo da quello della Vista originale  

I vantaggi di questo metodo sono la sua semplicità e l'impossibilità di rovinare per errore la Vista originale. Lo svantaggio è che qualunque modifica si apporterà in futuro alla Vista originale non verrà applicato automaticamente alla nuova Vista.

Creare una nuova Vista come nuova Visualizzazione della Vista originale.

Per creare la nuova Visualizzazione della Vistaseleziona Duplica page:  in Visualizzazioni appare una seconda Visualizzazione di nome "page". Da qui in poi, prima di effettuare una qualunque modifica, assicurati di agire sulla Visualizzazione desiderata (originale o nuova) cliccandovi sopra.
Per distinguere la nuova Visualizzazione dalla Visualizzazione originale Clicca su Nome visualizzato e rinominala (es. "Miei Attrezzi") per distinguerla dall'originale
Per evitare che Drupal confonda le due VisteNella sezione Impostazioni pagina della nuova Visualizzazione modifica il Percorso differenziandolo da quello della Visualizzazione originale  

Quando apporti una qualunque modifica in una delle due Visualizzazioni, nella casella Per puoi decidere se applicarla a tutte le Visualizzazioni oppure solo alla Visualizzazione selezionata in quel momento. Il pulsante in fondo conferma tale scelta:   

Il vantaggio di questo metodo è che puoi facilmente estendere le modifiche a tutte o alcune delle variazioni di una Vista. Vedremo inoltre in Guide successive che questo è il metodo standard per creare alcuni Viste che si allegano a Entità (EVA) o ad altre Viste. Lo svantaggio di questo metodo è che, se non si sta attenti, si rischia di rovinare una Vista funzionante applicando ad essa una modifica pensata per un'altra Visualizzazione della stessa Vista. Suggerisco questo secondo metodo quando la nuova Vista si differenzia dall'originale per pochi dettagli. 

Filtrare la Vista sull'Utente corrente

Abbiamo visto nella Guida precedente come usare in una Vista informazioni contenute in Entità collegate da un Campo Riferimento alle Entità principali della Vista stessa. Creata nella Vista "Magazzino" una nuova Visualizzazione "Miei Attrezzi", vediamo come aggiungervi l'informazione sull'Utente Proprietario dell'Attrezzo e usarla per filtrare gli Attrezzi, limitandoli a quelli di proprietà dell'Utente corrente.

identifica il proprietario dell'Attrezzo, che coincide con l'Autore dell'AttrezzoNella sezione Relazioni  aggiungi Utente - Contenuto- Nome utente dell'autore del contenuto e rinominala come "Proprietario"
filtra la Visualizzazione limitandola ai soli Attrezzi di proprietà dell'Utente correnteNella sezione Criteri del filtro aggiungi Corrente - Utente- Filtra la vista con l'utente attualmente autenticato, come Relazione seleziona "Proprietario", come operatore seleziona è uguale a e come è l'utente autenticato seleziona si