Задача — с помощью 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;
Написанное актуально для
Simplenews 7.x-1.x