Field as Block
コンテンツEntityの個々のFieldを独立したBlockとして表示し、テーマの任意のリージョンに配置できるようにします。
fieldblock
インストール
composer require 'drupal/fieldblock:8.x-2.3'
composer require 'drupal/fieldblock:8.x-2.2'
概要
Field as Blockモジュールは、現在のEntity(Node、ユーザー、Taxonomy Termなど)の任意のFieldを個別のBlockとして表示する機能を提供します。これは、Fieldの表示をメインコンテンツエリアから分離し、特定のFieldをページレイアウトの異なるリージョンに配置したい場合に特に便利です。
すべてのFieldがEntityビュー内で一緒にレンダリングされるのではなく、このモジュールは有効化された各Entityタイプに対して派生Blockプラグインを作成します。これにより、サイトビルダーは特定のFieldとそのフォーマッターを選択し、標準のBlockレイアウトシステムを使用してそのFieldの出力をページ上の任意の場所に配置できます。
モジュールはルートから表示中の現在のEntityを自動的に検出し、設定されたフォーマッターで選択したFieldをレンダリングします。適切なキャッシュ処理、翻訳サポート、アクセス制御が含まれており、Fieldが適切な場合にのみ表示されることを保証します。
Features
- コンテンツEntityのあらゆるFieldからBlockを作成(Node、ユーザー、Taxonomy Term、その他のコンテンツEntityタイプ)
- 管理設定を通じてField Blockを利用可能にするEntityタイプを選択
- 選択したEntityタイプから任意の利用可能なFieldを選択してBlockとして表示
- Block設定でFieldフォーマッターとその設定を直接構成
- Fieldのラベルを自動的にBlockタイトルとして使用するオプション
- ルートコンテキストからの現在のEntityの自動検出
- 表示されるEntityに紐づいた適切なキャッシュ無効化
- 完全な翻訳サポート - 現在の言語でField値を表示
- Fieldアクセス権限と空のFieldステータスの両方をチェックするアクセス制御
- Entityタイプが無効化された際の孤立したField Blockを削除するクリーンアップユーティリティ
- ベースFieldと設定可能なFieldの両方で動作
Use Cases
サイドバーに著者情報を表示
User Field Blockを作成して、Nodeページのサイドバーリージョンにメインコンテンツエリアとは別に著者のプロフィール画像やプロフィールを表示します。
ヘッダーリージョンにフィーチャー画像を表示
Content Field Blockを使用してNodeのフィーチャー画像Fieldをメインコンテンツの上のヘッダーリージョンに表示し、ヒーロー画像効果を作成します。
フッターにTaxonomyタグを表示
タグFieldを表示するように設定されたContent Field Blockをフッターリージョンに配置し、Taxonomy表示をメイン記事本文から分離します。
Layout Builderを使用しないカスタムFieldレイアウト
Layout Builderを使用していないサイトでは、Field as BlockはEntity表示を分解し、標準のBlock配置を使用して個々のFieldを異なるテーマリージョンに配置する方法を提供します。
Entityタイプ間でField表示を再利用
複数のEntityタイプが同じField(例: NodeとTaxonomy Termの両方にある'サマリー'Field)を共有している場合、適切な表示条件を設定して各タイプのField Blockを同じリージョンに配置できます。
Tips
- Blockライブラリの混雑を減らすため、実際に必要なEntityタイプのみを有効にしてください
- 'FieldラベルをBlockタイトルとして使用'オプションを使用して、意味のあるBlockタイトルを自動生成できます
- Field Blockはルートごとにキャッシュされるため、異なるEntityを表示すると自動的に更新されます
- Block表示設定を検討して、適切なページでのみField Blockを表示するようにしてください
- Field BlockはベースField(タイトル、作成日など)と設定可能なField(カスタムテキストFieldなど)の両方で動作します
Technical Details
Admin Pages 1
/admin/config/fieldblock/fieldblockconfig
どのEntityタイプのFieldをBlockとして利用可能にするかを設定し、無効化または削除されたEntityタイプからの孤立したField Blockをクリーンアップします。
権限 1
Troubleshooting 5
Blockは次の条件がすべて満たされた場合にのみ表示されます: 1) 現在のページが設定されたタイプのEntityを表示している、2) Entityに設定されたFieldがある、3) Fieldが空でない、4) 現在のユーザーにFieldを表示する権限がある。これらすべての条件を確認してください。
管理 > 環境設定 > システム > Field as Block設定に移動し、カスタムEntityタイプを有効にしてください。コンテンツEntityタイプのみ(設定Entityは不可)が互換性があります。
Field as Block設定ページのクリーンアップセクションを使用して、無効化または削除されたEntityタイプに属するBlockを削除してください。
モジュールには翻訳サポートが含まれており、現在の言語でFieldを表示するはずです。Entityに現在の言語の翻訳があることを確認してください。
フォーマッター設定を変更した後、必ず'Blockを保存'をクリックしてください。フォーマッター設定フォームはFieldまたはフォーマッターの選択を変更するとAJAXを使用して更新されます。
Security Notes 3
- モジュールはDrupalのFieldアクセスシステムを尊重します - 現在のユーザーに表示権限がある場合にのみFieldが表示されます
- 空のFieldは自動的に非表示になり、プレースホルダーコンテンツの表示を防ぎます
- 'administer fieldblock'権限はどのEntityタイプがFieldを公開するかを制御するため、信頼できる管理者にのみ付与すべきです