プログラムでデフォルトのテーマを設定する方法


8

インストールプロファイルを作成しようとしています。カスタムテーマを有効にして、インストール後にデフォルトで設定したいと思います。

MYPROFILE.info.ymlに追加しています...

theme:
  - my_theme

...十分ではありません。これはインストールするだけですが、デフォルトのテーマとして設定されていません。

私はMYPROFILE.installファイルで何か他のことをする必要があると思います

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

ありがとうございました

回答:


11

見てみるとThemeController::setDefaultTheme(/管理/外観/デフォルトルートの要求ハンドラ)、これはトリックを行う必要があります。

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

これが機能するには、テーマがすでに有効になっている必要があります。それでもプログラムで有効にする方法がわかりません。
dxvargas 2017

3
@hiphipは幸いにも非常に簡単だということ:\Drupal::service('theme_installer')->install(['theme_name']);
クライヴ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.