ビューIDとディスプレイIDから表示名を取得するにはどうすればよいですか?


10

でビューをロードできますが、$view = Views::getView('my_view_id');そのオブジェクトを使用してdisplay_titleをロードしたり、表示名を含む情報を含む配列を言ったりするにはどうすればよいですか?

注:これには、ビューの印刷時に使用される可能性のあるディスプレイのタイトルのロードと混同しないでくださいgetTitle()。そのためのメソッド()があるためです。

回答:


17

ドキュメントを読んだ後(https://api.drupal.org/api/drupal/core!modules!views!src!ViewExecutable.php/class/ViewExecutable/8)、私は次のことを試しました(これはうまくいきました):

$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'];

注1:TranslatableMarkupオブジェクトでrender関数を使用しています。これはpluginTitle関数が返すものです。そこでは、例えばgetUntranslatedString
NB2のような他の関数を使用することが可能かもしれません:OPを誤解しました。:-)要求されたディスプレイのタイトルではなく、ディスプレイプラグインのタイトルを返すコードの不完全な部分をコメント化しました。NB3:OPを誤解しました。再び!:-)要求されたディスプレイの名前ではなく、ディスプレイのタイトルを返すコードの不完全な部分をコメント化しました。私の弁護のために、そのプロパティには「表示名」およびその名前「display_title」というラベルが付けられています(OPで言及したとおり)。

ビューの例のスクリーンショット:

ここに画像の説明を入力してください

そして、表示のタイトルを(出力とともに)取得するテストスクリプト:

ここに画像の説明を入力してください

乾杯!


くそー私は最後の行を逃していた...そのおかげで。現在、カスタムディスプレイプラグインの注釈付きタイトルを取得しているので、ディスプレイプラグインの設定が不足している可能性があります。
Webdrips

ちょっと、そこ。それで、あなたは正確に何を手に入れますか?注釈付きタイトルはどういう意味ですか?pluginTitle関数から、TranslatableMarkupオブジェクトを取得しました。他に何か取得していますか?
Stefanos Petrakis

ここに記載されているカスタムビュー表示プラグインがあります:api.drupal.org/api/drupal/…。タイトルを含む@ViewsDisplayで注釈が付けられています。そのタイトルは、私が最後の行で取り戻すものです。
2016

私が考慮しているあなた自身の実装。次に、pluginTitle関数を実装/オーバーライドしましたか?
Stefanos Petrakis

カスタム実装ですが、私はpluginTitle()を実装/オーバーライドしていません
Webdrips

1

次のコードはctools_viewsモジュールに依存しています。

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

表示タイトルを取得するには、次のコードのみが必要です。

$view = \Drupal\views\Views::getView('your_view_id');
$view->setDisplay('your_display_id');
$displayName = $view->getTitle();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.