Bagaimana cara mengimpor blok secara terprogram ke tampilan yang ada?

Aug 17 2020

Saya perlu mengimpor blok secara terprogram ke tampilan yang ada dengan pengaturannya .

Saya tahu cara mengekspor seluruh tampilan dan mengimpornya secara terprogram. Tapi saya tidak ingin mengekspor seluruh tampilan dan kemudian mengimpor seluruh tampilan. Dalam pandangan saya ada 25 blok, jadi ini memberi saya 4000 baris kode untuk diimpor. Saya hanya dapat menyalin kode ekspor dari blok baru saya. Tetapi bagaimana cara mengimpor hanya bagian kode ini ke tampilan yang ada ? Apakah itu mungkin? Saya tidak dapat menemukan solusi apa pun.

Jawaban

1 ShawnConn Aug 18 2020 at 04:42

"Blok" yang ditunjukkan yang Anda tunjukkan di UI, secara internal disebut "tampilan". Tampilan disimpan di dalam objek tampilan di displayproperti (misalnya $view->display).

Jika Anda melihat kode ekspor tampilan, Anda akan melihat pola blok yang diekspor (mis /* Display: Block 1 */. /* Display: Block 2 */, Dll.) Yang dirender oleh views::export()metode.

Untuk setiap blok (yaitu tampilan) Anda akan melihat $handler = $view->new_display(...)diikuti oleh banyak $handler->display...baris yang menambahkan bidang / filter yang relevan untuk tampilan itu.

Untuk mengimpor satu tampilan secara terprogram, Anda akan melakukan sesuatu seperti berikut:

$view = views_get_view('my_existing_view'); // @TODO: Add my new display handler code $view->save();