У меня есть блог на английском и японском языках в Drupal 7. Я создал этот блог, используя собственный тип контента и представления, а не встроенный модуль блога.
У меня есть RSS-канал (сделано в представлениях) для каждого языка. Я хотел бы разрешить пользователям подписываться на получение всех обновлений на английском языке для типа контента "блог" или всех обновлений на японском языке для типа контента "блог". (Я предполагаю, что большинству пользователей нужен только один или другой язык. Если пользователь действительно хочет оба языка, я не против заставить их подписаться дважды).
Я рассмотрел использование Feedburner в каналах RSS, но модуль Feedburner не обновлялся для D7, и я бы не стал полагаться на внешний сервис. (Когда я попытался настроить Feedburner без модуля, он сказал, что моего RSS-канала не существует, хотя ссылка на службу поддержки позволила мне его проверить.)
Я также посмотрел на модуль Simplenews , но этот модуль, очевидно, требует создания каждого поста рассылки отдельно. То, что я хочу сделать, это автоматически подписываться по электронной почте пользователей, когда я публикую обновление в блоге.
Я уверен, что есть много способов сделать это, но есть так много модулей типа «mail helper», что я не знаю, с чего начать.
Подводя итог моим требованиям, я хочу:
- Автоматически отправлять по электронной почте подписчикам при добавлении нового сообщения в блог на соответствующем языке.
- Как аутентифицированные, так и анонимные пользователи должны иметь возможность подписки.
- Подписки должны требовать подтверждения (законное требование).
- Совместимость с модулем MIME Mail была бы хорошим бонусом.
Это можно легко приобрести. Я могу дать вам несколько шагов для подражания.
На самом деле есть как минимум 2 способа добиться этого
А. Использование триггеров (основной модуль)
Сначала активируйте основной модуль Триггеры. Это обеспечит вас основными триггерами (в вашем случае триггером UPDATE) и действиями, которые будут выполняться при выполнении условия.
Выберите «Администрирование»> «Конфигурация»> «Действия», затем СОЗДАЙТЕ РАСШИРЕННОЕ ДЕЙСТВИЕ, затем выберите «Отправить по электронной почте». В поле получателя вам нужно выбрать правильный токен, предоставленный модулем simplenews, чтобы соответствовать всем зарегистрированным пользователям. (убедитесь, что у вас также установлен модуль Token)
Перейдите в Admin> Структура> Триггеры, затем вкладка Узел. Выберите третий: TRIGGER: ПОСЛЕ СОХРАНЕНИЯ ОБНОВЛЕННОГО СОДЕРЖАНИЯ.
Если вам нужно больше контроля, тогда используйте крючок
function YOURMODULE_trigger_info_alter (& $ triggers) {// Здесь dpm ($ triggers), чтобы увидеть, где находится ваш триггер обновления, и внести изменения. }?>
Б. Использование правил (модуль contrib) Basic тоже самое. Если вы застряли, выполните следующие действия по аналогичной проблеме в этом блоге: http://adellefrank.com/blog/how-to-email-notifications-comments-drupal7
источник
Модуль Simplenews делает все, что вам нужно. Можно настроить так, чтобы каждое ваше сообщение в блоге автоматически становилось новостной рассылкой и отправлялось подписчикам. Просто в конфигурации Simplenews выберите тип контента Блог, чтобы быть источником рассылки.
Чтобы сделать это:
источник
Если вы хотите сделать это программно, посмотрите drupal_mail ($ module, $ key, $ to, $ language, $ params = array (), $ from = NULL, $ send = TRUE) ,
Когда узел обновляется, зацепка hook_node_update ($ node) будет запущена. Если вы хотите создать собственный формат составленной почты, используйте hook_mail ($ key, & $ message, $ params) . Таким образом, вы должны написать 2 хука сначала hook_node_update и hook_mail. Внутри hook_node_update вы должны написать функцию drupal_mail, которая будет вызывать вашу hook_mail.
источник
Вы можете использовать мой модуль песочницы Total Subscription
Этот модуль находится в очереди проекта drupal. Вот ссылка для этого: - ССЫЛКА
Я думаю, что это даст функциональность, которая вам требуется.
источник