テーマへのリージョンの追加
テーマにリージョンを追加するには、次のことが必要です:
- THEMENAME.info.ymlファイルへのリージョンメタデータの追加。
- page.html.twigファイルの編集と新しいリージョンの出力。
注:テーマでリージョンを宣言すると、1つだけでも、デフォルトのリージョンはすべて適用されなくなり、使用するすべての領域を宣言する責任があります。
定義しなかったため存在しなくなったリージョンにあったブロックは、無効になります。特にTHEMENAME.info.ymlを編集してdrush crでキャッシュを再構築すると、それぞれについて次のようなメッセージが表示されます:
ブロックthemename_breadcrumbsが無効なリージョンbreadcrumbに割り当てられたため、無効になりました。
/admin/structure/blockに移動すると、無効になったすべてのブロックが(無効)インジケーター付きで最上部の領域にリストされます。それらをドラッグするか、「リージョン」ドロップダウンを使用して再割り当てするか、不要になったブロックを削除できます。
page_topとpage_bottomリージョンが保持されていることを確認してください。これらは、アナリティクスや管理者ツールバーなど、ページの最上部と最下部のマークアップに使用される「非表示」領域です。THEMENAME.info.ymlファイルにそれらをリストする必要はありませんが、html.html.twigテンプレートから削除しないでください。モジュールがそれらの存在に依存する場合があります。
情報ファイルへのリージョンの追加
まず、THEMENAME.info.ymlファイルで新しいリージョンを宣言します。リージョンは次のようにregionsキーの子として宣言されます:
regions:
header: 'Header'
content: 'Content'
footer: 'Footer'
リージョンキーは英数字である必要があり、アンダースコア(_)を含めることができます。キーは文字で始まる必要があります。キーはマシン名(コードで使用するもの)で、値は管理者インターフェースに表示される人間が読めるバージョンです。
テンプレートへのリージョンの追加
リージョンがそこに配置されたコンテンツを表示するには、新しいリージョンがpage.html.twigファイルにも追加されていることを確認する必要があります。リージョンは、THEMENAME.info.ymlファイルで使用されているキーにpage.文字列を付けた名前のTwig変数として表されます。
例:
header: 'Header'
...は次のようになります:
{{ page.header }}
これらは他のTwig変数と同じように動作し、ユースケースに適した任意のマークアップでラップできます。
(非表示領域のデフォルト構文は異なります。下記を参照してください。)
デフォルトのリージョン
デフォルトのリージョンのリストについては、page.html.twigドキュメントを参照してください。
- page.header
- page.primary_menu
- page.secondary_menu
- page.highlighted
- page.help(動的なヘルプテキスト。主に管理ページ用)
- page.content(現在のページのメインコンテンツ)
- page.sidebar_first
- page.sidebar_second
- page.footer
- page.breadcrumb
テーマがリージョンを宣言しない場合、Drupalはこのデフォルトのセットを使用します。
これらの領域は、デフォルトのcore/modules/system/templates/page.html.twigファイルが期待するものに対応し、page_topとpage_bottomの2つの非表示領域にも対応します。デフォルトをオーバーライドする場合、これら最後の2つを宣言する必要はありませんが、Twig変数{{page_top}}と{{page_bottom}}はhtml.html.twigテンプレートに保持する必要があります。