domanda su views e cck per esperti

10 contenuti / 0 new
Ultimo contenuto
domanda su views e cck per esperti

spero possiate aiutarmi perchè la domanda è difficile... almeno per me, spero non per voi!

ho creato una views e tramite gli arguments la filtro tramite "filtra da id nodo da url".
questa views la visualizza perfettamente nel full node, ma come faccio a visualizzarla anche quando il nodo è in modalità non full node?

up

vuoi visualizzare una views che filtra i campi in base al nodo nella modalità teaser se ho capito bene.

Che io sappia non puoi farlo con views e basta.

aspettiamo qualcheduno più esperto di noi.

Ciao,
Se ho capito bene vorresti visualizzare una vista all'interno di un nodo in anteprjma, passando il nid come argomento, giusto?
Potresti farlo, ma devi un pò modificare il template che stai usando... Sostanzialmente, richiami la vista che hai realizzato via php, passi il nid come argomento (via php è $node->nid) e stampi la vista. Prova a vedere queste risorse:
http://drupalcontrib.org/api/function/views_get_view/6
http://www.pixelclever.com/how-programmatically-insert-a-view-drupal-6

grazie gioppy della dritta:

io uso questo per visualizzare la views:

<?php
 
<?php
$view
= views_get_view('sample_view');
print
views_build_view('embed', $view);
?>
?>

quindi per fare quello che cerchiamo io e mellissa dovrebbe venire:

<?php
$view_args
= nid ;
$view = views_get_view('sample_view');
print
views_build_view('embed', $view, $view_args);
?>

ovviamente ho gia provato ma senza risultato sperato, mi da una bella pagina bianca.

asdomar wrote:
grazie gioppy della dritta:

io uso questo per visualizzare la views:

<?php
 
<?php
$view
= views_get_view('sample_view');
print
views_build_view('embed', $view);
?>
?>

quindi per fare quello che cerchiamo io e mellissa dovrebbe venire:

<?php
$view_args
= nid ;
$view = views_get_view('sample_view');
print
views_build_view('embed', $view, $view_args);
?>

ovviamente ho gia provato ma senza risultato sperato, mi da una bella pagina bianca.


Attenzione a due cose:
la prima è che su Drupal 6 la funzione più corretta per inserire una vista dovrebbe essere execute_display() e non views_build_view (potrei anche sbagliarmi!). Inoltre, gli argomenti vanno sempre passati come array, e non come oggetti singoli. Quindi, il tuo codice diventa:

<?php
 $view_args
= array($node->nid) ;
$view = views_get_view('sample_view');
print
$view->execute_display('embed', $view_args);
?>

;)

anche cosi mi da una pagina bianca, strano eppure il codice è quello li :)

forse sbaglio io, ma ricordo che per si usava "views_build_view" per visualizzare una views, possibile che era per drupal 5?

Ciao,
non saprei con sicurezza, io ho sempre usato il codice che ti ho scritto due post fa.
Prova a controllare che la visualizzazione si giusta:

<?php
 
print $view->execute_display('DISPLAY', $args);
?>

dove per DISPLAY si intende il tipo di visualizzazione, quindi page_1, block_1, defautl, ecc...

Tu usi embed... a che modulo fa riferimento?

anche a me non va quel codice... io ho usato embed perchè cosi ho letto prima.
volendo visualizzare una views che dovrei usare come codice?

melissa wrote:
anche a me non va quel codice... io ho usato embed perchè cosi ho letto prima.
volendo visualizzare una views che dovrei usare come codice?

Dipende dal tipo di visualizzazione che vuoi richiamare. Il tipo di visualizzazione corrisponde al tipo che scegli nella creazione della vista: hai la visualizzazione default, block, page, attachment, ecc. (per pagine e blocchi si usa page_1, page_2, block_1, block_2 a seconda di quanti ne hai fatto).

Fai una prova veloce: invece di inserire embed prova con default. Con deafult dovrebbe funzionare (carica la vista di base, quindi, a meno che la vista non esiste, ti dovrebbe caricare qualcosa).
;)