Empty Fields

通常は非表示になる空のフィールドを、設定可能な表示フォーマッター設定を使用して表示するオプションを提供します。

empty_fields
3,494 sites
31
drupal.org

インストール

Drupal 11, 10, 9 v8.x-1.0
composer require 'drupal/empty_fields:8.x-1.0'

概要

Empty Fieldsモジュールは、新しい表示フォーマッター設定を追加することで、空のフィールドを表示する方法を提供します。デフォルトでは、Drupalは値のないフィールドを非表示にします。このモジュールを使用すると、フィールドを完全に非表示にする代わりに、フィールドが空の場合に何を表示するかをサイト管理者が設定できます。

このモジュールは、すべてのフィールドフォーマッターにサードパーティ設定を追加することで動作し、各ビューモードの各フィールドに対して「空の値の動作」を選択できます。フィールドが空でハンドラーが設定されている場合、モジュールはフィールドを非表示にする代わりに、指定された代替コンテンツでフィールドをレンダリングします。

このモジュールは、開発者がカスタム空フィールドハンドラーを作成できるプラグインシステムを提供します。標準で、カスタムテキスト(Token対応)と改行なしスペースを表示するハンドラーが含まれています。追加のハンドラーは、プラグインAPIを使用して他のモジュールから追加できます。

Features

  • Drupalで通常は非表示になる空のフィールドを表示
  • 「表示管理」インターフェースを通じてフィールドごと、ビューモードごとに設定可能
  • フィールドが空の場合に完全なToken置換をサポートするカスタムテキストを表示
  • フィールドレイアウト構造を維持するために改行なしスペース( )を表示
  • 開発者がカスタム空フィールドハンドラーを作成できるプラグインベースのアーキテクチャ
  • 欠落または破損したプラグインの自動フォールバック処理
  • テーマ設定用に空フィールド出力にCSSクラスを追加(empty-fields、empty-fields__[handler])
  • フィールドアクセス権限を尊重 - ユーザーに閲覧権限がある場合のみ空のコンテンツを表示

Use Cases

欠落しているプロフィールフィールドにプレースホルダーテキストを表示

ユーザープロフィールページで、空の経歴フィールドを非表示にする代わりに「未指定」や「情報が提供されていません」と表示します。これにより一貫したレイアウトが維持され、情報が表示エラーではなく意図的に空白のままにされたことを訪問者に知らせます。

改行なしスペースでテーブル風のレイアウトを維持

CSSがコンテンツの存在に依存するグリッドまたはテーブル風のレイアウトでコンテンツを表示する場合、改行なしスペースハンドラーを使用して、空のフィールドでもコンテナがレンダリングされるようにし、レイアウトの崩れを防ぎます。

コンテキストに基づく動的なプレースホルダーコンテンツを表示

Token置換を使用したカスタムテキストハンドラーを使用して、コンテキストを考慮したプレースホルダーコンテンツを表示します。例えば、フィールドが空の場合に「この情報を追加するには[current-user:name]のプロフィールを編集してください」と表示します。

ビューモード間で一貫したフィールド表示

編集レビュー用にフルコンテンツビューモードですべてのフィールドが表示されるようにし、ティーザー表示では空のフィールドを非表示にします。ビューモードごとに異なる空フィールドの動作を設定します。

コンテンツの完全性をデバッグ

コンテンツの移行または入力中に、空の必須フィールドに「空 - 要レビュー」と表示して、編集者が注意が必要なコンテンツを特定できるようにします。

Tips

  • カスタムテキストでToken置換を使用して、動的でコンテキストを考慮した空フィールドメッセージを作成
  • .empty-fieldsクラスをターゲットにしたカスタムCSSを追加して、空フィールドの表示を値のあるフィールドとは異なるスタイルに設定
  • 関連コンテンツの表示や外部サービスの呼び出しなど、複雑なユースケース用にカスタムEmptyFieldプラグインを作成
  • 空フィールドの設定はビューモードごとであるため、フル、ティーザー、その他の表示モードで異なる動作を設定可能
  • モジュールはフィールドアクセス権限を尊重するため、空のコンテンツはユーザーがフィールドを表示する権限を持っている場合にのみ表示される

Technical Details

Hooks 3
hook_field_formatter_third_party_settings_form

すべてのフィールドフォーマッター設定フォームに「空の値の動作」選択フィールドを追加し、フィールドが空の場合に何を表示するかを設定できるようにします。

hook_field_formatter_settings_summary_alter

設定された空フィールドの動作を含めるためにフォーマッター設定のサマリーを変更します。

hook_entity_display_build_alter

フィールドが空だが空フィールドハンドラーが設定されている場合、空フィールドのコンテンツを挿入するためにEntityの表示ビルドを変更します。

Troubleshooting 4
空フィールドのコンテンツが表示されない

フィールドのフォーマッター設定で「空の値の動作」が「- デフォルト -」以外に設定されていることを確認してください。また、ユーザーにフィールドを表示する権限があることも確認してください。

「このプラグインは破損または欠落しています」というメッセージが表示される

設定された空フィールドハンドラープラグインが存在しなくなりました。これは、カスタムハンドラーを提供するモジュールがアンインストールされた場合に発生する可能性があります。「表示管理」でフィールドの空の値の動作を再設定してください。

カスタムテキストでTokenが置換されない

Tokenモジュールがインストールされて有効になっていることを確認してください。また、表示されているEntityタイプに対して正しいToken構文を使用していることを確認してください。

空フィールドのスタイルが適用されない

テーマのCSSが正しいクラスをターゲットにしていることを確認してください。空のフィールドには、フィールドラッパーに「empty-fields」と「empty-fields__[handler]」の両方のクラスがあります。