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
ブロックをそれぞれのリージョンに配置するにはどうすればよいですか?
まず、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
ファイル
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: { }
MY_THEME/config/optional
またはMY_THEME/config/install
ディレクトリに配置します(すべての依存関係が確実に満たされている場合)MY_THEME
をアンインストールし、すべてのキャッシュをクリアしますMY_THEME
を再インストールします答えが見つかりました:
これは、theme/config/install
フォルダーの各ブロックにymlファイル(ブロックインスタンス)を追加することで実行できます。
たとえば、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: { }