Drupal 7: come visualizzare in una vista tutti i campi disponibili di un termine della tassonomia associato al dato nodo
In Drupal 7 i termini della tassonomia si sono evoluti ad entità vere e proprie, o detto in altro modo, hanno ottenuto pari dignità di un qualunque nodo. Questo significa che è possibile arricchire ciascun termine con dei campi aggiuntivi, un po' come si era abituati a fare con i nodi e CCK in Drupal 6. In tal senso quindi è possibile ad esempio aggiungere un'immagine, un link, ecc…, a ciascun termine della tassonomia.
La gestione dei campi viene fatta a livello di vocabolario, quindi tutti i termini del medesimo vocabolario avranno a disposizione i medesimi campi (e questo è tutto sommato piuttosto logico).
Supponiamo ora di aver aggiunto a ciascun termine un'immagine ed un campo di testo con un link, ci si aspetterebbe di poter visualizzare tali campi nei risultati di una vista che elenca dei nodi nei quali compaiono i termini del vocabolario in questione.
Nell'esempio seguente (preso da un sito che sto sviluppando) il vocabolario, chiamato "Settimanali diocesani" è costituito dall'elenco dei settimanali diocesani del triveneto. Ogni termine, oltre ai valori predefiniti (name e description) comprende anche altri due campi aggiuntivi, un url al sito del giornale (in realtà un semplice campo di testo contenente l'url) ed il logo del giornale (un file d'immagine).
Il sito aggrega automaticamente le notizie dai feed RSS dei giornali, utilizzando il modulo feeds (non entro nel dettaglio), e crea dei semplici nodi (Feed News), composti da titolo, descrizione ed il nome del settimanale; quest'ultimo altro non è che il relativo termine della tassonomia (riferimento termine):
Se si va a costruire una vista blocco in modalità visualizzazione campi, per elencare tutte le "Feed News" presenti sul sito, ci si accorge, non senza un certo stupore che non è possibile aggiungere al risultato tutti i campi del termine della tassonomia, ma solo il semplice nome del termine (settimanale):
In effetti nel filtro dei campi, i termini della tassonomia non sono elencati.
I più accorti avranno notato che nella gestione campi del nodo, il termine della tassonomia è elencato come "Riferimento termine" e non come Taxonomy term o l'equivalente di Content Taxonomy Fields di Drupal 6. In effetti qui ci troviamo di fronte ad tipo "Riferimento termine" equivalente a quello che era in Drupal 6 un tipo "Riferimento nodo" (modulo "Node reference"). La nostra vista, così com'è può al massimo visualizzare nell'output il nome del termine della tassonomia, così come capitava in Drupal 6 dove si poteva al massimo visualizzare il titolo del nodo correlato, e come è mostrato nell'immagine sottostante (a meno che… poi vedremo):
Non sembra esserci modo per visualizzare anche gli altri campi associati a quel termine, come il logo del giornale, il link e la descrizione. Come fare? La soluzione è in realtà piuttosto semplice, basta aggiungere alla vista una relazione esattamente con in Drupal 6 si poteva utilizzare una relazione per visualizzare i campi ulteriori del nodo correlato. Aggiungiamo una relazione:
Di tipo Contenuto, Taxonomy terms on node:
Che configuro opportunamente:
Una volta che avrò applicato le modifiche, potrò aggiungere tutti i campi del termine della tassonomia ai campi della mia vista. Nell'elenco dei filtri sarà infatti ora disponibile la voce "Termine della tassonomia":
Ed una volta selezionata, avrò a disposizione tutti i campi del singolo termine per la visualizzazione:
In tal modo la mia vista potrà ora restituire al posto del semplice nome del termine al più linkato al termine stesso, qualcosa di ben più elegante; in questo caso ho inserito il logo del settimanale linkato al relativo sito web (qui manca ancora il logo reale, in sua vece c'è un placeholder):
- 14837 reads