it-swarm.com.de

Wie ordne ich bei der Theme-Installation bestimmten Regionen Blöcke zu?

Drupal 8 bietet standardmäßig einige Blöcke. Z.B. Site Branding, Main Navigation, Powered by Drupal, Search usw.

Ich habe ein Thema erstellt, das Site branding & Main Navigation Benannte Regionen enthält, in denen entsprechende Blöcke platziert werden können.

Wenn ich mein Thema aktiviere, werden die Blöcke Site Branding Und Main Navigation Standardmäßig in der Region Header & First Sidebar Meines Themas platziert.

Wie kann ich bei der Theme-Installation standardmäßig Site Branding & Main Navigation Blöcke in ihren jeweiligen Regionen platzieren?

9
kmdhrm

Zunächst sollten Sie jede gewünschte Blockregion manuell unter Administration>Structure>Block layout Tab Ändern und dann zur Konfigurations-Exportfunktion gehen unter:
Administration>Configuration>Development>Configuration synchronization>Export Tab>Single item, Um jeweils die Blockeinstellungen für Ihr Thema zu exportieren.
Dann sollten Sie sich die generierten YAML-Dateien ansehen und diese in einem neuen Ordner innerhalb Ihres Themas unter /config/install Ablegen. Anschließend haben Sie das Design deinstalliert und als Standard neu installiert.

Zusammenfassung:
1. Installieren Sie MY_THEME
2. Platzieren Sie die Blöcke in den gewünschten Regionen
3. Exportieren Sie Konfigurationsdateien und entfernen Sie daraus uuid und den Kernkonfigurations-Hash
zum Beispiel Site Branding Block block.block.MY_THEME_branding.yml Datei

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. Platzieren Sie die Konfigurationsdateien im Verzeichnis MY_THEME/config/optional Oder MY_THEME/config/install (Wenn Sie absolut sicher sind, dass alle Abhängigkeiten erfüllt sind)
  2. Deinstallieren Sie MY_THEME Und löschen Sie alle Caches
  3. Installieren Sie MY_THEME Erneut
8
Mojtaba Reyhani

Die Antwort gefunden:

Dies kann durch Hinzufügen einer yml-Datei (Blockinstanz) für jeden Block im theme/config/install Mappe.

Zum Beispiel, um das Site Branding block (Maschinenname system_branding_block) zum Site Branding region (Maschinenname site_branding) füge den folgenden Code in das config/install/block.block.THEME_NAME_branding.yml Datei:

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: {  }
7
kmdhrm