views e node reference

11 contenuti / 0 new
Ultimo contenuto
views e node reference

ciao a tutti,

mi piacerebbe creare una view da poter usare per popolare un campo node reference al momento della creazione di un contenuto.

mettiamo che io abbia i tipi di contenuto Itinerari e Racconti. Entrambi devono venir identificati da un campo tipo: vie ferrate, escursionismo, passeggiate ... Il contenuto di tipo racconto può far riferimento ad un itinerario. Vorrei che fosse possibile creare una view, utilizzata dal campo di tipo node reference che mi popoli la select con i titoli di tutti i nodi del tipo prescelto.

Ecco uno schema per chiarificare:

ho i seguenti itinerari: Via Roma (tipo: passeggiata), Un nome a caso (tipo: escursionismo), Un altro nome (tipo: passeggiata)

vorrei poter creare un racconto di tipo passeggiata e trovarmi nella select offerta da node reference i titoli Via Roma e Un altro nome... non gli altri.

è possibile?

grazie mille,

joey

Ti sei praticamente risposto da solo!
non ti resta che creare una view che lista tutti i nodi di tipo passeggiata (+una per ciascuno degli altri itinerari);
nelle impostazioni del campo noderef all'interno del content type "racconto", nella sezione (mi sembra) "advanced - views that can be referenced" inserisci la vista appena creata.

Grazie mille per la risposta... mi renco conto di non essere stato chiaro:

il fatto è che io vorrei fare in modo che la view venga scelta automaticamente in base al tipo di racconto inserito:
quando carico un racconto di tipo passeggiata, il campo dovrebbe essere popolato con tutti gli itinerari di tipo passeggiata, quando carico un racconto di tipo escursionismo, nel campo dovrei trovare solo gli itinerari escursionistici... e così via!

questo perché non vorrei dover creare diversi tipi di contenuto per ogni disciplina... mi sembra uno spreco inutile...

forse dovrei usare una view che accetti un argument? scusami, sono un newbie totale... :)

Se nn ho capito male,a te basta usare la tassonomia e filtrare la view in base appunto alla tassonomia...

non era cosi semplice vero ?.. :)

eh no, per niente... le tassonomie non mi sono mai piaciute! :D

ci tento, nel caso avessi bisogno, so a chi affidarmi! :D

grazie mille! :)

dunque dunque... facendo riferimento ad un altro post, ho provato ad usare questo codice php (inserito in arguments, Taxonomy:Term, Provide default argument, PHP code:

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

che, se non sbaglio, carica il nodo e ritorna il termine della tassonomia a lui associato (devo inserire anche il node id come argomento?). Però anche solo quando faccio la preview della view, non vedo nulla. La view, infatti, crea questa query:
SELECT node.nid AS nid,
   node.title AS node_title
FROM node node
LEFT JOIN term_node term_node ON node.vid = term_node.vid
INNER JOIN term_data term_data ON term_node.tid = term_data.tid
WHERE (node.type in ('itinerario')) AND (term_data.name = 'passeggiata')

che restituisce un insieme vuoto, perché la mia tabella term_node è vuota! cosa sbaglio?

grazie mille, e perdonate la mia ignoranza! :)

non so se ho compreso bene quello che vuoi ottenere.
ad ogni modo, sembra che tu voglia che, al momento della creazione di un nodo "racconto", all'atto della selezione del termine = tipo di itinerario, il campo nodereference si popoli con tutti i titoli dei nodi "itinerario" che hanno quel dato termine.
Se è così, secondo me non è possibile per il semplice motivo che il nodo in creazione non è ancora salvato nel db e quindi la view non sa quale termine gli è stato assegnato (non ha nemmeno il nid).
io proverei con computed_field

dove metti il codice php c'è scritto di non inserire i tag

<?php
 
?>
.
te lo dico perchè io avevo fatto quell'errore e non funzionava.

 @[email protected]. ah ecco... anche a me sembrava difficile per quel motivo, ma pensavo che la possibilità di usare una view per popolare un campo nodereference servisse proprio a quello! :)

mhm, ora provo il computed field, vediamo...

grazie!

@Jamiro sì sì, il codice che ho inserito non ha i tag php...

grazie mille! :)

infatti serve a quello.
però, nel tuo caso, dovresti utilizzare il nid (e il termine associato) come argomento della view, e queste info ancora non sono state aggiunte al db quando le vuoi utilizzare.
considera anche: http://drupal.org/project/conditional_fields (grossomodo: crei una view per ciascun termine=tipo di percorso, crei un campo noderef per ciascuna e, in base al termine selezionato in taxonomy, dovrebbe comparire solo il campo noderef appropriato)-->nota: solo in teoria! non l'ho mai fatto.

mhm, questa mi piace...

la tento! :)

grazie mille!