Этот агент считывает сообщения из RSS канала и записывает в инфоблок. Можно указать как несколько каналов, так и разные инфоблоки.
В 1С-Битрикс присутствует компонент, который считывает несколько записей из RSS канала и сразу их выводит. Помимо того факта что этот компонент не работает с некоторыми каналами и не поддерживает несколько фидов, такой подход в принципе неудобен. Обычно в проекте уже присутствуют готовые шаблоны для вывода новостей и воспользоваться ими для вывода RSS ленты кажется наиболее логичной идеей.
- Поместите содержимое папки src в bitrix/php_interface/include/rss/
- Создайте инфоблок со следующими свойствами типа строка: GUID, FEED_URL, PERMALINK. Первые два — обязательные.
function updateRSS()
{
require_once($_SERVER["DOCUMENT_ROOT"].'/bitrix/php_interface/include/rss/RssToIBlock.php');
$rssToIBlock = new RssToIBlock(array('video.avs50.ru'), RSS_IBLOCK_ID);
$rssToIBlock->fetch();
return "updateRSS();";
}
Конструктор RssToIBlock принимает два параметра:
- Массив url адресов фидов или страниц содержащих ссылки на фиды;
- ID инфоблока в который будут записаны сообщения из RSS.
- В том случае если RSS не импортируется, то, возможно, проблема в том, что SimplePie конфликтует с некоторыми сайтами. В частности: Blogspot, FeedBurner и Twitter. Методы противодействия и список сайтов смотрите здесь;
- Функция для импорта сообщений недостаточно оптимизирована, поэтому не рекомендуется запускать её часто. Впрочем, возможно, оптимизация здесь и не нужна, так как основное время занимает обращение к RSS фидам, а не их обработка;
- Так как SimplePie использует spl_autoload_register, а Bitrix __autoload, то был написан класс (файл BitrixAutoload.php), который включает автоматическую загрузку через spl_autoload_register для Bitrix.