Так как меня не устраивал стандартный компонент Битрикса для генерации рассылок - написал свой. Выкладываю, может кому-нибудь пригодится.
[spoiler]
Особенности:
- в настройках указывается инфоблок, из которого выбирать новости;
- при проверке выбираются новости, созданные за прошлый день (по дате создания);
- если за день было создано несколько новостей - они добавляются в один выпуск;
- к письму прикрепляются изображения в виде вложений;
- все относительные ссылки в теле письма изменяются на абсолютные;
- возможно задавать свою подпись для каждой рассылки;
- можно задать вручную ID сайта, для которого делается выборка, для случая если рассылка принадлежит нескольким сайтам (это влияет на название сайта внизу письма, и на адрес ссылок);
- если сайт не задан - то по умолчанию берется текущий сайт для рассылки;
- в компонент входит шаблон с прописанными стилями внутри тегов (это сделано для улучшения совместимости с почтовыми клиентами, например с Gmail, который не читает стили, определенные другим образом).
Примеры сгенерированных выпусков:
Не знаю куда выложить, так как площадки для компонентов нету, а в группу "рынок" как-то не хочется выкладывать. Компонент Open Source.
UPD.
Добавлена проверка свойство "DO_NOT_RASSYLKA" у инфоблока. Если у новости установлено это свойтво (стоит галочка), то новость в рассылку не добавляется.
Скриншот: создание свойства "DO_NOT_RASSYLKA" для инфоблока

Добавлено удобное формирование футера рассылки. Если дополнительные параметры рассылки не заданы - то они (название сайта, и адрес сайта) берутся из настроек сайта, для которого предназначена рассылка.
Для начала работы рассылки достаточно создать почтовый шаблон, в котором указать только свойство "IBLOCK_ID" - номер инфоблока:
файл /bitrix/php_interface/subscribe/templats/site_1_news/template.php
У компонента можно дополнительно задать такие параметры:
SORT_BY - поле для сортировки. Если не задано - "SORT";
SORT_ORDER - порядок сортировки. Если не задан - то "ASC";
BOTTOM_TITLE - надпись для футера почтового шаблона. Если не задана - то имеет вид "Всегда свежие новости на сайте".
SITE_ID - номер сайта. Если не задан - то берется сайт, к которому привязана рассылка.
SITE_NAME - имя сайта. Если не задано - то берется имя сайта из настроек сайта.
SITE_URL - гиперссылка сайта. Если не задана - то берется из настроек сайта.
То есть, код вызова компонента в шаблоне может быть таким:
Свойства BOTTOM_TITLE, SITE_NAME и SITE_URL используются для создания футера рассылки в виде:
Т.е., например, в виде:
Но еще раз повторю, что для начала полноценной работы компонента у него достаточно задать только номер инфоблока. Остальные данные (если не указаны) берутся из настроек рассылки и настроек сайта.
Перезалил компонент и пример почтового шаблона. Они доступны по ссылкам:
Компонент:
Почтовый шаблон:
[spoiler]
Особенности:
- в настройках указывается инфоблок, из которого выбирать новости;
- при проверке выбираются новости, созданные за прошлый день (по дате создания);
- если за день было создано несколько новостей - они добавляются в один выпуск;
- к письму прикрепляются изображения в виде вложений;
- все относительные ссылки в теле письма изменяются на абсолютные;
- возможно задавать свою подпись для каждой рассылки;
- можно задать вручную ID сайта, для которого делается выборка, для случая если рассылка принадлежит нескольким сайтам (это влияет на название сайта внизу письма, и на адрес ссылок);
- если сайт не задан - то по умолчанию берется текущий сайт для рассылки;
- в компонент входит шаблон с прописанными стилями внутри тегов (это сделано для улучшения совместимости с почтовыми клиентами, например с Gmail, который не читает стили, определенные другим образом).
Примеры сгенерированных выпусков:
Не знаю куда выложить, так как площадки для компонентов нету, а в группу "рынок" как-то не хочется выкладывать. Компонент Open Source.
UPD.
Добавлена проверка свойство "DO_NOT_RASSYLKA" у инфоблока. Если у новости установлено это свойтво (стоит галочка), то новость в рассылку не добавляется.
Скриншот: создание свойства "DO_NOT_RASSYLKA" для инфоблока

Добавлено удобное формирование футера рассылки. Если дополнительные параметры рассылки не заданы - то они (название сайта, и адрес сайта) берутся из настроек сайта, для которого предназначена рассылка.
Для начала работы рассылки достаточно создать почтовый шаблон, в котором указать только свойство "IBLOCK_ID" - номер инфоблока:
файл /bitrix/php_interface/subscribe/templats/site_1_news/template.php
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $SUBSCRIBE_TEMPLATE_RUBRIC;
$SUBSCRIBE_TEMPLATE_RUBRIC=$arRubric;
global $APPLICATION;
?>
<?$SUBSCRIBE_TEMPLATE_RESULT = $APPLICATION->IncludeComponent(
"vidicom:autosubscribe.news",
"",
Array(
"IBLOCK_ID" => "123", // Номер инфоблока с новостями
),
null,
array(
"HIDE_ICONS" => "Y",
)
);?>
<?if($SUBSCRIBE_TEMPLATE_RESULT)
return array(
"SUBJECT"=>$SUBSCRIBE_TEMPLATE_RUBRIC["NAME"],
"BODY_TYPE"=>"html",
"CHARSET"=>"Windows-1251",
"DIRECT_SEND"=>"Y",
"FROM_FIELD"=>$SUBSCRIBE_TEMPLATE_RUBRIC["FROM_FIELD"],
);
else
return false;
?>
|
У компонента можно дополнительно задать такие параметры:
SORT_BY - поле для сортировки. Если не задано - "SORT";
SORT_ORDER - порядок сортировки. Если не задан - то "ASC";
BOTTOM_TITLE - надпись для футера почтового шаблона. Если не задана - то имеет вид "Всегда свежие новости на сайте".
SITE_ID - номер сайта. Если не задан - то берется сайт, к которому привязана рассылка.
SITE_NAME - имя сайта. Если не задано - то берется имя сайта из настроек сайта.
SITE_URL - гиперссылка сайта. Если не задана - то берется из настроек сайта.
То есть, код вызова компонента в шаблоне может быть таким:
<?$SUBSCRIBE_TEMPLATE_RESULT = $APPLICATION->IncludeComponent( "vidicom:autosubscribe.news", "", Array( "IBLOCK_ID" => "123", // Номер инфоблока с новостями "SORT_BY" => "SORT", "SORT_ORDER" => "DESC", "BOTTOM_TITLE" => "Вы подписаны на новости на сайте", "SITE_NAME" => "веселые хомячки", "SITE_URL" => "http://homyachki.com", ), null, array( "HIDE_ICONS" => "Y", ) );?> |
Свойства BOTTOM_TITLE, SITE_NAME и SITE_URL используются для создания футера рассылки в виде:
BOTTOM_TITLE <a href="SITE_URL"> SITE_NAME</a> |
Т.е., например, в виде:
Всегда свежие новости на сайте <a href="http://toyota-ua.com/">Тойота</a> |
Но еще раз повторю, что для начала полноценной работы компонента у него достаточно задать только номер инфоблока. Остальные данные (если не указаны) берутся из настроек рассылки и настроек сайта.
Перезалил компонент и пример почтового шаблона. Они доступны по ссылкам:
Компонент:
Почтовый шаблон: