Cosa sono i comandi
Una app costruita con Drupal si presente come un insieme di pagine, che mostrano informazioni e comandi. Un comando è semplicemente un testo che, cliccato dall'Utente, richiama un link. Il link può essere l'indirizzo di visualizzazione, creazione, modifica o eliminazione di una Entità, di esecuzione di una Vista o di una procedura. In base al particolare tema grafico utilizzato, il comando può presentarsi come un semplice link o come un pulsante. In questa Guida vediamo come aggiungere comandi nella pagina di una Entità o all'interno di una Vista.
| APPROFONDIMENTO SUI LINK: un comando può essere aggiunto in un qualunque Campo testuale di Drupal scrivendo il codice HTML <a href="LINK">TESTO</a>, dove LINK è il link che viene richiamato quando si clicca il comando e TESTO è il testo che viene presentato all'Utente. Poiché in MieApp cerchiamo di costruire la app senza scrivere codice, utilizzeremo Campi speciali che ci evitano di scrivere direttamente il codice HTML. |
APPROFONDIMENTO SUI PULSANTI: di default, un comando viene mostrato come un semplice link, ad esempio Per mostrarlo come un pulsante, ci serve conoscere il nome della "classe" che trasforma i link in pulsanti nel particolare tema grafico che stiamo usando. La "classe" è un pezzo di codice scritto nel linguaggio CSS ma, per gli scopi di MieApp, non ci serve conoscere quel linguaggio, ma solo sapere il nome della classe che genera il pulsante. Per scoprirlo puoi provare così:
Ed ecco come viene mostrato il link: Tuoi Attrezzi |
Aggiungere comandi nella pagina di una Entità
Nella pagina che mostra una Entità, Drupal mostra nativamente i comandi "Modifica" e "Elimina" agli Utenti che hanno i Permessi per queste operazioni. Per aggiungere ulteriori comandi utili alla nostra app possiamo utilizzare le Viste EVA che, come abbiamo visto, consentono appunto di mostrare informazioni aggiuntive nella pagina dell'Entità.
Come esempio, vediamo come aggiungere il comando "Chiedi in prestito" nella pagina di un Attrezzo nella app "Vicinato". Il comando deve essere mostrato ai Partecipanti diversi dal Proprietario dell'Attrezzo. Allo scopo creiamo una Vista EVA, richiamata nella pagina delle Entità di tipo "Attrezzo", che mostra il comando solo se l'Utente corrente è diverso dal Proprietario dell'Attrezzo.
| crea la Vista | In Struttura - Viste crea la Vista "Comando Chiedi in Prestito". in Mostra scegli contenuto di tipo "Attrezzo". Attiva la creazione di una Pagina, mostra il risultato come Elenco non formattato di Campi In Elementi da visualizzare scegli 1, perché elenchiamo solo l'Attrezzo selezionato dal Filtro contestuale. Disattiva il paginatore. Salva. |
| ricevi come Filtro contestuale l'identificativo dell'Attrezzo | Nella sezione Filtri contestuali aggiungi ID - Contenuto. Come abbiamo visto, l'identificativo viene memorizzato nel Token {{ raw_arguments.nid }} per poter essere usato nel resto della Vista |
| identifica il Proprietario dell'Attrezzo, grazie alla relazione Attrezzo → Autore | Nella sezione Relazioni aggiungi Utente - Contenuto e rinomina "Proprietario" |
| non mostrare la Vista al Proprietario | Nella sezione Criteri del filtro aggiungi Utente - Corrente con Relazione "Proprietario", come operatore seleziona è uguale a e come è l'utente autenticato seleziona no |
| mostra il comando | nella sezione Campi aggiungi il Campo Globale - Testo personalizzato. In Testo digita "Chiedi in prestito". In Risultati di riscrittura attiva Mostra questo campo come un collegamento personalizzato. In Percorso del link digita il link che richiama la pagina di creazione di una Richiesta precaricando nel suo Campo "Attrezzo" l'identificativo dell'Attrezzo: "/node/add/richiesta?attrezzo={{ raw_arguments.nid }}" |
Aggiungere comandi in una Vista
Nella costruzione di una app risulta spesso utile aggiungere comandi dentro una Vista che elenca Entità. Il comando può essere aggiunto:
- sopra o sotto l'elenco delle Entità mostrato in una Vista, se il comando non si riferisce ad una specifica Entità, oppure
- a fianco delle singole Entità elencate nella Vista, se il comando si riferisce ad una Entità
Vediamo esempi concreti e come realizzarli per entrambi i casi.
COMANDI SOPRA O SOTTO L'ELENCO DELLE ENTITA'
Un comando collocato sopra o sotto l'elenco delle Entità mostrato da una Vista è tipicamente utilizzato per aggiungere una nuova Entità all'elenco o per passare ad un altra pagina della app. Ad esempio, vediamo come aggiungere il comando "Aggiungi Attrezzo" alla Vista "Tuoi Attrezzi", che elenca gli Attrezzi di proprietà dell'Utente corrente nella app "Vicinato".
Per aggiungere alla Vista un comando senza scrivere codice HTML, suggerisco di installare ed attivare il modulo aggiuntivo Views Linkarea, che mette a disposizione un nuovo Campo speciale Globale - Link - Provide an internal or external link, che può essere aggiunto nella sezione Intestazione per mostrare un comando sopra l'elenco delle Entità (oppure nella sezione Piè di pagina per mostrarlo sotto l'elenco).
Per aggiungere alla Vista "Tuoi Attrezzi" il comando "Aggiungi Attrezzo":
| aggiungi il comando sopra l'elenco | nella sezione Intestazione della Vista "Tuoi Attrezzi" aggiungi il Campo Globale - Link |
| mostra il comando anche se non ci sono ancora Attrezzi | nella configurazione del Campo attiva l'opzione Visualizza anche se la vista non da risultati |
| scegli il testo con cui il comando si mostra | in Testo del collegamento digita "Aggiungi Attrezzo" |
| definisci cosa esegue il comando | in Percorso del link digita il link che richiama la pagina di creazione di un Attrezzo "/node/add/attrezzo" |
COMANDI SULLA SINGOLA ENTITA' ELENCATA
Per aggiungere su ogni singola Entità elencata nella Vista un comando che agisce su quella Entità, puoi aggiungere nella sezione Campi un Campo Globale - Testo personalizzato - Fornisce testo o link personalizzato e configurarlo perché richiami un'altra Vista o una procedura, passandole l'identificativo dell'Entità. Ad esempio, se volessimo mostrare a fianco degli Attrezzi elencati nella Vista "Tuoi attrezzi" della app "Vicinato" un comando "Richieste aperte" che, cliccato, elenca le Richieste aperte sull'Attrezzo:
| trova l'identificativo dell'Attrezzo e nascondilo | nella sezione Campi della Vista aggiungi ID - Contenuto e attiva Escludi dalla visualizzazione |
| aggiungi il Campo che conterrà il comando | nella sezione Campi aggiungi Globale - Testo personalizzato |
| definisci come si presenta il comando all'utente | come Testo del Campo digita "Richieste aperte", in Risultati di riscrittura attiva Mostra questo campo come un collegamento personalizzato. |
| definisci cosa succede quando l'utente clicca il comando | come Percorso del link digita l'indirizzo della Vista che elenca le Richieste aperte sull'Attrezzo (es. "/richieste-aperte-attrezzo") passandole l'identificativo dell'Attrezzo stesso, che è contenuto nel Token {{ nid }} corrispondente al Campo nascosto e che trovi elencato sotto Replacement patterns, es. "/richieste-aperte/{{ nid }}". |