...

понедельник, 13 января 2014 г.

Drupal 7 — Модуль подписки на новые материалы по email


сегодня в 14:04



Предисловие



Я знаю о существовании модулей SimpleNews, Notifications и т.д. Есть даже инструкции как это можно сделать с помощью существующих модулей. Мне кажется, слишком очень много нужно сделать, чтобы на сайте заработала простейшая рассылка по email. Решил немного исправить эту ситуацию. Модуль не претендует на оригинальность и гениальность. Хотелось сделать модуль простой в настройке и использовании.

Модуль Email Subscribe




Страница с настройками модуля:







Здесь можно настроить следующие параметры:


  • адрес email с которого будут приходить письма пользователям;

  • типы материалов, которые участвуют в рассылке;

  • интервал рассылки;

  • количество писем отправляемых за один запуск cron;

  • шаблоны писем для уведомления о новом контенте, подтверждения email, отмены подписки, возобновления подписки.




Страница со списком подписанных пользователей:




Алгоритм работы модуля




Есть таблица:

CREATE TABLE IF NOT EXISTS `email_subscribe_readed_nodes` (
`rn_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Field ID',
`rn_nid` int(10) unsigned DEFAULT NULL COMMENT 'Node ID',
`rn_sid` int(10) unsigned DEFAULT NULL COMMENT 'Subscribe user id',
`rn_status` smallint(6) NOT NULL DEFAULT '0' COMMENT '0-email don’t send, 1-email has been sented.',
`datechange` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Date of change',
PRIMARY KEY (`rn_id`),
KEY `rn_nid` (`rn_nid`),
KEY `rn_sid` (`rn_sid`),
KEY `rn_status` (`rn_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;





  • При подтверждении email или при создании нового материала эта таблица заполняется значениями с ID ноды и ID пользователя подписки.

  • При подтверждении email все материалы, опубликованные на данный момент для текущего пользователя, помечаются как прочитанные.

  • При создании материала, создаваемый материал помечается для каждого читателя не прочитанным.

  • При запуске cron отправляется email пользователям у которых есть непрочитанные материалы, и этот материал помечается прочитанным.




Интерфейс пользователя




Есть блок и страница с формой подписки. Ссылку в меню можно отключить потому, что, мне кажется, блок удобней. Блок по умолчанию отключен. Пользователь вводит адрес электронной почты и дальше есть несколько сценариев:


  • Если пользователь не был ранее зарегистрирован, ему на почту отправляется письмо с ссылкой на подтверждение email;

  • Если пользователь не подтвердил email, будет предложено заново подтвердить свой email;

  • Если пользователь подписан, будет предложено отменить подписку;

  • Если пользователь отменил подписку, будет предложено возобновить подписку.




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

Жду замечаний и предложений.


Модуль находится под лицензий BSD. Исходный код на Github и в песочнице на drupal.org.





Свежий взгляд

на бег


протестируй кроссовки

нового поколения




Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»




Возьми Lumia 925 на тест-драйв сейчас.




Впечатляющие возможности

в стильном тонком корпусе из металла




Boomburum

исследует LTE


Эволюция средств связи

в путешествии по России




Проблемы коммуникации внутри бизнеса?



Смотри бесплатные курсы

и выиграй Xbox




Нет времени

на счета?


MasterCard

Mobile



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий