Всем привет!
На форуме есть специалисты по Rules?
Задача. Послать письмо пользователю после того, как админ изменит в его профиле чекбокс.
Событие: After updating a user
Условие: эээ... какое?
Пробовал там ставить "Data comprassion" (Сравнение данных), но полей из профиля пользователя там нет.
Понимаю, что можно использовать флаги либо ввести еще одну роль, но все равно интересно может ли быть условием изменение конкретного поля в профиле?
Комментарии
Тебе любой скажет, что на Д8 проще пару строк кода написать
Сравнивай предыдущее, не измененное значение, чтоб было разчекнуто, и обновленное, чтоб было чекнуто.
А как это в Rules называется?
Спросить быстрее чем посмотреть?
Я просто не вижу, где там даже выход на конкретное поле в профиле пользователя, не говоря уже о проверке чекнутости.
В 7мых рулзах нужно было сначала добавить проверку, либо на бандл, либо на наличие полей, для того чтоб получить доступ к данным поля.
Единственное что я понял сейчас: D8 Rules не имеет выход на поля. А чтоб имел нужно либо патчи ставить либо доп модули.
Более того последняя желтая версия Rules убивает настройки блоков. Поставил красную.
Попробовал сделать через flag
Создал правило
Events
After saving a new flagging of type Favorite user
Conditions
None
Actions
Send email
Parameters: to: [{{flagging.uid.entity.mail}}]…
Письмо приходит администратору. А нужно пользователю.
Если я выбираю flagging.flagged_entity.entity.uid.entity.mail — письмо никому не приходит.
В логах
Successfully sent email to {{flagging.flagged_entity.entity.uid.entity.mail}} - т.е. в нужный имейл токен не конвертируется.
Для варианта, когда нужно производить действие на основании флагов в профиле пользователя товарищ drupalfan79 с орга написал модуль https://www.drupal.org/project/rules_flag
Если кому-то схожая тема инетересна - пишите. Можно даже в issue rules и rules_flag.
Вообще пока D8 Rules сложный для понимания мышекликера.