Cara mengatur tema default secara terprogram

8

Saya mencoba membangun profil instal dan saya ingin tema khusus saya diaktifkan dan diset secara default setelah instalasi.

Menambahkan di MYPROFILE.info.yml ...

theme:
  - my_theme

...tidak cukup. Ini hanya menginstalnya, tetapi tidak disetel sebagai tema default.

Saya kira saya harus melakukan sesuatu yang lain dalam file MYPROFILE.install di

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

Terima kasih

Guillaume Bois
sumber

Jawaban:

11

Melihat ThemeController::setDefaultTheme(penangan permintaan untuk / admin / penampilan / rute default), ini harus melakukan trik:

\Drupal::configFactory()
  ->getEditable('system.theme')
  ->set('default', 'machine_name')
  ->save();
Clive
sumber
Agar ini berfungsi, tema harus sudah diaktifkan. Masih tidak tahu cara mengaktifkannya secara terprogram.
dxvargas
3
@hiphip Untungnya itu cukup mudah:\Drupal::service('theme_installer')->install(['theme_name']);
Clive
-2

Anda dapat membuat situs yang memiliki tema default yang benar, dan menyalin lebih dari tema file konfigurasi terkait ke direktori konfigurasi profil Anda (atau semua file jika masuk akal untuk profil Anda).

Lihat https://www.drupal.org/node/2210443#config untuk lebih lanjut.

pelakon
sumber