Drupal 8 предоставляет некоторые блоки по умолчанию. Например. Site Branding
, Main Navigation
, Powered by Drupal
, И Search
т.д.
Я создал тему, в которой есть Site branding
& Main Navigation
названные регионы, в которые могут быть помещены соответствующие блоки.
Когда я запускаю мою тему, Site Branding
и Main Navigation
блоки размещаются в Header
& First Sidebar
области моей темы по умолчанию , соответственно.
Как я могу разместить Site Branding
& Main Navigation
блоки в соответствующих регионах по умолчанию при установке темы?
blocks
8
regions
theme-settings
kmdhrm
источник
источник
Ответы:
Прежде всего, вы должны вручную изменить каждую нужную область блока,
Administration>Structure>Block layout Tab
а затем перейти к функции экспорта конфигурации по адресу:Administration>Configuration>Development>Configuration synchronization>Export Tab>Single item
экспортировать все настройки блока для вашей темы.Затем вы должны взглянуть на сгенерированные файлы YAML и поместить их в новую папку в вашей теме
/config/install
. Затем вы удалили тему, а затем переустановили ее по умолчанию.Сводка:
1. Установите
MY_THEME
2. Поместите блоки в нужные регионы
3. Экспортируйте файлы конфигурации и удалите из них
uuid
хеш конфигурации ядра,например файл
Site Branding
блокаblock.block.MY_THEME_branding.yml
MY_THEME/config/optional
илиMY_THEME/config/install
каталог (если вы абсолютно уверены, что все зависимости соблюдены)MY_THEME
и очистите все кэшиMY_THEME
сноваисточник
Нашел ответ:
Это можно сделать, добавив файл yml (экземпляр блока) для каждого блока в
theme/config/install
папке.Например, чтобы назначить
Site Branding
блок (имя машиныsystem_branding_block
)Site Branding
региону (имя машиныsite_branding
), добавьте вconfig/install/block.block.THEME_NAME_branding.yml
файл следующий код :источник