In Drupal 6 una vista può essere incorporata in un nodo come segue:
$viewName = 'LatestNews';
print views_embed_view($viewName);
Questo non funziona con drupal 7. Qual è la funzione per incorporare le viste in drupal 7?
In Drupal 6 una vista può essere incorporata in un nodo come segue:
$viewName = 'LatestNews';
print views_embed_view($viewName);
Questo non funziona con drupal 7. Qual è la funzione per incorporare le viste in drupal 7?
Risposte:
In Drupal 7 è possibile utilizzare questo codice.
Per una pagina di visualizzazione
print views_embed_view('name_of_view','page_1', $node->nid);
Per un blocco vista
print views_embed_view('faculty_core','block_1', $node->nid);
Per visualizzare una vista in un modello di nodo, utilizzare il seguente codice.
// Load the view.
$view = views_get_view('machine_name_of_view');
// Set the active display.
$view->set_display('your_view_display_name');
// Set any needed argument.
$view->set_arguments(array(arg(0), arg(1)));
// Execute the view.
$view->execute();
// Render the view.
print $view->render();
pre_execute()
prima di usarlo execute()
.
Perchè no:
print views_embed_view($view_machine_name, $view_display_name, $arg1, $arg2);
dove $ arg, $ arg2, ecc. sono opzionali.
Oppure usa il modulo Viewfield per incorporare una vista come campo.
Una soluzione è utilizzare Panelizer per sovrascrivere il contenuto del rispettivo nodo.
Diciamo ad esempio che hai una manciata di pagine singole che necessitano di una vista allegata.
1) È possibile utilizzare il tipo di contenuto Pagina o magari creare un nuovo tipo di contenuto che sarà specificamente strutturato in pannelli.
2) Abilita Panelizer per quel tipo di contenuto, assicurati di impostarlo su "Consenti scelta display per record" in questo modo puoi impostare più display panelizer che saranno personalizzati per ognuno fuori pagina. (ogni display del panelizer può avere il proprio set di visualizzazioni allegato)
3) Da qui semplicemente crei una vista (mi piace usare i riquadri dei contenuti per questo) e aggiungila alla visualizzazione dei contenuti di Panelizer di tua scelta.
Ciò consente di riutilizzare un singolo tipo di contenuto che non ha davvero bisogno del proprio set di campi, ma potrebbe essere potenzialmente utilizzato per fare riferimento ad altre entità (come campo) o per fare riferimento a viste.
Inserisci il modulo Paragrafi e hai un tipo di contenuto Swiss Army Knife. A proposito, sarebbe un nome perfetto per il tipo di contenuto personalizzato utilizzato a questo scopo ... Hmm ....
Diciamo solo che il primo parametro è il nome della vista, il secondo nome visualizzato e dopo puoi passare i parametri del filtro contestuale.
Quindi, "$ node-nid", il terzo parametro dipende dalla tua visualizzazione ... cosa si aspetta dal primo filtro contestuale - id non deve essere id nodo. Ovviamente, non sei limitato a un solo parametro: passa quanti ne hai in vista ... o non passa nessuno se la tua vista non ha filtri contestuali.
Un modulo Drupal 7 e 8 molto configurabile è views_field_formatter che ti consente di incorporare una vista come formattatore di campi