View in base a node-reference

6 contenuti / 0 new
Ultimo contenuto
View in base a node-reference

Salve, avrei bisogno di un aiuto con una view.
Ho un sito in cui ho un contenuto chiamato "evento". Questo contenuto ha un campo cck node-reference che lo collega a un altro contenuto chiamato "percorsi".
Ora, io ho bisogno di creare un blocco, con una view che, quando sto guardando un nodo "evento", mi dia come risultato "altri eventi che sono collegati allo stesso percorso".
Non riesco a farlo..

Grazie,
Sergej

prova questo:
tipo vista: nodo
campi: vedi tu
filtri: tipo di nodo = evento
argomenti: contenuto: campo nodereference percorso
nell'argomento scegli "provide default argument" e "PHP code"
nel campo di testo inserisci:

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
 
$node = node_load(arg(1));
  return
$node->field_TUOCAMPONODEREF[0]['nid'];
} else {
  return
FALSE;
}
?>

ricorda di rimuovere
<?php
 
?>

DIMENTICAVO: per fare in modo che l'evento che stai guardando non compaia nella lista devi creare un secondo argomento Nodo:nid, selezionare "provide default argument" e "node id from URL", ed escludere l'argomento.

inoltre puoi limitare la vista ai soli contenuti di tipo "evento" attraverso la validazione del PRIMO argomento

Grazie bohz.
Allora ho provato a fare come dici, però non pare funzionare.
La pagina è qui: http://drupal.ildeposito.org/archivio/storia-cantata/eventi/battaglia-va...
Sulla destra c'è la view che ho fatto seguendo le tue istruzioni, però come vedi appaiono tutti gli eventi, non solo quelli che non fanno parte del percorso indicato nella pagina (in particolare è l'"Evento 2" che non fa parte di quel percorso).

Ho inserito questo:

if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  return $node->field_percorso[0]['nid'];
} else {
  return FALSE;
}

Ovviamente "field_percorso" è il nome del campo cck node-reference.

Grazie,
Sergej

a me funziona.
l'argomento è del tipo
contenuto:field_percorso?

Sì, si chiama così

non saprei.
prova a levare il secondo argomento.
la query di views dovrebbe essere del tipo

SELECT node.title AS node_title
FROM node node
LEFT JOIN content_field_percorso node_data_field_percorso ON node.vid = node_data_field_percorso.vid
WHERE (node.type in ('evento')) AND (node_data_field_percorso.field_percorso_nid = 12)

dove 12 = nid del nodo percorso