Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Инфоблоки и рассылка

00 голосов
6
Здравствуйте, у меня такой вопрос:
допустим у меня есть тип инфоблока новости.
я создал 2 инфоблока такого типа:
Мои новости и Новости компании.
в инфоблоке новости компании есть несколько подразделов:
Новости про компьютеры
Новости про Игрушки
Новости про фильмы

я Хочу:
чтобы пользователь имел следующие возможности:
1) оформить подписку на раздел "Новости про игрушки" (то есть при добавлении элемента в этот раздел ему на мыло падает уведомление )
2) оформить подписку на инфоблок "Новости компании" (то есть при добавлении элемента в этот инфоблок ему на мыло падает уведомление)
Уведомления, конечно же падают автоматически

Возможно ли реализовать подобное при помощи компонентов Битрикс- Эксперт если да то как?
спросил 30 Июнь, 13 от Kirora (180 баллов)

6 Ответы

00 голосов
возможно, необходимо править шаблоны автоматический генерации выпусков
ответил 30 Июнь, 13 от Darklow (260 баллов)
00 голосов
Спасибо за ответ. А подробнее не подскажете? может источники подскажете?
ответил 04 Авг, 13 от Kirora (180 баллов)
00 голосов
Сдесь пример шаблона /bitrix/php_interface/subscribe/templates/news/template.php
в нем вызов компонента, подправив компонент и назначив правленный шаблон для нужной рассылки у Вас все получится smile;)
ответил 05 Ноя, 13 от Darklow (260 баллов)
00 голосов
спасибо, насколько я понял править надо тут:
Цитата
<P><?$APPLICATION->IncludeFile("subscribe/subscr_news.php", Array(
"SITE_ID" => "ru", // Сайт
"IBLOCK_TYPE" => "news", // Тип информационного блока
"ID" => "-", // Код информационного блока
"SORT_BY" => "ACTIVE_FROM",// Поле для сортировки новостей
"SORT_ORDER" => "DESC", // Направление сортировки новостей
)
);?></P>

то есть я прописываю название нужного инфоблока? а как тогда сделать чтоб рассылка работала только для раздела инфоблока?
ответил 12 Фев, 14 от Kirora (180 баллов)
00 голосов
Код
<?$APPLICATION->IncludeFile("subscribe/subscr_n­ews.php", Array(
"SITE_ID" => "ru", // Сайт
"IBLOCK_TYPE" => "news", // Тип информационного блока
"ID" => "-", // Код информационного блока
"SORT_BY" => "ACTIVE_FROM",// Поле для сортировки новостей
"SORT_ORDER" => "DESC", // Направление сортировки новостей
)
);?>


это вызов компонента, правильно, в нем указываем тип инфоблока и ИД
что бы рассылка была из определенного раздела указанного инфоблока нужно перейти в папку /bitrix/modules/subscribe/install/templates/subscribe, там найти файл subscr_n­ews.php
его скопировать в /bitrix/templates/имя_шаблона/subscribe или в /bitrix/templates/.default/subscribe
потом открываем его
после строки
Код
$ID = (!isset($ID) || ($ID=="-")? "" : $ID);

добавляем
Код
$SECTION_ID = intval($SECTION_ID);

ищем
Код
$rsNews = CIBlockElement::GetList(
      Array($SORT_BY=>$SORT_ORDER),
      Array(
         'IBLOCK_ID'=>$arIBlock["ID"],
         '>DATE_ACTIVE_FROM'=>$SUBSCRIBE_TEMPLATE_RUBRIC["START_TIME"],
         '<=DATE_ACTIVE_FROM'=>$SUBSCRIBE_TEMPLATE_RUBRIC["END_TIME"]
      ));

и заменяем на
Код
$arElementFiler = Array(
         'IBLOCK_ID'=>$arIBlock["ID"],
         '>DATE_ACTIVE_FROM'=>$SUBSCRIBE_TEMPLATE_RUBRIC["START_TIME"],
         '<=DATE_ACTIVE_FROM'=>$SUBSCRIBE_TEMPLATE_RUBRIC["END_TIME"]
      );
if ($SECTION_ID > 0)
$arElementFiler['SECTION_ID'] = $SECTION_ID;
$rsNews = CIBlockElement::GetList(
      Array($SORT_BY=>$SORT_ORDER),
      $arElementFiler);

теперь возвращаемся к файлу, в котором у нас идет вызов компонента и меняем вызов
Код
<?$APPLICATION->IncludeFile("subscribe/subscr_n­ews.php", Array(
"SITE_ID" => "ru", // Сайт
"IBLOCK_TYPE" => "news", // Тип информационного блока
"SECTION_ID" => 123, //ID РАЗДЕЛА
"ID" => "-", // Код информационного блока
"SORT_BY" => "ACTIVE_FROM",// Поле для сортировки новостей
"SORT_ORDER" => "DESC", // Направление сортировки новостей
)
);?>

Обратите внимание, в вызове добавили еще один параметр - ID раздела

В принципе все
ответил 02 Июнь, 14 от Darklow (260 баллов)
00 голосов
Спасибо большое за подробное объяснение
ответил 30 Сен, 14 от Kirora (180 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 08 Авг, 14 от silrage (210 баллов)
0 голосов
9 ответов
спросил 05 Май, 13 от Mauka (320 баллов)
0 голосов
0 ответов
спросил 26 Март, 14 от Monemir (120 баллов)
0 голосов
1 ответ