Как установить тему по умолчанию программно


8

Я пытаюсь создать профиль установки и хочу, чтобы после установки моя настраиваемая тема была включена и настроена по умолчанию.

Добавление в MYPROFILE.info.yml ...

theme:
  - my_theme

...недостаточно. Это только устанавливает его, но это не установлено в качестве темы по умолчанию.

Я думаю, что я должен сделать что-то еще в файле MYPROFILE.install в

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

Спасибо

Ответы:


11

Глядя на ThemeController::setDefaultTheme(обработчик запроса для маршрута / admin / появление / по умолчанию), это должно сделать свое дело:

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

Чтобы это работало, тема должна быть уже включена. До сих пор не знаю, как включить его программно.
dxvargas

3
@hiphip К счастью, это довольно просто:\Drupal::service('theme_installer')->install(['theme_name']);
Клайв

-2

Вы можете создать сайт с правильной темой по умолчанию и скопировать файлы конфигурации, связанные с темой, в каталог конфигурации вашего профиля (или все файлы, если это имеет смысл для вашего профиля).

См. Https://www.drupal.org/node/2210443#config для получения дополнительной информации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.