Я использую Drupal 8.1 с правилами 8.x-3.0-alpha1.
Я хочу создать правило для отправки электронного письма автору узла при публикации нового комментария на этом узле. Проблема в том, что я не получил адрес электронной почты автора с правилами, потому что набор данных дает мне только эти значения: @ node.node_route_context: узел или комментарий, но в комментарии я не нашел ничего похожего на comment: node: author. В 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
Надеюсь, это поможет, я оставляю предыдущий ответ ниже, если это поможет кому-то еще.
Предыдущий ответ
* Как правило, в правилах для использования значения поля правило должно сначала специально проверить наличие поля (то есть, что поле имеет значение в контексте, в котором выполняется правило). Если вы еще не пробовали это, вы можете попробовать добавить в правило условие «Entity has field», чтобы проверить наличие адреса электронной почты. Это должно затем выставить токен для поля.
У меня были похожие проблемы при выполнении правил с использованием отношений сущностей (что более или менее то же самое, что вы делаете, ссылаясь на автора из узла), проверяя наличие поля (в вашем случае, скорее всего, проверяйте, что сущность имеет автор (это должно открыть доступ к объекту пользователя), затем проверка объекта пользователя, чтобы убедиться, что у него есть адрес электронной почты), открыл доступные маркеры поля от ссылочной сущности. *
источник
В очереди выпуска правил, которая была опубликована в ноябре 2016 года, есть рабочий пример, так что это стало возможно, по крайней мере, с тех пор. См. Https://www.drupal.org/project/rules/issues/2828422.
Вот немного измененная версия этого ответа. Вы можете импортировать это на свой сайт и посмотреть на него в пользовательском интерфейсе, чтобы узнать, как настроить эту функцию.
источник