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


8

J'essaie de créer un profil d'installation et je veux que mon thème personnalisé soit activé et défini par défaut après l'installation.

Ajout dans MYPROFILE.info.yml ...

theme:
  - my_theme

...n'est pas assez. Cela l'installe uniquement, mais il n'est pas défini comme thème par défaut.

Je suppose que je dois faire autre chose dans le fichier MYPROFILE.install dans

function MYPROFILE_install() {
  // how to set as default my custom theme
}

Je vous remercie

Réponses:


11

En regardant ThemeController::setDefaultTheme(le gestionnaire de requêtes pour la route / admin / apparence / par défaut), cela devrait faire l'affaire:

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

Pour que cela fonctionne, le thème doit être déjà activé. Je ne sais toujours pas comment l'activer par programme.
dxvargas

3
@hiphip Heureusement, c'est assez simple:\Drupal::service('theme_installer')->install(['theme_name']);
Clive

-2

Vous pouvez créer un site qui a le thème par défaut correct et copier les fichiers de configuration liés au thème dans le répertoire de configuration de votre profil (ou tous les fichiers si cela convient à votre profil).

Voir https://www.drupal.org/node/2210443#config pour plus.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.