Задача — с помощью Simplenews периодически рассылать списки новых материалов, появившихся на сайте.
Для решения понадобятся модули Simplenews, Simplenews Scheduler, Views и PHP filter (в ядре).
-
Создаём представление
new_nodes
без дисплеев и без фильтров: - Создаём новую рассылку с форматом ввода PHP code и кодом:
<?php $prev_send_timestamp = variable_get('new_nodes_prev_send_timestamp', 0); $send_timestamp = variable_get('new_nodes_send_timestamp', time()); $view = views_get_view('new_nodes'); $view->set_display('default'); $view->add_item($view->current_display, 'filter', 'node', 'created', array( 'operator' => 'between', 'value' => array( 'min' => format_date($prev_send_timestamp, 'custom', 'Y-m-d H:i:s'), 'max' => format_date($send_timestamp, 'custom', 'Y-m-d H:i:s'), ), )); $view->execute(); echo $view->preview('default'); ?>
- В вкладке Newsletter выбираем пункт Send newsletter according to schedule, указываем Sending interval (интервал рассылки) и Interval frequency (частота интервала). В поле Additionally only create newsletter edition if the following code returns true пишем код:
variable_set('new_nodes_prev_send_timestamp', variable_get('new_nodes_send_timestamp', 0)); variable_set('new_nodes_send_timestamp', time()); return TRUE;
Profit.
Вместо PHP кода можно использовать модуль, вставляющий отрендеренное представление в текст — Views Insert.
Способ рассылки новых материалов с помощью Simplenews и Rules.
Написанное актуально для
Simplenews 7.x-1.x
Похожие записи
- Рассылка списка новых материалов за день/неделю/месяц с помощью Simplenews и Rules (способ 2)
- Заменить страницу управления материалами на свой Views
- Вывести Views в вкладке определённого типа материала
- Вывести с помощью Views самое осбуждаемое за последнюю неделю
- Уведомление пользователя об удалении его материала с указанием причины
Комментарии
А тип материалов можно ограничить для рассылки или например если в ноде нет галки у поля то не включать в рассылку?
добавьте в views фильтр по типу материала
А если понадобится делать сразу, скажем, еженедельную и ежемесячную рассылку, то тогда для второй рассылки нужно заводить отдельные переменные типа new_nodes_prev_send_timestamp2 и new_nodes_send_timestamp2. Правильно я понимаю?
да
Что такое частота интервала? Если, например, интервал час, а частота равна 1, что происходит?
происходит рассылка раз в час
Если:
Start sending on - 2013 Дек 26 00-23
Sending interval - week
Interval frequency - 3
Первая рассылка произойдет по крону в 00-23 26го числа. А в течение недели еще одна. Последняя через неделю. Т.е. всего три. Так что-ли?
А можно ли сделать так, чтобы при подписке в simplenews пользователь мог бы выбрать термин словаря, присутствующий в ноде (допустим в ноде есть перечень магазинов из словаря) и в дальнейшем рассылка будет идти только по нодам, которые имеют определенный магазин, который выбрал пользователь при подписке?
хороший вопрос, но ответа я не знаю) возможно вам подойдут обычные категории у расссылки
Подскажите, возможно ли темизировать через tpl.php вывод вьюса вставленного с помощью Views Insert? Положил как обычно в папку дефолтной темы, на сайте все работает, но отправленном сообщении изменений нет...
Сам себе отвечу ^
admin/config/system/mailsystem
Тема для обработки сообщений почты
где создаем эту рассылку не подскажите?
здесь admin/config/services/simplenews только категорию можно создать
node/add
Спасибо за оперативный ответ. как я понял нужно создать отдельный тип материала, который будет с опцией Use as simplenews newsletter и за тем создать node с кодом из пункта 2 или эту опцию нужно поставить в материалах который будем рассылать?
Simplenews создаёт свой тип материала, ничего дополнительно создавать не нужно.
Ах вот в чем дело, у меня почему то не создался этот тип материала, поставлю на чистую версию Д, спасибо
Есть проблемка в виде лишних тегов
откуда они вылезли? скриншот
Разобрался, в head views когда вставляете не переносите эти строки, нужно все в одну сбивать
долго тестил все это дело, заметил такую особенность, значит отправляем например 10 последних нод за неделю. Но если за эту неделю не было добавлено нод, то теже самые 10 не будут добавлены и тогда отправляется письмо пустой без нод, где этам штука запоминает ноды которые уже были отправлены? пусть отправляет их еще раз а не учитывает, не отправлять же пустое письмо..
Добавить комментарий