Field as Block

コンテンツEntityの個々のFieldを独立したBlockとして表示し、テーマの任意のリージョンに配置できるようにします。

fieldblock
7,936 sites
48
drupal.org

インストール

Drupal 11, 10, 9 v8.x-2.3
composer require 'drupal/fieldblock:8.x-2.3'
Drupal 8 v8.x-2.2
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
Field as Block設定 /admin/config/fieldblock/fieldblockconfig

どのEntityタイプのFieldをBlockとして利用可能にするかを設定し、無効化または削除されたEntityタイプからの孤立したField Blockをクリーンアップします。

権限 1
Field as Block設定を管理

ユーザーがField as Block設定ページにアクセスして、Entityタイプの有効化/無効化および孤立したBlockのクリーンアップを行えるようにします。

Troubleshooting 5
Blockに'Block content がありません'と表示されるか、表示されない

Blockは次の条件がすべて満たされた場合にのみ表示されます: 1) 現在のページが設定されたタイプのEntityを表示している、2) Entityに設定されたFieldがある、3) Fieldが空でない、4) 現在のユーザーにFieldを表示する権限がある。これらすべての条件を確認してください。

カスタムEntityタイプでField Blockが利用できない

管理 > 環境設定 > システム > Field as Block設定に移動し、カスタムEntityタイプを有効にしてください。コンテンツEntityタイプのみ(設定Entityは不可)が互換性があります。

Entityタイプを無効化した後の孤立したBlock

Field as Block設定ページのクリーンアップセクションを使用して、無効化または削除されたEntityタイプに属するBlockを削除してください。

Blockが間違った言語でFieldを表示する

モジュールには翻訳サポートが含まれており、現在の言語でFieldを表示するはずです。Entityに現在の言語の翻訳があることを確認してください。

フォーマッター設定が保存されない

フォーマッター設定を変更した後、必ず'Blockを保存'をクリックしてください。フォーマッター設定フォームはFieldまたはフォーマッターの選択を変更するとAJAXを使用して更新されます。

Security Notes 3
  • モジュールはDrupalのFieldアクセスシステムを尊重します - 現在のユーザーに表示権限がある場合にのみFieldが表示されます
  • 空のFieldは自動的に非表示になり、プレースホルダーコンテンツの表示を防ぎます
  • 'administer fieldblock'権限はどのEntityタイプがFieldを公開するかを制御するため、信頼できる管理者にのみ付与すべきです