An open API service indexing awesome lists of open source software.

https://github.com/asfdfdfd/bitrix.rss2iblock

Агент 1С-Битрикс для импорта из RSS в инфоблок на основе SimplePie
https://github.com/asfdfdfd/bitrix.rss2iblock

Last synced: 9 months ago
JSON representation

Агент 1С-Битрикс для импорта из RSS в инфоблок на основе SimplePie

Awesome Lists containing this project

README

          

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. Методы противодействия и список сайтов смотрите [здесь](http://simplepie.org/wiki/faq/problematic_feeds);
2. Функция для импорта сообщений недостаточно оптимизирована, поэтому не рекомендуется запускать её часто. Впрочем, возможно, оптимизация здесь и не нужна, так как основное время занимает обращение к RSS фидам, а не их обработка;
3. Так как SimplePie использует spl_autoload_register, а Bitrix __autoload, то был написан класс (файл BitrixAutoload.php), который включает автоматическую загрузку через spl_autoload_register для Bitrix.