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


9

Ich kann eine Ansicht mit laden $view = Views::getView('my_view_id');, 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 Titels der Anzeige, der beim Drucken der Ansicht verwendet werden kann, da es dafür eine Methode gibt ( getTitle()).

Antworten:


16

Nachdem ich die Dokumente gelesen hatte ( 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'];

NB1: Ich verwende die Renderfunktion für ein TranslatableMarkup- Objekt. Dies gibt die Funktion pluginTitle zurück. Es könnte möglich sein, dort andere Funktionen zu verwenden, wie z. B. getUntranslatedString
NB2: 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. NB3: 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:

Geben Sie hier die Bildbeschreibung ein

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

Geben Sie hier die Bildbeschreibung ein

Prost!


Verdammt, ich habe die letzte Zeile verpasst ... danke dafür. Ich erhalte derzeit den mit Anmerkungen versehenen Titel für mein benutzerdefiniertes Anzeige-Plugin. Daher fehlen möglicherweise einige Einstellungen in meinem Anzeige-Plugin.
Webdrips

Sie da. Also, was bekommst du genau? Was meinst du mit dem kommentierten Titel? Von der Funktion pluginTitle habe ich ein TranslatableMarkup-Objekt erhalten. Erhalten Sie dort noch etwas?
Stefanos Petrakis

Ich habe ein Plugin zur Anzeige benutzerdefinierter Ansichten, wie hier beschrieben: api.drupal.org/api/drupal/… . Es ist mit @ViewsDisplay versehen, das einen Titel enthält. Diesen Titel bekomme ich mit der letzten Zeile zurück.
Webdrips

Ihre eigene Implementierung denke ich. Haben Sie dann die Funktion pluginTitle implementiert / überschrieben?
Stefanos Petrakis

Richtig, es ist eine benutzerdefinierte Implementierung, aber nein, ich habe pluginTitle ()
Webdrips

1

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();
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.