Saya membuat blok tampilan, yang nama mesinnya adalah "berita."
Bagaimana cara menampilkannya menggunakan module_invoke()
dan nama mesin tampilan?
Gunakan views_embed_view()
:
echo views_embed_view('view_machine_name', 'block_1');
Anda dapat mengetahui nama tampilan dengan mengklik tab dan memeriksa namanya di bilah alamat browser Anda: #views-tab-block_1
memberi Anda block_1
.
{{ drupal_view('view_machine_name', 'block_1') }}
Jika Anda ingin meneruskan parameter ke tampilan gunakan:
Sebagai contoh:
atau:
sumber
Jawaban tostinni adalah jawaban yang benar dalam banyak kasus. Namun, jika Anda ingin memasukkan judul View, itu sedikit lebih jelek.
Dari
views_embed_view()
dokumentasi:Sebagai contoh:
Diperbarui : @rojosnow mencatat bahwa dokumen menunjukkan Anda harus mendapatkan pratinjau sebelum menelepon
get_title()
jadi saya telah membalik kedua baris itu.sumber
Ini Berhasil untuk saya:
// dan menyebutnya dalam html seperti ini //
sumber
Catatan, bagi saya blok default (tanpa nama) disebut
block
daripadablock_1
:sumber
Juga membangun jawaban tostinni:
Jika Anda tidak ingin HTML apa pun muncul jika tampilan tidak memiliki hasil. Juga, tambahkan judul, tetapi hanya jika ada hasil.
sumber
Anda dapat merender blok Anda alih-alih merender tampilan dengan kode berikut.
sumber
Dari pengalaman saya sendiri, Anda dapat mengubah jalur ke judul tampilan atau konten dengan fungsi seperti berikut.
Untuk membuat tampilan, gunakan
$view->render()
sebagai ganti$view->get_title()
.Yang pasti, sampai saya memanggilnya dengan benar
$view->execute()
, tidak ada yang berhasil. Saya akan mendapatkan string kosong (mungkin nol) sebagai nilai pengembalian.sumber