RSS - формат, предназначенный для обмена информацией (прежде всего новостями) между сайтами. Формат RSS является диалектом XML. Получить полную информацию по формату RSS 2.0 можно по адресу http://backend.userland.com/rss.
Терминология
Канал
Информационный блок в RSS формате.
Сайт-сервер
Сайт, который экспортирует (отдает) информацию в формате RSS.
Сайт-клиент
Сайт, который импортирует (принимает) информацию в формате RSS.
Кеширование
Временное хранение информации, полученной с сайта-сервера, на сайте-клиенте для ускорения повторного доступа к ней.
Узел (элемент) канала
Элемент информационного блока (например, новость или товар) в RSS формате.
Экспорт в RSS
Существует три способа экспорта содержимого информационного блока в формат RSS
Динамическая ("на
лету") генерация RSS файла по запросу сайта-клиента.
Для включения этого способа необходимо на сайте-сервере поставить флаг Разрешен экспорт в RSS динамически в настройках информационного блока и установить в поле Действительно (часов) время, через которое сайт-клиент должен будет
перезапрашивать данные с сайта-сервера (между перезапросами сайт-клиент будет выводить данные из кеша).
Для доступа к RSS файлу сайт-клиент должен запросить скрипт /bitrix/rss.php с сайта-сервера с параметрами ID, LANG, TYPE и LIMIT.
Параметры запроса
Параметр
Описание
ID
Код информационного блока или символьный код инфоблока.
Для включения этого способа необходимо на сайте-сервере поставить
флаг Разрешен экспорт в RSS файл в настройках информационного блока и установить поля Количество экспортируемых в RSS файл элементов (ограничивает максимальное количество экспортируемых в файл элементов, -1 для отсутствия ограничений) и За сколько последних дней экспортировать в RSS файл (ограничивает экспортируемые в файл элементы заданным количеством последних дней по началу периода активности элемента, -1 для отсутствия ограничений).
RSS будет генерироваться с периодичностью, заданной в поле Действительно
(часов), и сохраняться в файл с именем типа iblock_rss_<ID блока>.xmlв каталог, заданный в настройках модуля информационных блоков.
Для доступа к RSS файлу сайт-клиент должен запросить файл http://<сайт-сервер>/<путь из настроек
модуля информационных блоков>/iblock_rss_<ID блока>.xml.
Примеры запроса
http://www.ваш_сайт.ru/upload/iblock_rss_3.xml
Прегенерация RSS файла в Yandex-формате.
Этот формат служит для отправки новостей службе Яндекс.Новости и отличается от предыдущих форматов наличием дополнительной ветки, содержащей
полный текст элемента информационного блока. Для включения этого способа необходимо на сайте-сервере поставить флаг Разрешен экспорт в RSS файл в формате yandex в настройках информационного блока. В этом случае элементы информационного блока выбираются за последние два дня без ограничения количества.
RSS будет генерироваться с периодичностью, заданной в поле Действительно (часов), и сохраняться в файл с именем типа yandex_rss_<ID блока>.xmlв каталог, заданный в настройках модуля информационных блоков.
Для доступа к RSS файлу сайт-клиент должен запросить файл http://<сайт-сервер>/<путь из настроек модуля информационных блоков>/yandex_rss_<ID блока>.xml.
Пример запроса
http://www.ваш_сайт.ru/upload/yandex_rss_3.xml
Структура элемента канала в RSS файле
По умолчанию при генерации RSS узел <item> строится следующим образом:
<item><title>Поле Название элемента информационного блока</title><link>Поле URL страницы детального просмотра информационного блока</link><description>Поле Описание для анонса элемента информационного блока, если оно заполнено. Иначе поле Описание для детального просмотра элемента информационного блока.</description><pubDate>Поле Период активности элемента информационного блока.</pubDate><enclosureurl="Адрес изображения, загруженого в поле Описание для анонса элемента информационного блока."length="Размер файла изображения"type="Тип файла изображения"width="Ширина файла изображения"height="Высота файла изображения"/><yandex:full-text>Только в Yandex-формате. Поле Описание для детального просмотра элемента информационного блока.</yandex:full-text></item>
Изменить генерацию можно на странице редактирования информационного блока в разделе Привязка полей для выгрузки в RSS. Поля RSS могут принимать любые текстовые значения. Кроме того можно использовать параметры, которые при
генерации будут заменены на реальные данные. Параметры записываются в виде #ИМЯ#. В качестве имени параметра могут быть использованы коды свойств, а так же следующие значения:
NAME - заголовок элемента информационного
блока;
DETAIL_PAGE_URL - адрес страницы с детальной информацией об элементе;
PREVIEW_TEXT - описание для анонса;
DETAIL_TEXT - описание для детального просмотра;
ACTIVE_FROM - начало периода активности/
Импорт из RSS
Для получения информации на сайте-клиенте следует воспользоваться методом GetNewsEx класса CIBlockRSS. Метод GetNews также доступен, но не рекомендуется к использованию как устаревший.
Функция возвращает канал из кэша (если он не устарел) или с сайта-сервера.
Параметры запроса
SITE
Адрес сайта-сервера. Например, "www.ваш_сайт".
PORT
Порт сайта-сервера. Например, 80.
PATH
Путь к скрипту, генерирующему RSS на сайте-сервере. Например, "/bitrix/rss.php".
QUERY_STR
Строка запроса, если она необходима. Например, ID=3&LANG=ru&TYPE=news&LIMIT=5. Обратите внимание, что строка запроса должна строиться на основании спецификации HTTP.
Возвращаемое значение
Функция возвращает массив, содержащий данные запрошеного RSS файла.
Примеры использования
<?
CModule::IncludeModule("iblock");
$arRes = CIBlockRSS::GetNewsEx("www.bitrix.ru", 80, "/bitrix/rss.php", "ID=3&LANG=ru&TYPE=news&LIMIT=5");
$arRes = CIBlockRSS::FormatArray($arRes);
echo$arRes["title"]; // Название канала/блокаecho$arRes["link"]; // Ссылка на сайт-серверecho$arRes["description"]; // Описание канала/блокаecho$arRes["lastBuildDate"]; // Дата генерации файла на сайте-сервереecho$arRes["ttl"]; // Через сколько часов обновить с сайта-сервераecho$arRes["image"]["title"]; // Заголовок изображения блока/канала, если естьecho$arRes["image"]["url"]; // Ссылка на файл изображения блока/канала, если естьecho$arRes["image"]["width"]; // Ширина изображения блока/канала, если естьecho$arRes["image"]["height"]; // Высота изображения блока/канала, если естьecho$arRes["item"][0]["title"]; // Заголовок первой новостиecho$arRes["item"][1]["title"]; // Заголовок второй новостиecho$arRes["item"][1]["link"]; // Ссылка на вторую новостьecho$arRes["item"][1]["description"]; // Описание второй новостиecho$arRes["item"][1]["pubDate"]; // Дата публикации второй новостиecho$arRes["item"][1]["enclosure"]["url"]; // Ссылка на файл-вложение второй новостиecho$arRes["item"][1]["enclosure"]["length"]; // Размер файла-вложения второй новостиecho$arRes["item"][1]["enclosure"]["type"]; // MIME тип файла-вложения второй новостиecho$arRes["item"][1]["enclosure"]["width"]; // Ширина файла-вложения картинкиecho$arRes["item"][1]["enclosure"]["height"]; // Высота файла-вложения картинки?>
Все представленные материалы носят ИСКЛЮЧИТЕЛЬНО ознакомительный (образовательный) характер. Некоторые материалы взяты из открытых источников в сети или были присланы подписчиками. Если Вы посчитали, что Ваши авторские права были нарушены - сообщите, и мы вместе постараемся придти к обоюдно приемлемому решению. Обладатели авторских прав на материалы, опубликованные в рассылке, выступающие против их дальнейшего размещения и распространения могут
обратиться с просьбой об их удалении