Как мне создать отчет в Drupal, который будет отправляться по электронной почте каждый месяц?

У меня настроено представление о том, что я хочу получать по электронной почте мне (или кому бы то ни было, что унаследует мою позицию в будущем), аналогично тому, как отправляется отчет об обновлении по электронной почте.

Это представление все настроено и извлекает данные, которые мне нужны. У меня также есть внешний cron, который может запускать любую ссылку, с которой я говорю (например, внешнюю ссылку cron), так что я могу сделать ежемесячный запуск, если дать ссылку для вставки. Часть, которую я не могу понять, что делать как настроить это для отправки по электронной почте или как получить ссылку для запуска через внешнее задание cron / настроить запуск через внутренний cron первого числа месяца

1

Решение

У вас может быть больше решений здесь, в конце концов, вам решать, что подходит вам лучше:

  1. В пользовательском модуле я бы реализовал hook_cron (). В этом крюке я
    будет выполнять вид, который я хочу (это не сложно, дайте мне знать, если вы
    нужна помощь здесь), а затем просто по электронной почте весь вывод (я думаю,
    это то что ты хочешь). Теперь вы хотите, чтобы это письмо было отправлено
    только один раз в месяц. Для этого у вас может быть две возможности:

    • обработайте это в своем хроне cron: в основном вы сохраняете последний раз, когда отправляете почту в переменную (используя variable_set / variable_get), и если вы отправили ее в прошлом месяце, то это означает, что вы должны отправить ее снова, поэтому вы сначала обновляете Переменная, вызовите представление, подготовьте вывод и отправьте его по почте.
    • есть модуль elysia_cron: https://www.drupal.org/project/elysia_cron который вы можете настроить так, чтобы каждый крючок cron на вашем сайте работал только в определенное время (так же, как вы настраиваете crontab).
  2. Другое решение состоит в том, чтобы иметь конечную точку на вашем сайте, а не
    hook_cron (), который в основном сделал бы то же самое, что и в предыдущем
    Решение: вызовите просмотр и отправьте письмо. Разница в том, что
    вы можете настроить свой crontab для вызова этого URL в любое время,
    поэтому никакой специальной конфигурации не требуется. Еще одна вещь здесь:
    доступ к этой конечной точке. На мой взгляд, это должно быть как-то
    ограничено, но потому что вы не можете наложить ограничение на основе
    роль пользователя (ваш cron просто вызовет конечную точку как анонимный пользователь),
    Вы должны найти другое решение (либо токен, добавленный к
    url, или, может быть, enpoint можно вызвать с определенного ip,
    так далее..). Это основная причина, почему я предпочитаю hook_cron (), потому что
    это лучше подходит для Drupal.

Я разработчик Drupal, так что я бы в этом конкретном случае номер 1)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]