Saya ingin menjalankan tampilan (memberikan argumen) secara terprogram dan mendapatkan hasil mentah, tanpa merendernya. Apa itu mungkin?
Ketika saya menggunakannya, $view->preview('default', $args);
hasilnya dikonversi ke HTML. Saya tahu saya dapat menggunakan $view->result
untuk mengulangi hasil mentah, tetapi kebiasaan yang diberikan yang saya gunakan untuk beberapa bidang adalah buggy dan memberi saya WSOD (Saya tidak memiliki minat atau kemampuan untuk memperbaiki penyaji, ini adalah kasus tepi :))
Saya menggunakan Tampilan 3 dengan Drupal 7
Jawaban:
Sudah ada fungsi yang melakukan apa yang Anda inginkan:
Baca lebih lanjut di halamannya di api.drupal.org:
https://api.drupal.org/api/views/views.module/function/views_get_view_result/7
sumber
$ view-> preview () umumnya digunakan untuk hanya melihat tampilan sehingga dengan kata lain itu akan merendernya melalui format yang ditentukan.
$ view-> execute_display () juga mengembalikan tampilan dalam format yang relevan yang ditentukan dalam tampilan.
Saya pikir Anda mungkin harus menjalankan eksekusi query langsung yaitu db_query ()
sumber
Anda harus mendapatkan beberapa kesuksesan jika Anda mematikan
view::preview()
kode Anda sendiri, tetapi mengubahnya sehingga, alih-alih menelepon->display_handler->preview()
, itu->execute()
malah memanggil :Ini harus bekerja karena, untuk sebagian besar penangan tampilan, panggilan ke
...->display_handler->preview()
sebenarnya hanya pembungkus panggilan kembali keview::render()
. Yang itu sendiri dimulai dengan menelepon$this->execute(...)
.sumber