Cotonti - Рассылки

Cotonti - Рассылки

Модуль рассылок для CMF Cotonti.

Тип: Модуль
Версия: 1.0
Совместимость: Siena

GitHub: https://github.com/Alex300/subscribe

 

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

 

Системные требования и ограничения:

  • Наличие на Вашем сайте установленной библиотеки cotonti-lib версии 1.5 (именно 1.5 а не 2)
  • В качестве шаблонизатора используется View
  • Административная часть модуля сделана под панель управления Cpanel. Если Вы используете стандартную панель администратора Cotonti, Вам нужно переопределить соотвествующие шаблоны.

 

Установка:
- Скопировать модуль на сервер или склонировать репозиторий в папку modules/subscribe
- Установить модуль из панели администратора
- В папке inc установить права на запись на файл 'queue.txt'
- Создать рассылки в панели администратора
- Создать задание для cron для отправки писем (см. ниже)

 

Возможности:
   - Создание различных рассылок на Вашем сайте
   - Ручное и автоматическое создание контента рассылки
   - Ручное добавление подписчиков администратором
   - Форма подписки на любую рассылку на Вашем сайте для пользователей
   - Использование очереди отправки, чтобы распределить нагрузку на сервер при выполнении рассылки
   - Подтверждение электронного адреса для незарегистрированных пользователей

 

Создание рассылки:
Рассылки создаются в панели управления. Вы можете настроить получение контента по некоторому URL-адресу (если какой то из установленных у Вас модулей предоставляет соответствующий функционал) или добавить контент вручную.

Также Вы можете настроить шаблон для каждой рассылки. Это дает большие возможности по формированию контента рассылки. В шаблонах Вы можете использовать любые виджеты, например pagelist.

Шаблоны именуются по такому принципу: subscribe.mail.<alias>.php, где alias - это алиас, назначенный данной рассылке.

 

Пример фрагмента шаблона ежедневной рассылки новостей:

$begin = strtotime(date('Y-m-d 00:00:01', cot::$sys['now'])); // Начало суток
$condition = "page_state=0 AND page_begin >= {$begin} AND (page_expire = 0 OR page_expire > ".
    cot::$sys['now'].")"

?>
<div style="width: 800px; margin: 0 auto 20px auto">
    <h1 style="font-size: 36px">
        <a href="<?=cot::$cfg['mainurl']?>"><img src="<?=cot::$cfg['mainurl']?>/themes/your-theme/img/logo-small.png"></a>
        Новости от <?=cot::$cfg['maintitle']?>
    </h1>
    <div style="margin-top: 20px">
        <?=pagelist('pagelist.subscribe.daily_news', 0, 'page_begin DESC',  $tools_condition)?>
    </div>
    <?php 

    // Выводим тект рассылки, добавленный в админке
    echo $this->text;?>
</div>

В этом примере используется виджет плагина pagelist для формирования списка новостей за день. А ниже выводится текст, добавленный в админке.

 

Создание заданий Cron:
Рассылки могут рассылаться пользователям как за "один раз" так и при помощи очереди. Последний вариант предпочтительнее т.к. при большом количестве получателей позволяет распределить нагрузку на сервер в течение дня.

Указывая в настройках модуля количество писем, отправляемых из очереди за один раз ставьте такое значение, чтобы в конце суток у Вас очередь оказалась пустой. Иначе письма в очереди станут накапливаться.

Независимо от выбранного способа отправки Вам необходимо в cron добавить следующее задание:

# Выполняется в 0:10, 2:10, 4:10 и т. д.
10 */2 * * *  php /path/to/your/site/cli.php --a subscribe.main.run > /path/to/your/site/log/subscribe.log

Пути к файлам следует изменить на нужные.

Сделать это можно из консоли, выполнив следующую команду:

crontab -e

Если на Вашем хостинге нет доступа к командной строке, то используйте те инструменты, которые предоставляет Ваш хостер.

 

Для запуска обработчика очереди, добавьте в cron задание:

# Выполняется каждые 30 минут
*/30 * * * *  php /path/to/your/site/cli.php --a subscribe.main.runQueue > /path/to/your/site/log/subscribeQueue.log

 

Разное:

http://<ваш_домен>/subscribe - активные периодические рассылки. Авторизованные пользователи могут на них подписаться

cot_url('subscribe', array('m'=>'user')) - мои подписки пользователя
cot_url('subscribe', array('m'=>'user', 'uid'=1)) - подписки пользователя с id=1

 

GitHub: https://github.com/Alex300/subscribe


 
Автор: Alex
Опубликовано: Alex
Комментарии: (0)
Рейтинги:  
0

Комментарии:


Комментарии отсутствуют

Оставить комментарий:

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

* Для редактирования комментария осталось 15 минут