Skip to content

Latest commit

 

History

History
39 lines (25 loc) · 3.04 KB

README.md

File metadata and controls

39 lines (25 loc) · 3.04 KB

RSS2IBlock

Этот агент считывает сообщения из RSS канала и записывает в инфоблок. Можно указать как несколько каналов, так и разные инфоблоки.

В 1С-Битрикс присутствует компонент, который считывает несколько записей из RSS канала и сразу их выводит. Помимо того факта что этот компонент не работает с некоторыми каналами и не поддерживает несколько фидов, такой подход в принципе неудобен. Обычно в проекте уже присутствуют готовые шаблоны для вывода новостей и воспользоваться ими для вывода RSS ленты кажется наиболее логичной идеей.

Установка

  1. Поместите содержимое папки src в bitrix/php_interface/include/rss/
  2. Создайте инфоблок со следующими свойствами типа строка: 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 принимает два параметра:

  1. Массив url адресов фидов или страниц содержащих ссылки на фиды;
  2. ID инфоблока в который будут записаны сообщения из RSS.

Заметки

  1. В том случае если RSS не импортируется, то, возможно, проблема в том, что SimplePie конфликтует с некоторыми сайтами. В частности: Blogspot, FeedBurner и Twitter. Методы противодействия и список сайтов смотрите здесь;
  2. Функция для импорта сообщений недостаточно оптимизирована, поэтому не рекомендуется запускать её часто. Впрочем, возможно, оптимизация здесь и не нужна, так как основное время занимает обращение к RSS фидам, а не их обработка;
  3. Так как SimplePie использует spl_autoload_register, а Bitrix __autoload, то был написан класс (файл BitrixAutoload.php), который включает автоматическую загрузку через spl_autoload_register для Bitrix.