Отправка emal с помощью Rules

Главные вкладки

Аватар пользователя Skerth Skerth 21 августа 2014 в 10:39

Всем привет!
Сейчас я с помощью VBO генерирую список "не актуальных" нод по дате добавления, затем через Rules обрабатываю его, меняю значение поля актуальности и делаю отправку E-mail автору материала. Соответственно, если человек добавил 10 материалов, ему отправится 10 емайлов.

Не хотелось бы спамить людей однообразными письмами.

Можете подсказать, как реализовать такую систему на рулесах:
Все неактуальные ноды конкретного человека добавляются в одно письмо и отправляются 1 письмом при запуске крон, и так для всех нод.

Комментарии

Аватар пользователя Koreychenko Koreychenko 21 августа 2014 в 11:50

Измените Views.

Фильтруйте не ноды, а пользователей, к каждому пользователю добавьте Связь (Relationship) "Материалы пользователя", а дальше в фильтре уже эти материалы фильтруйте по актуальности.

Плюс в настройках SQL запроса добавьте Уникальность (Distinct)

В итоге, вы получите список из пользователей которым нужно отправить письма.

Если вьюха сглючит и не сделает список пользователей уникальным, то вы можете его дополнительно предварительно обработать в рулезах (там есть action уникализировать список)

Аватар пользователя Skerth Skerth 21 августа 2014 в 11:59

Но так мы получим список пользователей.
А как получить список материалов не актуальных для этого пользователя, чтобы он в письме был? Воспользоваться вложенным views? Но это уже базу насиловать.

Аватар пользователя Koreychenko Koreychenko 21 августа 2014 в 12:16

А, ну в вопросе этого не было )

Тогда вас спасет модуль conditional views.

Получаете свой список просроченных нод. Проходитесь по ней циклом в рулзах и добавляете авторов в список (уникальный) пользователей.

Потом проходитесь в цикле по этому списку уникальных авторов. Для каждого автора проходитесь в цикле по общему списку нод и добавляете условие, что эта нода принадлежит ему. Если это так, то добавляете эту ноду в переменную.

В итоге вы получите переменную с автором и список нод, которые ему принадлежат.

Осталось только отправить письмо с этими параметрами. При этом вьюха будет только одна и запрос к базе будет только один.

Аватар пользователя Skerth Skerth 15 октября 2014 в 18:14

Сейчас опять занялся данной задачей.
Реализовал выборку объявлений, как посоветовали. Через рулез, для пользователей генерирую List объявлений. Все отрабатывает. А вот впихнуть данный список в текст не получается, позволяет только так добавлять элементы к тексту письма или сообщения: [my_list:0] [my_list:1] [my_list:2] и тд.
_______________________-
Задача решена путем добавления еще 1 цикла, который перебирает список и вычислят обычную текстовую переменную.