Как отправлять по электронной почте периодическую сводку помеченных узлов пользователям с определенной ролью?


Я хотел бы создать периодическое сводное электронное письмо, которое отправляется определенной роли.

Краткое электронное письмо будет включать такие вещи, как:

  1. помеченный контент /пользователи
  2. подсчет новых пользователей
  3. подсчитывать новые узлы
  4. наиболее просматриваемый контент
  5. помеченный контент /пользователи

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

Как бы вы подошли к этому?

Author: Pierre.Vriens, 2017-11-08

1 answers

Предполагая, что вы думаете о создании представления для такого помеченного контента/пользователей для (скажем) "текущего дня", есть решение, о котором вы спрашиваете. Это решение использует правила , Просмотры и Просмотры правил модуля, как более подробно описано ниже.

1. О модуле Правил просмотра

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

...предоставляет два типа элементов в Правилах , настроенных с отображением представления "Правила":

  • Цикл представлений: Цикл представлений аналогичен циклу обычных правил, но позволяет выполнять цикл по строкам результатов просмотра.

    enter image description here

  • Собирать строки результатов просмотра (действие): Это действие собирает каждую переменную во всех строках результатов просмотра в переменные списка для используйте в Правилах.

Наконечник: При выборе типа данных для переменных в представлении, если поле является идентификатором сущности (например, идентификатором узла), вы можете задать тип данных для типа сущности (т. е. Узла), чтобы напрямую использовать переменную в Правилах в качестве сущности!

2. Создайте представление типа отображения "Правила"

После включения модуля Правила просмотра используйте Представления для создания представления вашего "*помеченного контента/пользователей*" (как в ваш вопрос). Добавление вида типа отображения Rules ( важно, это ключ к тому, чтобы это сработало!). Вот как вы можете добавить такой дисплей:

enter image description here

Затем настройте переменные строки, используя ссылку с надписью "изменить информацию о поле", как показано здесь:

enter image description here

3. Создайте компонент правил, используя представление типа отображения "Правила"

Создайте компонент правил, используя следующие рекомендации:

  • Добавить любые условия правил, которые вам могут понадобиться (если таковые имеются).
  • Некоторые действия с правилами, которые вам обязательно нужно будет создать (добавить):
    • Create a variable, без начального значения, скажем, вы назовете его "Сводка по электронной почте" (имя машины email_summary), которое будет использоваться в последующих действиях с правилами.
    • Add a Views loop ( используя ссылку с надписью Add view loop) и выберите отображение "Правила", созданное на предыдущем шаге. Настройте параметры и имена переменных. И для каждого результата просмотра, содержащегося в вашем Цикл просмотров (о некотором "помеченном контенте/пользователе", как в вашем вопросе), выполните действие правил, например Set a data value, для переменной email_summary из предыдущего действия Правил. Фактическое значение, которое необходимо присвоить, - это предыдущее значение email_summary, к которому вы добавляете нужные данные о обрабатываемых результатах просмотра. Для этого вы можете использовать переменные, которые вы настроили в конце предыдущего шага (возможно, вам придется вернуться к предыдущему шагу, чтобы добавить туда больше похожих переменных, если необходимо).
    • Добавьте действие Правил в Send an eMail to a selected role ( в соответствии с вашим "периодическим сводным электронным письмом, которое отправляется определенной роли"), в то время как для тела этого электронного письма вы просто используете значение переменной email_summary.

Если вы недостаточно знакомы с правилами для создания и заполнения этой переменной email_summary, вы можете взглянуть на пример правил, приведенный в мой ответ на " Как объединить все значения токенов списка в одном поле в цикле правил?", в котором используется аналогичная переменная.

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

4. Запланируйте компонент Правил для ежедневного выполнения

Убедитесь, что у вас включен "Планировщик правил" (подмодуль Правил).

Улучшите свой компонент Правил по сравнению с предыдущим шагом, добавив действие Правил (в качестве последнего выполняемого действия) в Schedule a Rules Component, в то время как фактический Компонент Правил, который должен быть запланирован, - это сам компонент Правил. Вы хотите, чтобы это было запланировано "через 1 день" (чтобы это происходило ежедневно).

Чтобы выполнить этот компонент Правил в первый раз, просто выполните свой компонент правил "вручную". Для этого используйте ссылку "выполнить" справа от компонента "Правила" (в пользовательском интерфейсе "Правила").

Предполагая, что ваше тестирование качества прошло успешно, и предполагая, что ваши задания cron также выполняются, электронное письмо должно быть создано при следующем запуске cron (через некоторое время, в зависимости от времени, которое вы настроили в своем компоненте правил, чтобы перенести его).

PS: Выше приведен "Пункт № 1" вашего вопроса, хотя было бы неплохо использовать аналогичный подход для других пунктов вашего вопроса.

 1
Author: Pierre.Vriens, 2017-11-22 12:33:46