Bagaimana cara menyematkan tampilan di dalam simpul?

7

Dalam Drupal 6 tampilan dapat tertanam ke dalam simpul sebagai berikut:

$viewName = 'LatestNews';
print views_embed_view($viewName);

Ini tidak berfungsi untuk drupal 7. Apa fungsi untuk menyematkan tampilan di drupal 7?

Natkeeran
sumber
Menurut tautan dokumentasi modul tampilan ini, fungsi ini sama-sama tersedia pada Drupal 6 dan 7. Coba dengan param kedua sebagai $ display_id dari tampilan Anda.
Shoaib Nawaz

Jawaban:

5

The EVA modul juga dapat melampirkan pandangan untuk node.

kamu
sumber
5

Untuk menampilkan tampilan dalam templat simpul, Anda menggunakan kode berikut.

// 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();
Cyclonecode
sumber
1
Anda harus selalu memanggil $ view-> pre_execute (); sebelum $ view-> execute ();
Teegan
@ Mulai - Tidak tahu itu, hanya menggunakan mengeksekusi tampaknya berfungsi, tapi saya akan melihat menggunakan pre_execute()sebelum execute().
Cyclonecode
4

Kenapa tidak:

print views_embed_view($view_machine_name, $view_display_name, $arg1, $arg2);

di mana $ arg, $ arg2, dll adalah opsional.

Atau gunakan modul Viewfield untuk menyematkan tampilan sebagai bidang.

Artur
sumber
LIHAT !!!! OH TUHAN!!! Saya telah mencari berhari-hari untuk fungsi ini, mencoba banyak modul, ini menyelamatkan saya! : D terima kasih!
DrCord
@DrCord, juga lihat modul Eva dan views_field_view, semuanya hampir sama.
timofey.com
Saya tidak bisa mendapatkan EVA untuk melakukan apa yang saya inginkan.
DrCord
1

Salah satu solusinya adalah dengan menggunakan Panelizer untuk mengganti konten dari masing-masing node.

Katakanlah misalnya Anda memiliki beberapa halaman yang perlu dilihat.

1) Anda dapat menggunakan tipe konten Halaman atau mungkin membuat tipe konten baru yang secara khusus akan panel.

2) Aktifkan Panelizer untuk jenis konten itu, pastikan untuk mengaturnya ke "Izinkan pilihan tampilan per-rekaman" dengan cara itu Anda dapat mengatur beberapa tampilan panelizer yang akan disesuaikan dengan masing-masing halaman. (setiap tampilan panelizer dapat memiliki satu set pandangan yang dilampirkan)

3) Dari sini Anda cukup membuat tampilan (saya suka menggunakan Panel Konten untuk ini) dan menambahkannya ke tampilan konten Panelizer pilihan.

Ini memungkinkan Anda untuk menggunakan kembali jenis konten tunggal yang tidak benar-benar membutuhkan kumpulan bidangnya sendiri, tetapi mungkin berpotensi digunakan untuk mereferensikan entitas lain (sebagai bidang) atau mereferensikan tampilan.

Lempar dalam modul Paragraf dan Anda memiliki jenis konten Pisau Tentara Swiss. Omong-omong, itu akan membuat nama yang sempurna untuk jenis konten khusus yang digunakan untuk tujuan ini ... Hmm ....

phil
sumber
0

Sebut saja bahwa parameter pertama adalah nama tampilan, nama tampilan kedua dan setelah itu Anda dapat melewati parameter filter kontekstual.

Sehingga "$ node-nid", parameter ketiga tergantung pada Anda melihat ... apa yang diharapkan untuk filter kontekstual pertama - id tidak harus menjadi id node. Tentu saja, Anda tidak terbatas pada satu parameter - lewati sebanyak yang Anda lihat ... atau tidak lulus jika pandangan Anda tidak memiliki filter kontekstual.

MilanG
sumber
0

Modul Drupal 7 dan 8 yang sangat dapat dikonfigurasi adalah views_field_formatter yang memungkinkan Anda untuk menanamkan tampilan sebagai formatter bidang

GiorgosK
sumber