logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Views filtri contestuali, relazioni – argomenti e connessioni

15/10/2025, by Ivan

In questa lezione presterò particolare attenzione al lavoro con gli argomenti in Views. Gli argomenti sono le parti dell’URL, ad esempio:

node/15
Il primo argomento sarà node, il secondo 15.
taxonomy/term/10
Il primo argomento taxonomy, il secondo term, il terzo 10.
user/67
Il primo argomento user, il secondo 67

Penso che questi esempi siano chiari e non richiedano ulteriori spiegazioni.

Gli argomenti possono essere ottenuti utilizzando la funzione arg()

<?php
print arg(0) . '<br />';
print arg(1);
?>

Se l’URL è stato node/15, verranno visualizzati:

node
15

La numerazione degli argomenti nella funzione arg parte da 0. Ora vediamo quali soluzioni pronte offre il modulo Views.

Visualizzare i nodi di un utente

Supponiamo di trovarci sulla pagina user/1 e di voler visualizzare un blocco con i nodi dell’utente con uid = 1. Per farlo, utilizzeremo un argomento preso dall’URL.

Aggiungiamo una nuova vista. Creiamo un blocco e nei campi selezioniamo il titolo del nodo, filtriamo solo i nodi pubblicati e ordiniamo per data di pubblicazione.

 

Titolo
Titolo: user_nodes
Formato
Formato: Unformatted list | Impostazioni
Mostra: Fields | Impostazioni
Campi
Contenuto: Titolo
Criteri di filtro
Contenuto: Pubblicato (Sì)
Criteri di ordinamento
Contenuto: Data di pubblicazione (discendente)
Pager
Usa pager: Visualizza un numero specificato di elementi | 15 elementi
Link “More”: No

Ora clicchiamo su “Aggiungi” nei Contextual filters (argomenti, filtri contestuali). Selezioniamo:
Contenuto: Author uid

Quindi scegliamo:

When the filter value is NOT available
  Provide default value
    User ID from URL
      Provide default value

Views contextual filters

Salviamo la vista. Inseriamo il blocco nella regione desiderata e, ad esempio, accediamo alla pagina user/1: nel blocco creato verranno visualizzati tutti i nodi dell’utente con uid = 1.

Visualizzare nodi correlati

Ora complichiamo un po’ l’esempio. Supponiamo di voler collegare a un nodo più altri nodi. Per farlo si utilizzano i campi node reference. Per utilizzare questi campi di relazione, ci servirà il modulo References e il suo sottomodulo node references.

http://drupal.org/project/references

I campi di relazione in Drupal 7 permettono di collegare a un nodo diversi utenti e nodi contemporaneamente. Ciò è realizzato attraverso i campi di tipo node reference. Poiché in Drupal 7 è possibile aggiungere campi a qualsiasi entità, ora è possibile collegare tra loro qualsiasi tipo di entità.

Nel mio sito ci sono 4 notizie e voglio collegare alla seconda notizia la prima e la terza, supponendo che trattino un argomento simile.

Andiamo nella gestione dei campi del tipo di contenuto “Notizia” e aggiungiamo un campo node reference con funzione di completamento automatico. Chiamo il campo “Notizie simili”. Poi scegliamo quali tipi di contenuto possono essere collegati al nodo e il numero di nodi selezionabili. Ho scelto solo “Notizie”. Successivamente salviamo il campo. Ora modifichiamo la seconda notizia: qui vedremo il campo node reference “Notizie simili”.

Drupal reference field

Naturalmente, le notizie appariranno già come elenco di elementi correlati a questo nodo. Ma il nostro obiettivo è configurare una view.
Creiamo una nuova view, ancora in formato blocco.

Titolo:
similar_news
Formato:
Unformatted list | Impostazioni
Mostra: Fields | Impostazioni
Campi
Contenuto: Titolo
Criteri di filtro
Contenuto: Pubblicato (Sì)
Contenuto: Tipo (= Notizia)
Criteri di ordinamento
Contenuto: Data di pubblicazione (discendente)
Pager
Usa pager: Visualizza un numero specificato di elementi | 5 elementi

Aggiungiamo un argomento (contextual filter) Contenuto: Nid. Ma questa volta selezioniamo:

When the filter value is NOT available
  Provide default value
    Content ID from URL

Inoltre, in Relationships (relazioni, connessioni) aggiungiamo una nuova relazione: Contenuto: Notizie simili (field_similar) (se il vostro campo ha un altro nome, scegliete quello corrispondente). Notate anche che esiste lo stesso campo con l’indicazione “reverse”: questo significa che verrà utilizzata una relazione inversa, cioè, se ci troviamo sulla pagina della Notizia 3, verrà mostrata nel blocco la Notizia 2 (anche se nella Notizia 2 abbiamo selezionato la relazione con Notizia 1 e Notizia 3).

Come risultato verranno selezionati anche questi campi:

Contextual filters
Contenuto: Nid
Relationships
Contenuto: Notizie simili

Ora, nel nostro campo “Contenuto”, dobbiamo impostare la relazione: invece di “Do not use a relationship”, scegliete il nome della nostra relazione.
Campi
(field_similar) Contenuto: Titolo

Salviamo la view e inseriamo il blocco nella regione desiderata.

Ora, nella pagina della Notizia 2, nel blocco separato verranno visualizzate le notizie simili: Notizia 1 e Notizia 3.