Вы здесь

Как регулярно поздравлять пользователей с днём рождения?

0

День Рожденья - поле ноды
почта, куда слать деферамбы - поле ноды
Как их поздравлять автоматически каждый год?

проекта ещё нет - в перспективе только
но данные в профиль нельзя запихивать

и ещё непонятно в каком формате правильнее дату (в паблике она недоступна) сделать?
год - не важен (можно отправить в топку), только месяц и день

Версия Drupal: 
7.x
Вопрос задан 10.11.2016 - 00:57
Аватар пользователя Pavel
Pavel
-47

Ответы

1

В hook_cron выбрать пользователей у которых сегодня день рождения. Отправить почту.

С чем у вас сложности?

Ответ дан 10.11.2016 - 01:02
Аватар пользователя xandeadx
xandeadx
1542

Если крон запускается больше чем раз в сутки, то пользователь получит несколько поздравлений.

Комментарий оставлен 10.11.2016 - 06:47

Запоминать дату последнего запуска, сравнивать перед отправкой.

Комментарий оставлен 10.11.2016 - 10:42

сложности - они изначально
я такого ещё не делал и как реализовать - ту же выборку дат из нод - пока не понимаю

ещё формат даты как - тоже под вопросом
год - всё-равно указывать не будут
формат ввода лучше типа 8 марта (месяц - выпадающий список)

что хоть примерно в hook_cron сочинять?... ))

Комментарий оставлен 10.11.2016 - 15:01
0

Можно для этой цели использовать модуль Rules (https://www.drupal.org/project/rules) - точнее, его субмодуль Rules Scheduler.

Настраиваете правило, где выбираете все ноды (к примеру, определенного типа). Далее в цикле проверяете соответствие текущей даты и даты в поле ноды - и если они совпадают, отправляете письмо на email из поля ноды.
Проверку можно реализовать либо в отдельном компоненте Rule, либо здесь же через Conditional Rules (https://www.drupal.org/project/rules_conditional).
В конце создаете запланированное задание, где запускается это же правило на следующий день (+1 day).

Все, теперь достаточно один раз запустить правило вручную, после чего оно будет выполнятся каждый день (по крону).

UPD: Возможен и более элегантный вариант - при создании ноды сразу добавлять в планировщик на необходимую дату (день рождения) правило по отправке письма. В конце правила так же запланировать его выполнение на следующий год (+1 year).

Ответ дан 10.11.2016 - 14:09
Аватар пользователя ALS
ALS
20

Интересный вариант.
Вот только ноды будет создавать "секретарша" и максимум асилит вбить дату и почту... ))

Комментарий оставлен 10.11.2016 - 14:53

Павел, секретарше больше ничего и не нужно.
Все рулсы настраиваются заранее.

Комментарий оставлен 11.11.2016 - 04:01