Dans Drupal 8, existe-t-il un moyen de comprendre quel thème vous utilisez actuellement dans un module? J'ai besoin d'obtenir le nom par programme dans le code d'un module.
8
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()
getName()
. Donc, pour obtenir le nom du thème, on utiliserait\Drupal::service('theme.manager')->getActiveTheme()->getName();
Cela le fera:
Vous pouvez toujours utiliser drush pour explorer vos configurations disponibles:
et
m'a donné une liste:
puis je pourrais vérifier avec les éléments suivants:
et
pour enfin découvrir qu'il détient une
default
propriété qui était ce que vous demandiez.la source
getActiveTheme()
fonction finira par retourner exactement la même:$this->configFactory->get('system.theme')->get('default')
administration theme
inclus Utilisez:theme used in front
pasadmistartion theme
utiliser le thème sélectionné par défaut :la source
J'ai trouvé via ci-dessous dans Drupal 8
la source