it-swarm.com.de

Wie kann ich einen Anzeigenamen aus der Ansichts-ID und der Anzeige-ID erhalten?

Ich kann eine Ansicht mit $view = Views::getView('my_view_id'); laden, aber wie verwende ich dieses Objekt, um den display_title zu laden oder ein Array mit Informationen einschließlich des Anzeigenamens zu sagen?

Hinweis: Dies ist nicht zu verwechseln mit dem Laden des Anzeigetitels, der beim Drucken der Ansicht verwendet werden kann, da es dafür eine Methode gibt (getTitle()).

9
Webdrips

Nach dem Lesen der Dokumente ( https://api.drupal.org/api/drupal/core!modules!views!src!ViewExecutable.php/class/ViewExecutable/8 ) habe ich Folgendes versucht (was funktioniert hat):

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

N.B.1: Ich verwende die Renderfunktion für ein TranslatableMarkup Objekt. Dies ist, was die PluginTitle-Funktion zurückgibt. Es könnte möglich sein, dort andere Funktionen zu verwenden, wie z. getUntranslatedString
N.B.2: Ich habe das OP falsch verstanden. :-) Kommentierte den fehlerhaften Teil des Codes aus, der den Titel des Anzeige-Plugins und nicht den angeforderten Titel des Bildschirms zurückgibt. N.B.3: Ich habe das OP falsch verstanden. NOCHMAL! :-) Kommentierte den fehlerhaften Teil des Codes aus, der den Titel der Anzeige und nicht den Namen der Anzeige wie gewünscht zurückgibt. Zu meiner Verteidigung trägt diese Eigenschaft die Bezeichnung "Anzeigename" und den Namen "Anzeigename" (wie im OP erwähnt).

Screenshot aus Ansichten Beispiel:

(enter image description here

Und ein Testskript, das den Titel der Anzeige (mit der Ausgabe) erhält:

(enter image description here

Prost!

16

Der folgende Code hängt vom Modul ctools_views ab.

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

Um den Anzeigetitel zu erhalten, ist nur der folgende Code erforderlich.

$view = \Drupal\views\Views::getView('your_view_id');
$view->setDisplay('your_display_id');
$displayName = $view->getTitle();
1
NewZeal