Відповіді:
Використання менеджера тем - це правильний Drupal 8 спосіб отримання інформації про вашу тему.
\Drupal::service('theme.manager')->getActiveTheme()
Загальним правилом для drupal 8 є пошук послуги менеджера (/ обробника).
** Примітка: як зазначав Neograph734 , \Drupal::service('theme.manager')->getActiveTheme()
поверне активний об’єкт теми . Якщо ви хочете отримати ім’я машини-теми, тоді використовуйте\Drupal::service('theme.manager')->getActiveTheme()->getName()
Це зробить це:
$config = \Drupal::config('system.theme');
print $config->get('default');
Ви завжди можете використовувати "drush" для вивчення доступних конфігурацій:
drush config-list
і
drush config-list system
дав мені список:
...
system.rss
system.site
system.theme.global
system.theme
...
і тоді я міг би перевірити наступне:
drush cget system.theme.global
і
drush cget system.theme
щоб нарешті з'ясувати, що він має default
власність, яке було те, про що ви просили.
getActiveTheme()
функція в кінцевому підсумку повернеться точно так само: $this->configFactory->get('system.theme')->get('default')
administration theme
використовуйте:
$activeThemeName = \Drupal::service('theme.manager')->getActiveTheme();
theme used in front
не
admistartion theme
використовується
$defaultThemeName = \Drupal::config('system.theme')->get('default');
getName()
. Отож, щоб отримати назву теми, яку можна використати\Drupal::service('theme.manager')->getActiveTheme()->getName();