Better Field Descriptions

フィールド管理権限なしで、すべてのEntityタイプのフォームフィールドにカスタマイズ可能でテーマ対応の説明を追加できます。

better_field_descriptions
329 sites
39
drupal.org

インストール

Drupal 10, 9 v2.0.2
composer require 'drupal/better_field_descriptions:^2.0'
Drupal 8 v8.x-1.7
composer require 'drupal/better_field_descriptions:8.x-1.7'

概要

Better Field Descriptionsは、Drupalのフォームフィールドにカスタムでテーマ対応のヘルプテキストを追加するための強力なソリューションを提供します。編集にフィールド管理権限が必要な標準のフィールド説明とは異なり、このモジュールは役割を分離します。サイト管理者はどのフィールドにbetter descriptionsを適用するかを選択し、コンテンツマネージャーや編集者が説明テキストを自分で作成・管理できます。

このモジュールはすべてのEntityタイプ(Node、Taxonomy Term、Userなど)をサポートし、あらゆるフィールドタイプで動作します。説明はフィールドの上、フィールドの下、またはフィールドラベルと入力要素の間に配置できます。各説明には独自のラベルを設定するか、サイト全体のデフォルトラベルを使用できます。

説明はTwigテンプレートを通じてレンダリングされ、完全なテーマのカスタマイズが可能です。モジュールには2つの組み込みテンプレート(シンプルなテキスト表示と折りたたみ可能なfieldsetラッパー)が含まれています。開発者はカスタムテンプレートを作成でき、自動的に検出されて設定で利用可能になります。

Features

  • あらゆるEntityタイプ(Node、Taxonomy Term、User、Mediaなど)の任意のフィールドにカスタム説明を追加
  • 説明をフィールドの上、フィールドの下、またはタイトルと入力要素の間に配置
  • 各説明にカスタムラベルを割り当てるか、グローバルなデフォルトラベルを使用
  • Twigテンプレートによる完全にテーマ対応の出力。2つの組み込みオプション:プレーンテキストと折りたたみ可能なfieldset
  • フィールド選択(管理者)と説明作成(コンテンツマネージャー)の権限を分離
  • ファイルアップロード、テキストエリア、Entity参照など、すべてのフィールドタイプで動作
  • タイトルフィールドなどの疑似フィールドも自動的に処理
  • テンプレート自動検出:テーマフォルダに配置したカスタムテンプレートが自動的に利用可能に
  • 説明テンプレートでの必須フィールドインジケーターのサポート

Use Cases

クライアント向けのフィールドヘルプテキスト

Web制作会社がクライアント向けにDrupalサイトを構築しています。クライアントは編集ガイドラインに合わせてフィールド説明をカスタマイズしたいですが、制作会社はフィールド設定へのアクセス権を与えたくありません。Better Field Descriptionsを使用すると、制作会社がSettingsタブでフィールドを選択し、クライアントに「Add Better Descriptions To Selected Fields」権限を付与できます。これにより、クライアントは誤ってフィールド設定を変更するリスクなしに、独自のヘルプテキストを作成できます。

複雑なコンテンツタイプでのコンテキストヘルプ

コンテンツ作成者にガイダンスが必要な多くのフィールドを持つコンテンツタイプがあるサイトで、「タイトルと入力の間」の位置オプションを使用すると、管理者は各フィールドラベルの直下、入力の上に詳細な説明を配置できます。これにより、入力の下に表示される標準のDrupalフィールド説明よりもヘルプテキストが目立つようになります。

折りたたみ可能なヘルプドキュメント

詳細なドキュメント(許容される形式、ガイドライン、例など)が必要なフィールドには、fieldsetテンプレートを使用して説明を折りたたみ可能な要素でラップします。これにより、フォームをすっきり保ちながら、必要に応じて詳細なヘルプを利用できます。

フォーム全体で一貫したラベリング

「ガイドライン」や「ヘルプ」などのデフォルトラベルを設定して、すべての説明に適用し、サイト全体で一貫したUIパターンを作成します。必要に応じて特定のフィールドにカスタムラベルで上書きできます。

既存の説明の移動

デフォルトの説明位置(入力の下)が理想的でない場合があります。フィールドのbetter descriptionsを有効にし、説明テキストを空のままにすると、モジュールは元のフィールド説明を使用しながら、フィールドの上やラベルと入力の間に位置を変更できます。

ブランディング用のカスタムテンプレート

テーマのtemplatesフォルダにカスタムテンプレートファイル(例:better-field-descriptions-branded.html.twig)を作成します。モジュールがこれを自動検出し、テンプレートドロップダウンで利用可能になります。これを使用して、サイトのデザインシステム、アイコン、または特定のマークアップ要件で説明をスタイリングできます。

Tips

  • 常に最初にEntitiesタブでEntityタイプを有効にし、次にSettingsでフィールドを選択し、最後にBundlesで説明を追加します - タブはこの順序で使用する必要があります
  • 「タイトルと入力の間」の位置は一部のフィールドタイプでラベルが重複する可能性があります - 保存後は必ずフォームを確認してください
  • 説明フィールドを空のままにすると、テキストを変更せずに元のフィールド説明の位置を変更できます
  • テーマのtemplatesフォルダにあるカスタムテンプレートは自動検出されます - better-field-descriptions-*.html.twigという名前にしてください
  • ユーザーが設定ページにアクセスするには、モジュール権限と「Use the administration pages and help」権限の両方が必要です
  • テンプレートの変更はテーマレジストリの再構築をトリガーし、一時的にサイトのパフォーマンスに影響を与える可能性があります
  • ファイル/画像フィールドの場合、モジュールはmanaged_fileウィジェットで正しく動作するようにprefix/suffixの位置を自動的に調整します

Technical Details

Admin Pages 3
Better Field Descriptions設定 /admin/config/content/better_field_descriptions

管理者が設定されたすべてのEntityタイプとBundleでどのフィールドにbetter descriptionsを有効にするかを選択するメイン設定ページです。フィールドはEntityタイプとBundleごとに折りたたみ可能なセクションで整理されています。ここでフィールドをチェックすると、Bundlesタブで説明の編集が可能になります。

Bundles /admin/config/content/better_field_descriptions/bundles

適切な権限を持つユーザーが、有効な各フィールドの実際の説明テキストを作成・設定できる説明編集ページです。ここでコンテンツマネージャーがコンテンツ作成者向けの役立つガイダンスを追加します。

Entities /admin/config/content/better_field_descriptions/entities

better field descriptionsで利用可能にするEntityタイプを選択する設定ページです。ここで有効にしたEntityタイプのみがフィールド選択用のメインSettingsページに表示されます。

権限 2
Better Field Descriptions設定の管理

Settingsタブにアクセスし、どのフィールドにbetter descriptionsを適用するかを選択できます。この権限を持つユーザーがモジュール全体の設定を制御します。

選択したフィールドにBetter Descriptionsを追加

EntitiesタブとBundlesタブにアクセスして、Entityタイプを選択し、フィールドの実際の説明テキストを作成・編集できます。この権限は、フィールド設定にアクセスせずにヘルプテキストを作成する必要があるコンテンツマネージャー向けです。

Hooks 3
hook_field_widget_form_alter

モジュールはこのhookを実装して、フォームレンダリング時にフィールドウィジェットにbetter descriptionsを注入します。現在のフィールドにbetter descriptionが設定されているかを確認し、レンダリングされた説明をフォーム要素の適切な位置に追加します。

hook_theme

設定可能なテンプレートファイルとパスを持つbetter_field_descriptions theme hookを登録します。アクティブなテーマからカスタムテンプレートを検出できます。

hook_help

/admin/help/better_field_descriptionsのモジュールヘルプページにヘルプテキストを提供します。