วิธีกำหนดบล็อกให้กับพื้นที่เฉพาะในการติดตั้งธีม?


9

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บล็อกไปยังภูมิภาคของตนตามค่าเริ่มต้นในการติดตั้งธีมได้อย่างไร


2
คุณต้องสร้างอินสแตนซ์บล็อกซึ่งเป็นวัตถุการกำหนดค่าและใส่ลงในไดเร็กทอรี config / install ของธีมของคุณ

คำตอบ:


8

ก่อนอื่นคุณควรเปลี่ยนแต่ละพื้นที่บล็อกที่คุณต้องการด้วยตนเองAdministration>Structure>Block layout Tabจากนั้นไปที่ฟังก์ชั่น
Administration>Configuration>Development>Configuration synchronization>Export Tab>Single itemการส่งออกการกำหนดค่าที่: เพื่อส่งออกการตั้งค่าบล็อกแต่ละรายการสำหรับธีมของคุณ
แล้วคุณควรจะดูที่แฟ้ม YAML /config/installสร้างและวางไว้ว่าในโฟลเดอร์ใหม่ภายในรูปแบบของคุณได้ที่ คุณถอนการติดตั้งชุดรูปแบบแล้วติดตั้งใหม่เป็นค่าเริ่มต้น

สรุป:
1. ติดตั้งMY_THEME
2. วางบล็อกในพื้นที่ที่ต้องการ
3. ส่งออกไฟล์กำหนดค่าและลบออกจากพวกเขาuuidและแฮช core config
สำหรับไฟล์Site Brandingบล็อกตัวอย่างblock.block.MY_THEME_branding.yml

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. วางไฟล์กำหนดค่าMY_THEME/config/optionalหรือMY_THEME/config/installไดเรกทอรี (ถ้าคุณแน่ใจว่าเป็นไปตามการอ้างอิงทั้งหมด)
  2. ถอนการติดตั้งMY_THEMEและล้างแคชทั้งหมด
  3. ติดตั้งMY_THEMEใหม่อีกครั้ง

7

พบคำตอบ:

สามารถทำได้โดยการเพิ่มไฟล์ yml (อินสแตนซ์บล็อก) สำหรับแต่ละบล็อกในtheme/config/installโฟลเดอร์

ตัวอย่างเช่นหากต้องการกำหนดSite Brandingบล็อก (ชื่อเครื่องsystem_branding_block) ให้กับSite Brandingพื้นที่ (ชื่อเครื่องsite_branding) ให้เพิ่มรหัสต่อไปนี้ในconfig/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: {  }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.