Продвинутый модуль рассылки/подписки
Запись от 28.05.2014
Итак, ТЗ кратко: на сайте есть группы (sections) с подгруппами (subsections), содержащими компании (elements), которые постят новости (news).
Авторизованные пользователи могут подписаться на группу, подгруппу или компанию (подписка на обновления разделов, компаний, новостей). В личном кабинете могут отредактировать подписки и выбрать интервал получения.
Все вновь зарегистрированные посетители автоматически подписываются на все разделы.
Ситуация такая: стандартный модуль рассылок не подходит - слишком прост, на marketplace готово модуля не нашел.
Вывод: делать самому.
Идея модуля такова: основа - две таблицы в БД:
Подписки (subscription):
Рассылки (delivery):
Всем прочитавшим: обращаю внимание, что это только концепция. Очень хотелось бы получить замечания, критику, советы от сообщества.
Авторизованные пользователи могут подписаться на группу, подгруппу или компанию (подписка на обновления разделов, компаний, новостей). В личном кабинете могут отредактировать подписки и выбрать интервал получения.
Все вновь зарегистрированные посетители автоматически подписываются на все разделы.
Ситуация такая: стандартный модуль рассылок не подходит - слишком прост, на marketplace готово модуля не нашел.
Вывод: делать самому.
Идея модуля такова: основа - две таблицы в БД:
Подписки (subscription):
- ID (key, ai) - id подписки;
- USER_ID - id пользователя к которому относится подписка;
- IBLOCK_ID - id инфоблока;
- SECTION_ID - id раздела на который оформлена подписка (необязательно);
- ELEMENT_ID - id компании на которую оформлена подписка (необязательно);
- SUBSCRIBE_ID - id рассылки (см. следующую таблицу);
- SUBSCRIBE (Boolean) - подписка оформлена или отклонена (на случай, если подписка на весь раздел кроме какой-то определенной компании).
Рассылки (delivery):
- ID (key, ai) - id подписки;
- USER_ID - id пользователя к которому относится рассылка;
- DATE_FROM - когда заведена рассылка;
- DATE_LAST - когда последний раз было отправлено письмо;
- PERIOD - число дней, с какой периодичностью рассылать письма;
- THEME_ID - id тематики(рубрики) рассылки (на всякий случай);
- DESCRIPTION - описание рассылки (на всякий случай).
Всем прочитавшим: обращаю внимание, что это только концепция. Очень хотелось бы получить замечания, критику, советы от сообщества.