Aggregazioni di Viste

Comporre pagine complesse assemblando diverse Viste in una sola pagina
Aggiornata il:

Nelle Guide precedenti abbiamo visto come assemblare una o più Viste (di tipo EVA) nella pagina di una Entità. Vediamo ora invece come assemblare più Viste dentro una semplice pagina di testo o dentro una Vista principale. Esemplifichiamo entrambi i metodi per costruire il Cruscotto della nostra app di esempio

Il Cruscotto

La nostra app di esempio prevede una pagina "Cruscotto" che mostra all'Utente le informazioni ed i comandi essenziali per agire sia come Richiedente sia come Proprietario:

Informazioni e comandi per l'utenteCosa mostra il CruscottoFornito dalla Vista
in generaleIl nome dell'Utente, come link che porta al suo profilo, ad esempio per cambiare la passwordcomando_mio_profilo
"Ultimi Messaggi pervenuti": elenco degli ultimi Messaggi inviati all'Utente da altri Utenti, relativamente a sue Richieste o a Richieste altrui sui suoi Attrezziultimi_messaggi_pervenuti
come Richiedente di Attrezzi altrui"Mie Richieste aperte": elenco delle Richieste aperte dall'Utente, con l'eventuale Prestito attivatomie_richieste_aperte
Comando "Mie Richieste concluse" che porta all'elenco delle Richieste dell'Utente ormai concluse
Comando "Magazzino" che porta al Magazzino, in cui cercare Attrezzi da chiedere in prestito
"Mie Richieste concluse ancora da valutare": elenco delle Richieste dell'Utente concluse ma in cui manca la sua valutazione

mie_richieste_concluse 

(visualizzazione: da_valutare)

come Proprietario di Attrezzi "Richieste e Prestiti aperti sui miei Attrezzi": elenco delle Richieste sugli Attrezzi dell'Utente non ancora conclusemiei_prestiti_aperti
Comando "Miei Prestiti conclusi" che porta all'elenco delle Richieste sugli Attrezzi dell'Utente ormai concluse
Comando "Miei Attrezzi" che porta all'elenco degli Attrezzi dell'Utente ed al comando per aggiungerne di nuovi
"Miei Prestiti conclusi ancora da valutare": elenco dei Prestiti dell'Utente conclusi ma in cui manca la sua valutazione

miei_prestiti_conclusi 

(visualizzazione: da_valutare)

Le Viste qui sopra elencate sono facilmente costruibili in analogia alle Viste costruite nelle precedenti Guide e non vengono pertanto ulteriormente spiegate. Vediamo invece come assemblarle in una sola pagina "Cruscotto", utilizzando due metodi alternativi, basati su due differenti moduli aggiuntivi.

Viste in una Pagina

Un primo metodo è basato sul modulo "Insert View", che consente di inserire una o più Vista dentro il Campo testuale di una qualunque Entità. Installato ed attivato questo modulo, per inserire una Vista in un Campo testo, basta digitare nel testo il Token

[view:name=display=args] 

in cui:

  • name è il nome ad uso interno della Vista, nome elencato da Struttura - Viste. E' l'unico parametro obbligatorio per questo Token.
  • display è il nome della Visualizzazione dentro la Vista, nome mostrato nella sezione Altro della Vista come Nome ad uso interno. Se la Vista ha una sola Visualizzazione, si può omettere questo parametro
  • args sono gli eventuali argomenti passati ai Filtri contestuali della Vista, separati da /. Se la Vista non prevede Filtri contestuali, su può omettere questo parametro dal Token 

Per creare il Cruscotto della app di esempio con questo metodo:

predisponi i Campi testo a riconoscere il Token [view]Vai in Configurazione - Formati testo e editor - Html completo - Configura e attiva Insert View
crea la pagina "Cruscotto"Con Contenuto - Aggiungi Contenuto - Pagina base crea una Pagina; come titolo digita "Cruscotto", come Formato del testo seleziona HTML completo, come Alias URL digita "/cruscotto". 
mostra le informazioni

Digita nel testo della pagina i Token corrispondenti alle Viste

[view:comando_mio_profilo] 

[view:ultimi_messaggi_pervenuti]

[view:mie_richieste_aperte]

[view:mie_richieste_concluse=da_valutare]

[view:miei_prestiti_aperti]

[view:miei_prestiti_conclusi=da_valutare]

Questo metodo è semplice e consente di mescolare le informazioni fornite dalla Viste con testi fissi, immagini ecc. Se però una delle Viste richiamate necessita di valori per i propri Filtri contestuali e questi valori non sono fissi ma dipendono dal contesto in cui la pagina viene richiamata, allora quasi sicuramente occorre passare al metodo successivo.

Viste in una Vista 

Un secondo metodo, più potente e leggermente più complesso, è basato sul modulo "Views Field View" che consente di aggiungere dentro una Vista "principale" una o più Viste "secondarie". Installato ed attivato questo modulo, per inserire nella Vista principale una Vista secondaria basta aggiungere nella sezione Campi della Vista principale il nuovo tipo di Campo Visualizza - Globale - Embed a view as a field. This can cause slow performance, so enable some caching. Nella configurazione di questo Campo si specifica la Vista secondaria da richiamare, la sua eventuale Visualizzazione e gli eventuali argomenti da passare.

La Vista principale può passare alle Viste secondarie qualunque valore noto nella Vista principale stessa, compresi eventuali valori a sua volta ricevuti. Si possono creare così catene di Viste che richiamano altre Viste, che però è opportuno limitare per non incorrere in complessità tali delle interrogazioni sul database da rallentare eccessivamente la app o da mandarla in errore.

Nella app di esempio, aggiungiamo quindi una Vista "Cruscotto" basata sull'Utente corrente (in modo da essere certi che la Vista venga mostrata anche quando l'Utente non abbia ancora fatto nulla nella app) e, dentro questa Vista principale, richiamiamo le Viste sopra elencate:

crea la Vista "Cruscotto"vai in Struttura - Viste - Aggiungi nuova vista;  scegli il nome della Vista ("Cruscotto");  in Mostra scegli Utente; scegli di creare una Pagina e di mostrare il risultato come Elenco non formattato di campi.  
filtra la Vista sull'Utente correnteNella sezione Criteri del filtro aggiungi Corrente - Utente- Filtra la vista con l'utente attualmente autenticato, come operatore seleziona è uguale a e come è l'utente autenticato seleziona si
definisci il percorso con cui richiamare il CruscottoNella sezione Impostazione pagina come Percorso digita "/cruscotto"
mostra le informazioni

per ogni Vista sopra elencata:

  •  nella sezione Campi aggiungi Globale - Embed a view as a field. This can cause slow performance, so enable some caching
  • per un difetto attualmente presente in Drupal, conferma il Campo senza configurarlo e poi riaprilo per configurarlo
  • In Visualizza seleziona la Vista secondaria che vuoi richiamare (es "Miei Richieste aperte")
  • In Visualizzazione seleziona se necessario la specifica Visualizzazione nella Vista secondaria
  • In Filtri contestuali digita se necessario i valori da passare ai Filtri contestuali della Vista secondaria (nel nostro esempio, non ci sono). Al posto di valori fissi puoi usare i Token messi a disposizione dalla Vista principale, elencati sotto Schemi di sostituzione