Bagaimana saya bisa mendapatkan nama tampilan dari ID tampilan dan ID tampilan?


10

Saya dapat memuat tampilan $view = Views::getView('my_view_id');, tetapi bagaimana cara menggunakan objek itu untuk memuat display_title atau mengatakan array yang berisi informasi termasuk nama tampilan?

Catatan: Ini tidak harus bingung dengan memuat judul tampilan yang mungkin digunakan saat mencetak tampilan, karena ada metode untuk itu ( getTitle()).

Jawaban:


17

Setelah membaca dokumen tersebut ( https://api.drupal.org/api/drupal/core!modules!views!src!ViewExecutable.php/class/ViewExecutable/8 ), saya mencoba yang berikut (yang berfungsi):

$view = \Drupal\views\Views::getView('your_view_id');
$view->setDisplay('your_display_id');
$displayObj = $view->getDisplay();
//$displayPluginTitle = $displayObj->pluginTitle()->render();
//$displayTitle = $displayObj->getOption('title');
$displayName = $displayObj->display['display_title'];

NB1: Saya menggunakan membuat fungsi pada TranslatableMarkup objek, ini adalah apa fungsi kembali pluginTitle. Mungkin bisa menggunakan fungsi lain di sana, seperti, mis. GetUntranslatedString
NB2: Saya salah mengerti OP. :-) Mengomentari bagian kode yang salah, yang mengembalikan judul plugin display, dan bukan judul display seperti yang diminta. NB3: Saya salah paham tentang OP. LAGI! :-) Mengomentari bagian kode yang salah, yang mengembalikan judul tampilan, dan bukan nama tampilan seperti yang diminta. Untuk membela saya, properti itu diberi label 'Nama tampilan' dan namanya 'display_title' (seperti yang disebutkan dalam OP).

Tangkapan layar dari Tampilan contoh:

masukkan deskripsi gambar di sini

Dan skrip uji yang mendapatkan judul tampilan (dengan output):

masukkan deskripsi gambar di sini

Bersulang!


Sungguh, aku melewatkan baris terakhir ... terima kasih untuk itu. Saat ini saya mendapatkan judul yang dianotasi untuk plugin tampilan khusus saya, jadi mungkin saya kehilangan beberapa pengaturan dalam plugin display saya.
Webdrips

Hai yang disana. Jadi, apa tepatnya yang Anda dapatkan? Apa maksud Anda judul beranotasi? Dari fungsi pluginTitle, saya mendapat objek TransknownMarkup, apakah Anda mendapatkan sesuatu yang lain di sana?
Stefanos Petrakis

Saya memiliki plugin tampilan tampilan kustom seperti yang dijelaskan di sini: api.drupal.org/api/drupal/… . Ini dijelaskan dengan @ViewsDisplay, yang mencakup judul. Judul itulah yang saya dapatkan kembali dengan baris terakhir.
Webdrips

Saya rasa implementasi Anda sendiri. Sudahkah Anda menerapkan / menimpa fungsi pluginTitle?
Stefanos Petrakis

Benar itu implementasi khusus, tapi tidak, saya tidak mengimplementasikan / menimpa pluginTitle ()
Webdrips

1

Kode berikut bergantung pada modul ctools_views.

$view = \Drupal\views\Views::getView('your_view_id');
$view->setDisplay('your_display_id');
$displayObj = $view->getDisplay();
$displayName = $displayObj->display['display_title'];

Untuk mendapatkan judul tampilan hanya membutuhkan kode berikut.

$view = \Drupal\views\Views::getView('your_view_id');
$view->setDisplay('your_display_id');
$displayName = $view->getTitle();
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.