Antworten:
Die Verwendung des Themenmanagers ist die richtige Drupal 8-Methode, um Informationen zu Ihrem Thema abzurufen.
\Drupal::service('theme.manager')->getActiveTheme()
Eine allgemeine Regel in Drupal 8 ist die Suche nach dem Manager (/ Handler) -Dienst.
** Hinweis: Wie Neograph734 hervorhob , \Drupal::service('theme.manager')->getActiveTheme()
wird das aktive Designobjekt zurückgegeben . Wenn Sie den Maschinennamen des Themas erhalten möchten, verwenden Sie\Drupal::service('theme.manager')->getActiveTheme()->getName()
Dies wird es tun:
$config = \Drupal::config('system.theme');
print $config->get('default');
Sie können jederzeit Drush verwenden, um Ihre verfügbaren Konfigurationen zu erkunden:
drush config-list
und
drush config-list system
gab mir eine Liste:
...
system.rss
system.site
system.theme.global
system.theme
...
und dann könnte ich mit folgendem prüfen:
drush cget system.theme.global
und
drush cget system.theme
um endlich herauszufinden, dass es eine default
Immobilie enthält, nach der Sie gefragt haben.
getActiveTheme()
Funktion am Ende genau das gleiche zurückgeben: $this->configFactory->get('system.theme')->get('default')
administration theme
Sie:
$activeThemeName = \Drupal::service('theme.manager')->getActiveTheme();
theme used in front
nicht
admistartion theme
verwendet wird:
$defaultThemeName = \Drupal::config('system.theme')->get('default');
Ich fand über unten in Drupal 8
$theme = \Drupal::theme()->getActiveTheme();
getName()
. Um den Namen des Themas zu erhalten, würde man verwenden\Drupal::service('theme.manager')->getActiveTheme()->getName();