Отправка emal с помощью Rules
21 августа 2014 в 10:39
Всем привет!
Сейчас я с помощью VBO генерирую список "не актуальных" нод по дате добавления, затем через Rules обрабатываю его, меняю значение поля актуальности и делаю отправку E-mail автору материала. Соответственно, если человек добавил 10 материалов, ему отправится 10 емайлов.
Не хотелось бы спамить людей однообразными письмами.
Можете подсказать, как реализовать такую систему на рулесах:
Все неактуальные ноды конкретного человека добавляются в одно письмо и отправляются 1 письмом при запуске крон, и так для всех нод.
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Измените Views.
Фильтруйте не ноды, а пользователей, к каждому пользователю добавьте Связь (Relationship) "Материалы пользователя", а дальше в фильтре уже эти материалы фильтруйте по актуальности.
Плюс в настройках SQL запроса добавьте Уникальность (Distinct)
В итоге, вы получите список из пользователей которым нужно отправить письма.
Если вьюха сглючит и не сделает список пользователей уникальным, то вы можете его дополнительно предварительно обработать в рулезах (там есть action уникализировать список)
Но так мы получим список пользователей.
А как получить список материалов не актуальных для этого пользователя, чтобы он в письме был? Воспользоваться вложенным views? Но это уже базу насиловать.
А, ну в вопросе этого не было )
Тогда вас спасет модуль conditional views.
Получаете свой список просроченных нод. Проходитесь по ней циклом в рулзах и добавляете авторов в список (уникальный) пользователей.
Потом проходитесь в цикле по этому списку уникальных авторов. Для каждого автора проходитесь в цикле по общему списку нод и добавляете условие, что эта нода принадлежит ему. Если это так, то добавляете эту ноду в переменную.
В итоге вы получите переменную с автором и список нод, которые ему принадлежат.
Осталось только отправить письмо с этими параметрами. При этом вьюха будет только одна и запрос к базе будет только один.
Идея. Спасибо)
Views Conditional что он должен делать?
Может есть документация по нему какая?
Пардоньте, описАлся
)) Т.е. мне вьюху трогать не надо. А надо нормально настроить правило?
Сейчас опять занялся данной задачей.
Реализовал выборку объявлений, как посоветовали. Через рулез, для пользователей генерирую List объявлений. Все отрабатывает. А вот впихнуть данный список в текст не получается, позволяет только так добавлять элементы к тексту письма или сообщения: [my_list:0] [my_list:1] [my_list:2] и тд.
_______________________-
Задача решена путем добавления еще 1 цикла, который перебирает список и вычислят обычную текстовую переменную.