Настройка подписки на новые материалы нескольких типов

Главные вкладки

Аватар пользователя Tigger Tigger 22 сентября 2017 в 14:43

Добрый день.

Суть задачи. Через newsletter rules и прочее - легко настраивается возможность отправлять рассылки.
На сайте отсутствует регистрация для пользователей. Соответственно нет личного кабинета, где размещается кнопка оформления подписки.

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

Как я понимаю, это никак не получится, без заведения пользователя в друпал, то есть подобная форма, не будь она названа как "подписка", несет в себе функционал "регистрация". и для того, чтобы потом отписаться - пользователь должен будет входить в свой лк и там отжимать галку. + для введения его имени в шаблон рассылки видимо, тоже необходим лк. Я правильно понимаю? или можно как-то сделать это другим путем?

Очень хотелось бы завязать данный опционал не на регистрацию, а на вебформ..

Комментарии

Аватар пользователя Tigger Tigger 22 сентября 2017 в 15:16

у меня проблема отлично решается через регистрацию, но если есть более детально подходящее решение, мне нужно понять как этого достичь

Аватар пользователя ХулиGUN ХулиGUN 22 сентября 2017 в 15:23

Расссылки, считаю, далеко не универсальный функционал и механика работы с ними полностью зависит от архитектуры бд и бизнес логики самих рассылок. Если интересно, могу более подробно осветить данную тему

Аватар пользователя Tigger Tigger 22 сентября 2017 в 15:26

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

Аватар пользователя Tigger Tigger 22 сентября 2017 в 15:34

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

Аватар пользователя ХулиGUN ХулиGUN 22 сентября 2017 в 16:11
1

Тут немаловажный момент по какому принципу будет идти рассылка. По событию добавления новой новости или же, например еженедельные дайджесты... В первом случае всё достаточно просто и прозрачно - вешается сигнал на публикацию материала, который по таблице ищет подписчиков по типу и рассылает им сообщение, и таблица в таком случае может содержать только поля мыла подписчика и тип контента на который он подписан, если подписан на несколько, то это 2 разные записи в бд с одним email и разными типами...
С недельными дайджестами сложнее ибо выборка юзеров идёт не по типу, а по юзерам и для каждого юзера получается нужна своя выборка с материалами. Поэтому структура таблицы будет зависить от сложности классификации материалов сайта... Например один пользователь может подписаться на IT новости, а другой только на IT->Drupal. В таких случаях я бы воспользовался каким нить байткодом по которому можно было бы спокойно фильтровать контент.

Так же не маловажную роль в этом являются очереди рассылок, потому как можно отправить единый текст для всех и в поле указать список получателей и тогда получатель будет видеть кому ещё было разослано это письмо. Или можно отправлять отправлять персональные письма каждому подписчику, но тогда нужно контролировать отправку, кому письмо отправлено, кому ещё нет, ошибки отправления, прочитано адресатом или нет, etc. Из всего этого формируется вторая таблица в бд с очередями.
Что касается отписок, то тут всё просто, генерация токена по email путём хеширования + соли какие нить, у себя проверяем email + token и если всё ок чистим свою табличку подписчиков по этому email

Аватар пользователя DivaDii DivaDii 22 сентября 2017 в 23:52
1

Есть не Друпал-путь.

Внешние сервисы для е-мейл рассылок.
Например, sendpulse.com
Но там надо создавать рассылку вручную.

Либо вообще feedburner - просто загнать рсс-ленту. И поставить на сайт манюсенькую форму для подписки на рсс-рассылку.

Может, этого будет достаточно. Если не хотите делать кабинет и пр.