Better Field Descriptions
フィールド管理権限なしで、すべてのEntityタイプのフォームフィールドにカスタマイズ可能でテーマ対応の説明を追加できます。
better_field_descriptions
インストール
composer require 'drupal/better_field_descriptions:^2.0'
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
/admin/config/content/better_field_descriptions
管理者が設定されたすべてのEntityタイプとBundleでどのフィールドにbetter descriptionsを有効にするかを選択するメイン設定ページです。フィールドはEntityタイプとBundleごとに折りたたみ可能なセクションで整理されています。ここでフィールドをチェックすると、Bundlesタブで説明の編集が可能になります。
/admin/config/content/better_field_descriptions/bundles
適切な権限を持つユーザーが、有効な各フィールドの実際の説明テキストを作成・設定できる説明編集ページです。ここでコンテンツマネージャーがコンテンツ作成者向けの役立つガイダンスを追加します。
/admin/config/content/better_field_descriptions/entities
better field descriptionsで利用可能にするEntityタイプを選択する設定ページです。ここで有効にしたEntityタイプのみがフィールド選択用のメインSettingsページに表示されます。
権限 2
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のモジュールヘルプページにヘルプテキストを提供します。