Làm cách nào để gán các khối cho các vùng cụ thể khi cài đặt chủ đề?


9

Drupal 8 cung cấp một số khối theo mặc định. Ví dụ. Site Branding, Main Navigation, Powered by Drupal, Search, Vv

Tôi đã tạo một chủ đề có Site branding& Main Navigationđặt tên các vùng trong đó các khối tương ứng có thể được đặt.

Khi tôi bật chủ đề của mình, các khối Site Branding& Main Navigationđược đặt trong Header& First Sidebarkhu vực của chủ đề theo mặc định.

Làm cách nào tôi có thể đặt Site Branding& Main Navigationchặn các vùng tương ứng của chúng theo cài đặt theo chủ đề?


2
Bạn phải tạo các thể hiện khối là các đối tượng cấu hình và đặt chúng vào thư mục config / install của chủ đề.

Câu trả lời:


8

Trước hết, bạn nên thay đổi từng vùng khối mong muốn theo cách thủ công Administration>Structure>Block layout Tabvà sau đó chuyển đến chức năng xuất cấu hình tại:
Administration>Configuration>Development>Configuration synchronization>Export Tab>Single itemđể xuất từng cài đặt khối cho chủ đề của bạn.
Sau đó, bạn nên xem các tệp YAML được tạo và đặt nó vào một thư mục mới trong chủ đề của bạn tại /config/install. sau đó bạn gỡ cài đặt chủ đề và sau đó cài đặt lại nó làm mặc định.

Tóm tắt:
1. Cài đặt MY_THEME
2. Đặt các khối trong các vùng mong muốn
3. Xuất tệp cấu hình và xóa khỏi chúng uuidvà băm cấu hình lõi
cho tệp Site Brandingkhối ví dụ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. Đặt tệp cấu hình vào MY_THEME/config/optionalhoặc MY_THEME/config/installthư mục (nếu bạn hoàn toàn chắc chắn tất cả các phụ thuộc được đáp ứng)
  2. Gỡ cài đặt MY_THEMEvà xóa tất cả bộ nhớ cache
  3. Cài đặt MY_THEMElại

7

Tìm thấy câu trả lời:

Điều này có thể được thực hiện bằng cách thêm một tệp yml (thể hiện khối) cho mỗi khối trong theme/config/installthư mục.

Ví dụ: Để gán Site Brandingkhối (tên máy system_branding_block) cho Site Brandingvùng (tên máy site_branding), hãy thêm đoạn mã sau vào config/install/block.block.THEME_NAME_branding.ymltệp:

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: {  }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.