Réponses:
Utiliser le gestionnaire de thèmes est le moyen approprié pour Drupal 8 d'obtenir des informations sur votre thème.
\Drupal::service('theme.manager')->getActiveTheme()
Une règle générale dans drupal 8 est de rechercher le service manager (/ handler).
** Remarque: comme l'a souligné Neograph734 , \Drupal::service('theme.manager')->getActiveTheme()
retourne l' objet de thème actif . Si vous voulez obtenir le nom de la machine du thème, utilisez\Drupal::service('theme.manager')->getActiveTheme()->getName()
Cela le fera:
$config = \Drupal::config('system.theme');
print $config->get('default');
Vous pouvez toujours utiliser drush pour explorer vos configurations disponibles:
drush config-list
et
drush config-list system
m'a donné une liste:
...
system.rss
system.site
system.theme.global
system.theme
...
puis je pourrais vérifier avec les éléments suivants:
drush cget system.theme.global
et
drush cget system.theme
pour enfin découvrir qu'il détient une default
propriété qui était ce que vous demandiez.
getActiveTheme()
fonction finira par retourner exactement la même: $this->configFactory->get('system.theme')->get('default')
administration theme
inclus Utilisez:
$activeThemeName = \Drupal::service('theme.manager')->getActiveTheme();
theme used in front
pas
admistartion theme
utiliser le thème sélectionné par défaut :
$defaultThemeName = \Drupal::config('system.theme')->get('default');
J'ai trouvé via ci-dessous dans Drupal 8
$theme = \Drupal::theme()->getActiveTheme();
getName()
. Donc, pour obtenir le nom du thème, on utiliserait\Drupal::service('theme.manager')->getActiveTheme()->getName();