web-dev-qa-db-ja.com

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

次のコードを使用して、drupal 8でデフォルトのテーマとしてテーマを設定しようとしました

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

モジュールをインストールすると、コードはテーマを私が入力したテーマとして設定しません。コードはhook_install()で記述されています。

5

現在のアドバイス はconfigでこれを設定することです:

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

ThemeHandlerInterface::setDefault() を使用する以前のメソッドは廃止されました。

最初にインストールする必要があるかもしれませんが、よくわかりません。あなたがする場合:

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

テーマが既にインストールされている場合、これらのコマンドの両方を実行することを心配する必要がないことを追加することで、この回答に貢献したいと思います。技術的には、theme_installerサービスを実行し、事前にインストール済みのテーマをチェックします。

0
Gloria Tucker