[QUOTE]Алексей Волжин написал:
Все, разобрался сам.
[CODE] <?
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("subscribe_news", "OnAfterIBlockElementAddHandler"));
class subscribe_news {
function OnAfterIBlockElementAddHandler(&$arFields){
# подключаем модули CModule::IncludeModule('iblock'); // подключаем инфоблоки
CModule::IncludeModule('subscribe'); // подключаем рассылку
# формируем дату и сравниваем $date = substr($arFields['ACTIVE_FROM'],0,10); // убираем в дате время, оставляем только дату в формате 01.01.2014 (через опу, но работает!)
if ($date == date('d.m.Y') && $arFields["IBLOCK_ID"] == 1) { //срасниваем даты и сравниваем ИД инфоблока, если совпадает, то
# Данные для письма $FROM_FIELD = "info@site.ru"; // Почта отправителя
$SUBJECT = "Новости | ".$arFields["NAME"] ; // Тема письма
$BODY = '<strong>'.$date.'</strong><h3>'.$arFields["NAME"].'</h3><br />'.$arFields["DETAIL_TEXT"].'<br/><a href="/mediacenter/news/">Перейти в новости на сайте</a><br/>
$RUB_ID = 2; // ID списка рассылки
$STATUS = "Y";
$BODY_TYPE = "html"; // html или test. Я в теле письма использую теги, поэтому html
$DIRECT_SEND = "Y";
$CHARSET = "UTF-8"; // Кодировка
# Формирование письма $posting = new CPosting;
$arFields = Array(
"FROM_FIELD" => $FROM_FIELD, // Поле письма "От кого"
"SUBJECT" => $SUBJECT, // Поле письма "Тема"
"BODY_TYPE" => ($BODY_TYPE <> "html"? "text":"html"), // Тип текста письма ("text"/"html")
"BODY" => $BODY, // Текст письма
"DIRECT_SEND" => ($DIRECT_SEND <> "Y"? "Y":"N"), // Отправлять персонально каждому подписчику ("Y"/"N").
"CHARSET" => $CHARSET, // Кодировка, указываемая в заголовке письма
"RUB_ID" => /* 2, */ array($RUB_ID), // массив идентификаторов рассылок
"STATUS" => "D"
);
$ID = $posting->Add($arFields);
if($ID){
$posting->ChangeStatus($ID, "P");
$posting->AutoSend($ID);
}
if($ID == false)
echo $posting->LAST_ERROR;
$ErrorPost = $posting->LAST_ERROR;
}
}
}
?>
[/CODE][/QUOTE]
В 16 битриксе не работает увы. Белый экран. Кто-нибудь еще задавался этим вопросом? Чтобы при сохранении новости рассылать ее все подписчикам или создавать выпуск а рассылке и отправлять.
Все, разобрался сам.
[CODE] <?
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("subscribe_news", "OnAfterIBlockElementAddHandler"));
class subscribe_news {
function OnAfterIBlockElementAddHandler(&$arFields){
# подключаем модули CModule::IncludeModule('iblock'); // подключаем инфоблоки
CModule::IncludeModule('subscribe'); // подключаем рассылку
# формируем дату и сравниваем $date = substr($arFields['ACTIVE_FROM'],0,10); // убираем в дате время, оставляем только дату в формате 01.01.2014 (через опу, но работает!)
if ($date == date('d.m.Y') && $arFields["IBLOCK_ID"] == 1) { //срасниваем даты и сравниваем ИД инфоблока, если совпадает, то
# Данные для письма $FROM_FIELD = "info@site.ru"; // Почта отправителя
$SUBJECT = "Новости | ".$arFields["NAME"] ; // Тема письма
$BODY = '<strong>'.$date.'</strong><h3>'.$arFields["NAME"].'</h3><br />'.$arFields["DETAIL_TEXT"].'<br/><a href="/mediacenter/news/">Перейти в новости на сайте</a><br/>
<a href="/subscr_edit.php">Отписаться
'; // Тело письма$RUB_ID = 2; // ID списка рассылки
$STATUS = "Y";
$BODY_TYPE = "html"; // html или test. Я в теле письма использую теги, поэтому html
$DIRECT_SEND = "Y";
$CHARSET = "UTF-8"; // Кодировка
# Формирование письма $posting = new CPosting;
$arFields = Array(
"FROM_FIELD" => $FROM_FIELD, // Поле письма "От кого"
"SUBJECT" => $SUBJECT, // Поле письма "Тема"
"BODY_TYPE" => ($BODY_TYPE <> "html"? "text":"html"), // Тип текста письма ("text"/"html")
"BODY" => $BODY, // Текст письма
"DIRECT_SEND" => ($DIRECT_SEND <> "Y"? "Y":"N"), // Отправлять персонально каждому подписчику ("Y"/"N").
"CHARSET" => $CHARSET, // Кодировка, указываемая в заголовке письма
"RUB_ID" => /* 2, */ array($RUB_ID), // массив идентификаторов рассылок
"STATUS" => "D"
);
$ID = $posting->Add($arFields);
if($ID){
$posting->ChangeStatus($ID, "P");
$posting->AutoSend($ID);
}
if($ID == false)
echo $posting->LAST_ERROR;
$ErrorPost = $posting->LAST_ERROR;
}
}
}
?>
[/CODE][/QUOTE]
В 16 битриксе не работает увы. Белый экран. Кто-нибудь еще задавался этим вопросом? Чтобы при сохранении новости рассылать ее все подписчикам или создавать выпуск а рассылке и отправлять.