私はDrupal 8.1をルール8.x-3.0-alpha1で使用しています。
このノードに新しいコメントが投稿されたときに、ノードの作成者にメールを送信するルールを作成します。問題は、データセットから次の値しか得られないため、ルール付きの著者の電子メールアドレスを取得できなかったということです。 Drupal 7にこのデータがあります。Drupal 8で何をする必要がありますか?
回答を更新しました
Drupal 8(ルール付き)(Alpha 2)の新規インストールでこれをテストしている間に、データのテスト中に、これのテストを成功させないバグに遭遇しました以下のセレクターは正しいです。現在、ワーキングルールを再現できません。
バグレポートはこちら: https://www.drupal.org/node/2770291 -この問題を要約するには、ルールはTO:パラメータが配列であり、文字列を返すメールアドレストークンを渡すとエラーがスローされます。
私の最初の答えはDrupal 7に当てはまりますが、Drupal 8の場合、状況はより単純に見え、まだ十分に文書化されていない単一の事実に依存します。
D7では、次のような構文に精通しています:comment:node:author:mail
D8では、同じセレクタ(機能します)はcomment.entity_id.entity.uid.entity.mail.value
です。
これが役に立てば幸いです。他の誰かを助ける場合に備えて、前の回答を残しておきます。
前の回答
*一般に、フィールドの値を使用するルールでは、ルールはまずフィールドの存在を具体的に確認する必要があります(つまり、ルールが実行されているコンテキストでフィールドに値があることを確認します)。これをまだ試していない場合は、「エンティティにフィールドがあります」条件をルールに追加して、メールアドレスの存在を確認してみてください。これにより、フィールドのトークンが公開されます。
私は、フィールドの存在をチェックするエンティティ関係(ノードから作成者を参照することで多かれ少なかれ行っています)を使用してルールを実行する同様の問題を抱えていました(多くの場合、エンティティに作成者(これはユーザーオブジェクトへのアクセスを開く必要があります)、次にユーザーオブジェクトに対してチェックを行い、電子メールアドレスがあることを確認します)参照されたエンティティから利用可能なフィールドトークンを開きました。*
2016年11月に投稿されたルール発行キューには実用的な例があるため、少なくともそれ以降は可能です。 https://www.drupal.org/project/rules/issues/2828422 を参照してください
その答えを少し変更したバージョンを以下に示します。これをサイトにインポートしてUIで確認し、この機能の構成方法を学ぶことができます。
langcode: en
status: true
dependencies: { }
id: 'email_node_author_on_new_comment'
label: 'Email Node Author on New Comment - Issue 2828422'
events:
-
event_name: 'rules_entity_insert:comment'
description: 'Sends email to Node Author when a New Comment is added.'
tags:
- node
- email
- comment
config_version: '3'
expression:
id: rules_rule
uuid: b5276280-d0f2-4f64-9512-06f077793c58
conditions:
id: rules_and
uuid: ebf212fc-d858-417d-977d-af1be2cfd886
conditions: { }
actions:
id: rules_action_set
uuid: 88a78280-2bca-4367-a4d3-8bbda9397c2a
actions:
-
id: rules_action
uuid: 5e6e5aed-b75f-412a-9670-48327eb58ba6
context_values:
to:
- '{{ comment.entity_id.entity.uid.entity.mail }}'
subject: 'Your content {{ comment.entity_id.entity.title }} has a new comment.'
message: 'Your content {{ comment.entity_id.entity.title }} has a new comment.'
reply: ''
language: ''
context_mapping: { }
context_processors:
to:
rules_tokens: { }
subject:
rules_tokens: { }
message:
rules_tokens: { }
reply:
rules_tokens: { }
language:
rules_tokens: { }
provides_mapping: { }
action_id: rules_send_email