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?


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.


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();

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.


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 ....


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.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.