Nodi associati a termini correlati

Guida Drupal per Views Arguments e termini correlati

Una caratteristica particolare del modulo "taxonomy" (usato per gestire le categorie dei contenuti) è quella di poter correlare tra di loro più termini all'interno di un vocabolario (related terms). Grazie al modulo "views" si può creare un blocco che elenchi i nodi associati a termini correlati a quelli del nodo corrente.

Creare un blocco di nodi associati a termini correlati

Creare una vista usando il modulo Views

Per ottenere un blocco con i nodi associati ai termini correlati a quelli del nodo corrente è necessario creare una vista tramite il modulo Views. Si dovrà quindi installare il modulo Drupal Views (ad esempio con il comodissimo Drush) e quindi creare la vista tramite l'apposita interfaccia.

La vista dovrà contenere una visualizzazione (display) di tipo "blocco" e, oltre agli eventuali parametri delle impostazioni di base, ordinamento o filtri, un argomento per caricare solo i nodi che interessano.

Configurare gli argomenti della vista per nodi di termini correlati

Per questa vista serviranno due argomenti: il primo per escludere il nodo che è visualizzato nella pagina corrente, il secondo per caricare i nodi con un termine correlato ad uno dei termini associati al nodo della pagina attiva.

Escludere il nodo corrente:

  1. Aggiungere un argomento di tipo: Node: Nid
  2. Stabile l'argomento predefinito: ID nodo dall'URL
  3. Selezionare l'opzione: Escludi l'argomento

Caricare i nodi correlati tramite termini:

  1. Aggiungere un argomento di tipo: Tassonomia: ID Termine
  2. Stabile l'argomento predefinito: Codice PHP
  3. Selezionare le opzioni: Consente termini multipli per argomento e Riduci duplicati

Il codice PHP dell'argomento è:

<?php
$node = node_load(arg(1));
if($node) {
  foreach($node->taxonomy as $term) {
    foreach (taxonomy_get_related($term->tid) as $related_term) {
      $terms[] = $related_term->tid;
    }
  }
  return implode('+',$terms);
} else {
  return;
}
?>

Questo semplice codice può essere quindi esteso con ulteriori funzionalità. Ad esempio per filtrare solo determinati vocabolari o per includere anche i nodi dello stesso termine di quello visibile.