Для того чтобы постить новость в живую ленту Битрикс24 при создании элемента инфоблока новости, необходимо провести следующие шаги:
1. Установите и настройте модуль "Живая лента" в вашем Битрикс24. Для этого перейдите в раздел "Настройки - Модули" и найдите модуль "Живая лента". Установите и активируйте его.
2. Создайте элемент инфоблока новости. Перейдите в раздел "Типы инфоблоков" и создайте тип инфоблока "Новости". Затем создайте сам инфоблок новости и добавьте в него необходимые поля.
3. Настройте событие добавления/обновления элемента инфоблока. Чтобы постить новость в живую ленту при создании нового элемента инфоблока, необходимо добавить соответствующий обработчик на событие. Для этого перейдите в раздел "Настройки - Сообщения и оповещения" и найдите "События - События модулей". В списке событий найдите событие "main", выберите его и нажмите "Изменить". В появившемся окне нажмите "Добавить обработчик" и выберите тип модуля "iblock", а в поле "Класс обработчика" укажите путь к файлу с вашим скриптом обработчика. Например, "/bitrix/php_interface/init.php".
4. Напишите скрипт обработчика события. В этом скрипте необходимо определить параметры для постинга новости в живую ленту и передать их функции модуля "Живая лента". Ниже приведен пример такого скрипта:
<?php AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler"); AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "OnAfterIBlockElementAddHandler"); function OnAfterIBlockElementAddHandler($arFields) { if ($arFields["IBLOCK_ID"] == YOUR_NEWS_IBLOCK_ID) // замените YOUR_NEWS_IBLOCK_ID на ID вашего инфоблока новостей { // Получаем данные новости $newsId = $arFields["ID"]; $newsTitle = $arFields["NAME"]; $newsText = $arFields["DETAIL_TEXT"]; // Добавляем новость в живую ленту CModule::IncludeModule("socialnetwork"); $arFields = Array( "ENTITY_TYPE" => "IBLOCK", "ENTITY_ID" => YOUR_NEWS_IBLOCK_ID, "EVENT_ID" => "news", // замените "news" на нужный вам тип события "EVENT_TEXT" => $newsTitle, "EVENT_TEXT_1" => $newsText, "USER_ID" => $USER->GetID(), ); CSocNetLiveFeed::Add($arFields); } }
В данном примере при создании или обновлении элемента инфоблока новостей вызывается функция OnAfterIBlockElementAddHandler
, которая проверяет, что это элемент из нужного инфоблока, получает данные новости и добавляет их в живую ленту с помощью функции CSocNetLiveFeed::Add()
.
Обратите внимание, что в примере используется функция CModule::IncludeModule("socialnetwork")
, которая подключает модуль "Социальная сеть". Если вы пишете скрипт не внутри модуля, убедитесь, что модуль "Социальная сеть" установлен и активирован.
Таким образом, после выполнения всех этих шагов, при создании нового элемента инфоблока новости, новость будет автоматически поститься в живую ленту Битрикс24.