Name Field
人名を構造化された複数コンポーネント形式(敬称、名、ミドルネーム、姓、世代接尾辞、資格)で保存・表示するフィールドタイプを提供するモジュール。
name
インストール
composer require 'drupal/name:8.x-1.1'
概要
Name Fieldモジュールは、Drupalサイトで人名を構造化された形式で保存・管理するための包括的なソリューションを提供します。単純なテキストフィールドではなく、名前を複数のコンポーネント(敬称/Title、名/Given、ミドルネーム/Middle、姓/Family、世代接尾辞/Generational、資格・称号/Credentials)に分解して保存することで、柔軟な表示形式と正確なデータ管理を実現します。
このモジュールは、各コンポーネントの有効/無効、必須/任意の設定、最大文字数の制限、入力フィールドタイプ(テキスト、ドロップダウン、オートコンプリート)の選択など、詳細なカスタマイズが可能です。さらに、名前の表示形式をパターン文字列で定義できる「名前フォーマット」機能と、複数の名前をリスト形式で表示する「名前リストフォーマット」機能を提供します。
ユーザーエンティティに名前フィールドを追加した場合、そのフィールドの値でユーザーのログイン名表示を上書きする機能も備えています。これにより、Real Nameモジュールのような機能を実現できます。また、西洋式、アジア式、東洋式、ドイツ式など、異なる文化圏での名前の並び順にも対応しています。
Features
- 6つの名前コンポーネント(敬称、名、ミドルネーム、姓、世代接尾辞、資格)を個別に管理可能
- コンポーネントごとに有効/無効、必須設定、最大文字数、入力タイプ(テキスト/ドロップダウン/オートコンプリート)を設定可能
- カスタマイズ可能な名前フォーマット(パターン文字列による柔軟な表示形式の定義)
- 複数名前のリスト表示フォーマット(et al.省略、区切り文字、andの表示方法など)
- 西洋式/アジア式/東洋式/ドイツ式の名前コンポーネント配置レイアウト
- ユーザーのログイン名を名前フィールドの値で上書きする機能
- 敬称と世代接尾辞のドロップダウンオプションのカスタマイズ
- Taxonomy語彙からのオプションインポート機能
- Viewsでの全文検索フィルター対応
- Drupal 7からのデータマイグレーション対応
- Diffモジュールとの統合(リビジョン比較)
- Feedsモジュールとの統合(データインポート)
- セマンティックマークアップ対応(Microdata、RDFa)
Use Cases
ユーザープロファイルでの本名表示
ユーザーエンティティに名前フィールドを追加し、「このフィールドでユーザーのログイン名を上書き」オプションを有効にすることで、サイト全体でユーザーのログイン名の代わりに本名を表示できます。これにより、Real Nameモジュールと同様の機能を実現できます。フォーマットを選択することで、「山田 太郎」「太郎 山田」「Dr. 山田」など、様々な形式で表示可能です。
学術論文の著者リスト表示
論文や書籍のコンテンツタイプに複数値の名前フィールドを追加し、著者リストを管理できます。名前リストフォーマットを使用することで、「John Doe, Jane Smith, and Bob Wilson」や「J. Doe et al.」のような学術的なスタイルでの表示が可能です。et al.による省略は3名以上の場合に自動適用するなど、細かな制御ができます。
連絡先・顧客管理
連絡先や顧客情報を管理するコンテンツタイプで、敬称(Mr./Mrs./Dr.など)と資格(Ph.D.、MBA など)を含む完全な名前情報を構造化して保存できます。ビジネスレターでは「Dr. Smith」、カジュアルな場面では「John」のように、異なるフォーマットで表示を切り替えることが可能です。
多文化対応の名前入力
「言語レイアウト」オプションを使用して、西洋式(Given Middle Family)、アジア式(Family Middle Given)、東洋式(Title Family Given Middle)、ドイツ式(Title Credentials Given Middle Family)など、異なる文化圏の名前入力順序に対応できます。アジア式やドイツ式では世代接尾辞フィールドが自動的に非表示になります。
Drupal 7からのサイトアップグレード
Drupal 7で名前フィールドモジュールを使用していたサイトをDrupal 10/11にアップグレードする際、マイグレーションプラグインにより既存の名前データを完全に移行できます。フィールドの設定、ウィジェット、フォーマッター、および保存された値がすべて適切にマッピングされます。
Tips
- パターン文字列で (xxx) のようにグループ化すると、グループ内の全コンポーネントが空の場合にグループ全体が非表示になります。例:((t+ig)+if) は敬称がない場合でも余分なスペースが入りません。
- セマンティックマークアップ(Microdata/RDFa)を有効にすると、schema.orgに準拠した構造化データとして名前が出力され、SEOに有利です。
- Viewsで名前フィールドを使用する場合、全文検索フィルターに加えて、各コンポーネント(given、family等)を個別のフィールドとして追加できます。
- オートコンプリート機能を使用する場合、区切り文字設定により複数のミドルネームなど、セパレータで区切られた値の入力をサポートします。
- ユーザー優先フィールドを設定すると、フィールドの「preferred」コンポーネント参照を使って、ニックネームや通称での表示も可能です。
Technical Details
Admin Pages 5
/admin/config/regional/name
名前の表示形式を定義するフォーマットの一覧を管理します。デフォルトで「Default」「Full」「Given」「Family」「Given Family」「Title Family」の6つのフォーマットが提供されています。
/admin/config/regional/name/add
新しい名前表示フォーマットを作成します。パターン文字列を使用して、名前コンポーネントの表示順序と形式を定義できます。
/admin/config/regional/name/list
複数の名前をリスト形式で表示する際のフォーマットを管理します。区切り文字、「and」の表示方法、et al.による省略などを設定できます。
/admin/config/regional/name/list/add
複数名前のリスト表示形式を定義します。学術論文の著者リストなど、複数の名前を適切な形式で表示する際に使用します。
/admin/config/regional/name/settings
名前フォーマットのグローバル設定を行います。区切り文字の置換トークンを定義できます。
Hooks 1
hook_name_widget_layouts
名前フィールドウィジェットのレイアウトオプションを追加するフック。カスタムレイアウト(インライン、グリッドなど)を定義できます。
Troubleshooting 4
名前フィールドの設定で「このフィールドでユーザーのログイン名を上書き」を有効にした後、パフォーマンスキャッシュ(/admin/config/development/performance)をクリアしてください。すべてのユーザーのキャッシュタグが無効化され、新しい表示名が反映されます。
フィールド設定の「敬称オプション」テキストエリアに追加のオプションを入力できます。README.mdには軍隊、宗教、学術などの包括的な敬称リストが記載されています。Taxonomyモジュールを使用している場合は、[vocabulary:vid]タグで語彙からオプションをインポートすることも可能です。
名前フォーマット編集画面の「Format string help」セクションを展開すると、すべてのトークン(t=敬称、g=名、f=姓など)、モディファイア(L=小文字、U=大文字など)、条件付き挿入(+=両側が空でない場合に挿入など)の詳細な説明が表示されます。
「最小コンポーネント」には必ず「名」または「姓」のいずれか(または両方)を含める必要があります。また、「有効なコンポーネント」で選択されていないコンポーネントを「最小コンポーネント」で選択することはできません。