Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Компонент состоит из 3х объектов, которые хранятся в отдельных таблицах:
Sendex может полностью управляться в ручном режиме из админки.
Создаём рассылку:

Для нормальной работы обязательно нужно указать шаблон письма (один поставляется в комплекте), в котором вы можете вызывать любые сниппеты.
Подписываем пользователя:

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

Рассылка смотрит в список подписавшихся и генерирует для них письма, согласно своих настроек.
Отправляем:

Понятное дело, что основную часть работы можно автоматизировать, и кое-что для этого предусмотрено.
Сниппет очень простенький, и позволяет юзерам самостоятельно работать с подпиской: подписываться и отписываться.
Если пользователь авторизован, ему нужно просто нажать на кнопку. Если нет — ему нужно будет подтвердить свой email.
Также, если авторизованный пользователь уже подписан на рассылку — ему показывается кнопка для отписки. Анонимы смогут отписаться по ссылке из письма.
Сниппет — это просто пример логики работы, потому что все нужные методы содержатся в классе sxNewsletter и вы можете легко написать свой сниппет, с их использованием.
Объект sxNewsletter
После создания рассылки её можно получить через MODX API и вызвать генерацию писем:
Объект sxSubscriber ничего интересного не содержит. Разве что, уникальное поле code, при передаче которого в метод sxNewsletter::unSubscribe() юзер будет отписан от рассылки. Обратите внимание, что само наличие этого объекта — и есть подписка юзера. То есть, при отписке sxSubscriber удаляется.
Объект sxQueue
Таким образом, для отправки всех писем из очереди можно делать так:
Именно так и работает скрипт отправки писем по cron, который лежит в /core/components/sendex/cron/send.php.
Итак, вам нужно
Возможно, выглядит это немного сложновато, но на самом деле всё очень просто. Просто нужно понять логику и тогда вы сможете организовать любую рассылку, и автоматизировать её как захотите.
- sxNewsletter — объект подписки со всеми параметрами: тема, от кого, шаблон оформления и т.д.
- sxSubscriber — объект подписчик. Здесь обязательно есть email и id подписки. Если юзер был авторизован в момент подписки — то и его id.
- sxQueue — объект письма, стоящего в очереди на отправку со всеми свойствами.
Sendex может полностью управляться в ручном режиме из админки.
Создаём рассылку:

Для нормальной работы обязательно нужно указать шаблон письма (один поставляется в комплекте), в котором вы можете вызывать любые сниппеты.
Подписываем пользователя:

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

Рассылка смотрит в список подписавшихся и генерирует для них письма, согласно своих настроек.
Отправляем:

Понятное дело, что основную часть работы можно автоматизировать, и кое-что для этого предусмотрено.
Сниппет Sendex
Сниппет очень простенький, и позволяет юзерам самостоятельно работать с подпиской: подписываться и отписываться.
Если пользователь авторизован, ему нужно просто нажать на кнопку. Если нет — ему нужно будет подтвердить свой email.
Также, если авторизованный пользователь уже подписан на рассылку — ему показывается кнопка для отписки. Анонимы смогут отписаться по ссылке из письма.
Сниппет — это просто пример логики работы, потому что все нужные методы содержатся в классе sxNewsletter и вы можете легко написать свой сниппет, с их использованием.
Основные методы объектов
Объект sxNewsletter
- addQueues — проходит по своим подписчикам и добавляет для них письма в очередь
- checkEmail — отправка проверочного кода на email анонимного юзера
- confirmEmail — подтверждение email анонимного юзера
- Subscribe — подписка на рассылку любого юзера, по id или email
- unSubscribe — отписка от рассылки, по уникальному коду подписчика в sxSubscriber
- isSubscribed — проверка, подписан ли юзер на рассылку по email или id. Возвращает id sxSubscriber или 0.
После создания рассылки её можно получить через MODX API и вызвать генерацию писем:
$modx->addPackage('sendex', MODX_CORE_PATH . 'components/sendex/model/');
/** @var sxNewsletter $newsletter */
if ($newsletter = $modx->getObject('sxNewsletter', 1)) {
$response = $newsletter->addQueues();
if ($response !== true) {
echo $response;die;
}
}
Метод вернет true или текст ошибки.Объект sxSubscriber ничего интересного не содержит. Разве что, уникальное поле code, при передаче которого в метод sxNewsletter::unSubscribe() юзер будет отписан от рассылки. Обратите внимание, что само наличие этого объекта — и есть подписка юзера. То есть, при отписке sxSubscriber удаляется.
Объект sxQueue
- send — отправка письма. Если удачно — оно удаляется из очереди, если нет — выдаёт ошибку и остаётся для следующей попытки.
Таким образом, для отправки всех писем из очереди можно делать так:
$modx->addPackage('sendex', MODX_CORE_PATH . 'components/sendex/model/');
$q = $modx->newQuery('sxQueue');
$queue = $modx->getCollection('sxQueue');
/** @var sxQueue $email */
foreach ($queue as $email) {
$email->send();
}
Именно так и работает скрипт отправки писем по cron, который лежит в /core/components/sendex/cron/send.php.
Заключение
Итак, вам нужно
- Оформить шаблон, создать рассылку и указать его ей.
- Подписать юзеров вручную, или через сниппет.
- При наступлении како-то события или через api сгенерировать письма.
- Отправить письма по расписаниею через cron, или из админки
Возможно, выглядит это немного сложновато, но на самом деле всё очень просто. Просто нужно понять логику и тогда вы сможете организовать любую рассылку, и автоматизировать её как захотите.
1.1.3-pl
- [#32, #33] Added parameter &msgClass for placeholder [[+class]]
- [#31] Added messages for frontend
- [#30] Change phptype text to string
1.1.2-pl
- [#23] Added button for removing all letters from queue
1.1.1-pl
- Fixed modUserProfile getting on creating subscriber
1.1.0-pl
- Improved installation script for MODX 2.4.
1.1.0-rc
- UI improvements.
- Ability to add all users of the group to the newsletter.
- Added multiselect in all grids.
- Added subscribers count in newsletters grid.
- Added buttons to grids for touch devices.
- Added Font Awesome icons for MODX < 2.3.
- [#21] Compatibility with MODX 2.3.
- [#20] Added "send all" button to queues grid.
1.0.0-pl
- Added multiremoving and multisending
- [#11]Added $_GET's subscribed, unsubscribed, confirmed
- [#1] Fixed urls of images
1.0.0-rc2
- Various small fixes.
==============
- Fixed caching of template.
1.0.0-beta
- Initial release.
Последние обсуждения в сообществе MODX.pro