web-dev-qa-db-fra.com

Comment définir le thème par défaut par programme

J'ai essayé de définir un thème comme thème par défaut dans drupal 8 en utilisant le code suivant

> $config = \Drupal::configFactory()->getEditable('system.theme');  
> $config->set('default', 'test_theme')->save();

Lors de l'installation du module, le code ne définit pas le thème comme celui que j'ai entré. Le code est écrit dans hook_install ().

5

Le conseil actuel est de régler cela via config:

\Drupal::configFactory()
  ->getEditable('system.theme')
  ->set('default', $theme)
  ->save();

La méthode précédente utilisant ThemeHandlerInterface::setDefault() est désormais obsolète.

Vous devrez peut-être aussi l'installer d'abord, je ne suis pas sûr. Au cas où vous le feriez:

\Drupal::service('theme_installer')->install(['test_theme']);
7
Clive

Je veux juste contribuer à cette réponse en ajoutant qu'il n'est pas nécessaire de s'inquiéter de l'exécution de ces deux commandes si le thème est déjà installé. Il exécute techniquement le service theme_installer ci-dessous et vérifie au préalable les thèmes installés.

0
Gloria Tucker