Respostas:
Usar o gerenciador de temas é a maneira correta do Drupal 8 de obter informações sobre o seu tema.
\Drupal::service('theme.manager')->getActiveTheme()
Uma regra geral no drupal 8 é procurar o serviço de gerente (/ manipulador).
** Nota: como Neograph734 apontou, \Drupal::service('theme.manager')->getActiveTheme()
retornará o objeto de tema ativo . Se você deseja obter o tema nome da máquina, use\Drupal::service('theme.manager')->getActiveTheme()->getName()
Isso fará isso:
$config = \Drupal::config('system.theme');
print $config->get('default');
Você sempre pode usar drush para explorar suas configurações disponíveis:
drush config-list
e
drush config-list system
me deu uma lista:
...
system.rss
system.site
system.theme.global
system.theme
...
e depois pude verificar com o seguinte:
drush cget system.theme.global
e
drush cget system.theme
para finalmente descobrir que ele possui uma default
propriedade que foi o que você pediu.
getActiveTheme()
função irá acabar voltando exatamente o mesmo: $this->configFactory->get('system.theme')->get('default')
administration theme
incluir o nome do tema ativo real, use:
$activeThemeName = \Drupal::service('theme.manager')->getActiveTheme();
theme used in front
não seja
admistartion theme
Use:
$defaultThemeName = \Drupal::config('system.theme')->get('default');
Encontrei via Drupal 8 abaixo
$theme = \Drupal::theme()->getActiveTheme();
getName()
. Assim, para obter o nome do tema pode-se usar\Drupal::service('theme.manager')->getActiveTheme()->getName();