Новая версия eSubscribes - модуля подписки/рассылки email новостей/статей

test

Самую свежую версию модуля вы можете скачать на этой странице.

Привет, читатель!

Pre

Вот в некоторой степени готова новая версия модуля eSubscribes. Не буду лукавить, баги наверняка присутствуют. Найдете, пишите, поправлю. Но, сильно изменилась структура модуля и есть приличные нововведения, ради которых стоит выпустить пока модуль хотя бы как есть, чтобы не тянуть еще месяц с его отладкой.

eSubscribes

eSubscribes - модуль подписки на новые материала сайта/модуль подписки на новости сайта.

Скачать модуль можно по ссылке: Ссылка.

Что было сделано:

  • Поправлены несколько багов, включая баг с подпиской/отпиской через блок с счетчиком подписавшихся.
  • Рефакторинг структуры модуля. Модуль разбит на файлы по функциональности
  • Новая возможность. Создание рассылки, выбор материалов для отправления в рассылке. Отправка самой рассылки подписавшимся.

Поправлены несколько багов, включая баг с подпиской/отпиской через блок с счетчиком подписавшихся.

Сам не помню что уже правил. Уточнить не могу )) много работы, всего не помню уже.

Рефакторинг структуры модуля. Модуль разбит на файлы по функциональности

Если вы скачали и распаковали модуль, вы видите что появились новые файлы.

  • esubscribes.info
  • esubscribes.install

Вам уже знакомы, особо в них ничего не изменилось.

  • esubscribes.module

- в нем теперь значатся только менюшки и подключение других файлов с функционалом модуля.

  • admin.php

- формы административной части

  • blocks.php

- соответственно названию - блоки.

  • mail.php

- функции отправки почты.

  • actions.php

- экш отправки рассылки при добавлении нового материала. Помните по прошлым статьям, как мы вешали этот экшн на триггер добавления нового материала?
Папочка core как и раньше хранит у нас подключение swift мейлера, ответственного за саму отправку.
Папочка template содержит HTML шаблон отправляемого письма. То есть да, теперь можно кастомизировать отправляемое письмо! Хотите чтобы письмо выглядело в соответствии с цветовой гаммой или схемой вашего сайта? Просто отредактируйте этот файл.

Как это работает?

Менюшки на сайте еще не доработал, не хватило времени, так что обьясню на пальцах пока:
/admin/config/esubscribes - ссылка для того чтобы можно было добавить новую рассылку или удалить старую.
/admin/config/esubscribes/add - здесь вы выбираете материалы и рассылку в которую их добавляет или удаляете и соответственно добавляете их или удаляете из выбранной вами рассылки. Добавлять материалы не обязательно, вы можете создать рассылку по ссылке выше и просто написать потом конкретное письмо. Добавленные материалы просто автоматически формируют li список с ссылками на добавленным в рассылку материалы и будут добавлены к телу письма, которое вы перед отправкой сможете отредактировать.
/admin/config/esubscribes/emails - тут вы можете просмотреть список ваших подписчиков.
/admin/config/esubscribes/send - выбираете отправляемую рассылку, жмете сабмит, во второй форме пишите email с которого якобы отправляете письмо(на некоторых хостингах отправка возможно только с существующего email-а), пишите тему рассылки(к примеру "еженедельные новости сайта", это будет темой письма), и редактируете тело самого письма. Если вы добавляли к рассылке какие-то ноды, они будут в li списке уже сформированными ссылками( Это поле будет передано в хтмл шаблон письма, и думаю очевидно что поддерживает html-теги).

Для чего нужна возможность создавать рассылки?

К примеру у меня на сайте могут публиковать(когда наваливается спам не могут) зарегистрированные пользователи. Но вот как-раз таки когда спам наваливается при первом варианте с экшном, происходит рассылка спама на почту подписавшихся. Для того чтобы такого не было мне проще самому создавать рассылку с анонсом новых материалов и отправлять. Более того у такой рассылки более широкие возможности.

Итог

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

P.S. В этом материале я не расписывал функции. Будут пожелания об комментировании кода напишу. Описание кода старой версии модуля, как и сам модуль прошлой версии можете найти в статье: Drupal 7: пишем собственный модуль подписки на рассылку по Email!

Категория: 
Share/Save

Комментарии

test

Протестировал немного модуль... В полном объёме,к сожалению, не удалось,
так как всё ровно письма на почтовый ящик приходить отказываются.
Ни по триггеру, ни по рассылки руками. Может быть, это из-за хостинга?
Может, есть какое-то оптимальное решение решение этого вопроса,
без привязки к серверу? Совсем не понимаю, как настроить Swift.
Заранее благодарен.

test

По поводу swift, его настройки все что нужны для отправки находятся в файле mail.php, в функциях esubscribes_send_emails_action() и sends_mails()
Таким образом можно настроить свифт на отправку не через sendmail, а через функцию php mail()

require_once 'lib/swift_required.php';
// Create the Transport
$transport = Swift_MailTransport::newInstance();
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport)

Остальные настройки swiftmailer можно найти тут.

Never Give UP!

test

На всякий случай перепробовал разные почтовые ящики на разных сервисах.
К сожалению, не помогло. А Ваша форма на сайте работает без проблем?
Письма приходят мгновенно?

test

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

Never Give UP!

test

Павел, Вы оказались правы - замена инстанса

$transport = Swift_SmtpTransport::newInstance('localhost', 25);
$mailer = Swift_Mailer::newInstance($transport);

на

$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);

в функциях esubscribes_sends_emails_action и sends_mails помогла.
Кстати, модуль eSubscribes по умолчанию на другом сайте с другим хостингом работал
без проблем. Видимо, моя проблема - это проблема отдельно взятого хоста.
Ещё раз спасибо. Ждём Ваших новых разработок. Успехов.

test

Спасибо =) В новой версии будет выбор инстанса в настройках модуля. Думаю пока буду этот модуль развивать до нормального состояния, потом на drupal.org постараюсь выложить. Возможно еще какие-то функции добавлю. =)

Never Give UP!

test

Было бы неплохо, чтобы по триггеру на email приходил HTML-шаблончик,
который актуален для отправки рассылки руками. Кстати, столкнулся ещё
с одной проблемкой. Не хочет удалять созданные рассылки. По нажатии
кнопки появляется сообщение "Эта форма устарела. Скопируйте все
несохраненные изменения и обновите страницу." Новые создаёт, а
удалять не хочет. И почему-то при рассылке по триггеру приходит сообщение
с ссылкой на корень сайта, а хотелось бы на саму ноду. Может, знаете,
как это можно исправить?

test

Да, я понял о чем вы. Постараюсь до конца недели выложить новую версию в которой поправлю баг с удалением рассылки, добавлю шаблон в рассылку по триггеру, возможно даже выбор шаблонов для отправки конкретной рассылки, к примеру если рассылка вручную использует отличный шаблон от рассылки по триггеру. Так же поправлю в рассылке по триггеру ссылку. В ближайшие два дня дедлайн по работе, после возьмусь за модуль.

Never Give UP!

Делитесь с друзьями в социальных сетях! Оставляйте комментарии!

Share/Save

Это Вам так же может быть интересно!