Drupal 8では、メッセージモジュールとメッセージサンプルサブモジュールをアクティブにしました。
これらは、新しいコメントが作成されたときにメッセージを作成するためにテンプレートに追加したフィールドです。
メッセージの内容です。
1)[message:node-title]
2)[message:field_node_reference:entity:title]
これらは、使用可能としてリストされているトークンです。
[message:node-title]
は親ノードのタイトルから置き換えられますが、[message:field_node_reference:entity:title]
は置き換えられません。どうして?
_[message:field_node_reference:entity:title]
_は、example_create_commentメッセージテンプレートの場合、field_node_referenceフィールドは、有効なノード参照が含まれています。
実際、Message exampleモジュールは次のコードを使用して_[message:node-title]
_トークンの値を返します。 ( message_example_tokens() を参照してください。)
_ case 'node-title':
if ($message->bundle() == 'example_create_comment') {
$replacements[$original] = $message->field_comment_reference->entity->getCommentedEntity()->label();
}
else {
$replacements[$original] = $message->field_node_reference->get(0)->entity->label();
}
break;
_
メッセージバンドル(メッセージテンプレート)がexample_create_commentの場合、field_comment_referenceフィールド($message->field_comment_reference->entity->getCommentedEntity()->label()
)、他のメッセージテンプレートに使用されるfield_node_referenceフィールドではありません。
_[message:field_node_reference:entity:title]
_トークンがTokenモジュールから追加され、コンテンツエンティティが持つ各フィールドのトークンが追加されます。 (Messageはコンテンツエンティティであり、Messageテンプレートはそのバンドルです。)トークンモジュールは、別のfield_node_referenceフィールドに有効な参照が含まれていない場合に使用するフィールド。トークンは置き換えられません。
いずれにしてもノードのタイトルを取得したい場合は、_[message:node-title]
_トークンを使用する必要があります。