オートコンプリートウィジェットを含むエンティティ参照フィールドがある場合、オートコンプリートの選択肢に表示される情報にフィールドを追加する方法はありますか?デフォルトのフィールドはTitleのようですが、私の場合はあいまいかもしれません。
より簡単な解決策は、ノードエンティティの「ラベルコールバック」プロパティを変更することです。
function mymodule_entity_info_alter(&$entity_info) {
$entity_info['node']['label callback'] = '_mymodule_label_callback_set';
}
function _mymodule_label_callback_set($entity, $entity_type){
if($entity_type == 'node' && $entity->type == 'my_node_type'){
//Compute new label here
$label = 'test';
return $label;
}
}
選択エンティティ参照プラグインを作成する必要があります。あなたはentityreferenceモジュールのプラグインディレクトリの選択ディレクトリに例を見ることができます。
フィールドにのみ影響する非コーダーソリューションの場合:
あなたができることは、ビューからエンティティ参照リストを作成し、ウィジェットにビューを投入することです。
新しいビューを作成するブロックの作成を解除してページを作成し、[続行して編集]をクリックします。これでマスタービューが表示されます。
[追加]をクリックして新しい表示を追加し、エンティティ参照を選択します。ディスプレイにわかりやすい名前を付けます。フィールド/フィルターなどを追加し、必要に応じてそれらを注文します。私は通常、ページャーの下に表示するアイテムを変更してすべてのアイテムを表示しますが、これがどの程度必要かはわかりません。
[フォーマット]の横にある[フォーマット]見出しの下で、[設定]をクリックして、オートコンプリート時に検索するフィールドを設定します。 [表示]の横にある[書式]見出しの下で、[設定]をクリックし、フィールドをインラインに設定します。ビューを保存します。
次に、エンティティ参照フィールドを編集します。すでにフィールドがほぼ設定されていると仮定すると、変更が必要になる可能性がある唯一のビットは以下のとおりです。 「エンティティの選択に使用されるビュー」の下にドロップダウンが表示され、そこに新しく作成されたビューがリストされます。それを選択して保存します。
新しいエンティティを追加すると、フィールド参照にはビューに基づくエンティティのリストが含まれるようになります。
使用できるビューに「参照」表示を作成できます。これを作成した場合は、オートコンプリートフィールドに戻り、作成した参照表示を選択します。ただし、これにより、オートコンプリートボックスに表示されるテキストのみが変更されます。検索は引き続きノードのタイトルで行われます。