Создание компонентов

Первый курс по созданию компонентов для MODX.

Сниппет Sendex и формы подписки\отписки

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

Нам нужено организовать возможно самостоятельной работы авторизованным пользователям с подписками. Определяем минимальный функционал:

  1. Вывод формы подписки на определенную рассылку — её мы укажем по id
  2. Если юзер уже подписан — тогда показываем форму отписки
  3. При том и другом действие происходит отправка писем с кодом, для подтверждения
  4. При переходе по коду, его ловит плагин и выполняет что нужно
Для сниппета мы будем использовать pdoTools. Во-первых, это быстро и удобно, а во вторых велика вероятность, что он уже установлен на сайте. Если же нет — нужно предусмотреть и автоматическую установку, при инсталляции пакета.

Читать дальше

Самостоятельная подписка\отписка пользователя

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

Для этого нужно будет добавить новое поле code в объект sxSubscriber (для ссылки «отписаться от рассылки»), прописать в классе sxNewsletter новые методы для проверки почты и подписки\отписки и добавить обработку этих действий в сниппет Sendex.

В общем, ничего интересного, обычное программирование на PHP.

Читать дальше

Рассылка по расписанию

Последнее занятие будет самым коротким. Неожиданно обнаружилось, что мы уже всё сделали, и осталось только добавить скрипт отправки писем по расписанию.

На всякий случай напоминаю алгоритм работы компонента:

  1. Создаём рассылку и указываём ей свойства. Обязательно указать шаблон или сниппет.
  2. Добавляем пользователей (или они добавляются самостоятельно, через сайт)
  3. На странице очереди писем добавляем новые, путем выбора рассылки. В зависимости от того, что в ней указано, текст письма генерируется сниппетом или шаблоном.
  4. Отправляем письма. Можно вручную, из админки, или скриптом, по расписанию.
Всё, кроме скрипта мы уже сделали.

Читать дальше