Tema yüklemesinde belirli bölgelere bloklar nasıl atanır?


9

Drupal 8 varsayılan olarak bazı bloklar sağlar. Örneğin. Site Branding, Main Navigation, Powered by Drupal, SearchVb

Ben bir tema oluşturduk Site branding& Main Navigationtekabül bloklar yerleştirilebilir ettiği bölgeleri adını verdi.

Temamı etkinleştirdiğimde, varsayılan olarak sırasıyla Site Branding& Main Navigationblokları temamın Header& First Sidebarbölgesine yerleştirilir .

Nasıl yerleştirebilir Site Brandingve Main Navigationtema üzerinde varsayılan olarak kendi bölgelerine bloklar yüklemek?


2
Yapılandırma nesneleri olan blok örnekleri oluşturmanız ve bunları temanızın config / install dizinine koymanız gerekir.

Yanıtlar:


8

Her şeyden önce, istediğiniz her blok bölgesini manuel olarak değiştirmeli Administration>Structure>Block layout Tabve ardından
Administration>Configuration>Development>Configuration synchronization>Export Tab>Single itemtemanız için her bir blok ayarını dışa aktarmak için şu adresteki config dışa aktarma işlevine gitmelisiniz .
Ardından oluşturulan YAML dosyalarına bir göz atmanız ve bunu temanızdaki yeni bir klasöre yerleştirmeniz gerekir /config/install. daha sonra temayı kaldırdınız ve varsayılan olarak yeniden yüklediniz.

Özet:
1. Kur MY_THEME
2. Blokları istenen bölgelere yerleştirin
3. Yapılandırma dosyalarını dışa aktarın ve bunlardan uuidve
örneğin Site Brandingblok block.block.MY_THEME_branding.ymldosyası gibi çekirdek yapılandırma karmasını kaldırın

langcode: en
status: true
dependencies:
  module:
    - system
  theme:
    - DEPENDENT_THEME
id: MY_THEME_branding
theme: MY_THEME
region: site_branding
weight: 0
provider: null
plugin: system_branding_block
settings:
  id: system_branding_block
  label: 'Site branding'
  provider: system
  label_display: '0'
  use_site_logo: true
  use_site_name: true
  use_site_slogan: true
visibility: {  }
  1. Yapılandırma dosyalarını MY_THEME/config/optionalveya MY_THEME/config/installdizine yerleştirin (tüm bağımlılıkların karşılandığından kesinlikle eminseniz)
  2. MY_THEMETüm önbellekleri kaldırın ve temizleyin
  3. MY_THEMETekrar yükle

7

Cevabı buldum:

Bu, theme/config/installklasördeki her blok için bir yml dosyası (blok örneği) eklenerek yapılabilir .

Örneğin., Bölgeye (makine adı ) Site Brandingblok (makine adı system_branding_block) atamak için dosyaya aşağıdaki kodu ekleyin :Site Brandingsite_brandingconfig/install/block.block.THEME_NAME_branding.yml

langcode: en
status: true
dependencies:
  module:
    - system
  theme:
    - DEPENDENT_THEME
id: THEME_NAME_branding
theme: THEME_NAME
region: site_branding
weight: 0
provider: null
plugin: system_branding_block
settings:
  id: system_branding_block
  label: 'Site branding'
  provider: system
  label_display: '0'
  use_site_logo: true
  use_site_name: true
  use_site_slogan: true
visibility: {  }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.