[QUOTE]Андрей Криворучко написал:
[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 битриксе не работает увы. Белый экран. Кто-нибудь еще задавался этим вопросом? Чтобы при сохранении новости рассылать ее все подписчикам или создавать выпуск а рассылке и отправлять.[/QUOTE]
Поддерживаю, кто знает в чем трабл?
[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/>
<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 битриксе не работает увы. Белый экран. Кто-нибудь еще задавался этим вопросом? Чтобы при сохранении новости рассылать ее все подписчикам или создавать выпуск а рассылке и отправлять.[/QUOTE]
Поддерживаю, кто знает в чем трабл?