Материал предоставлен сайтом 1Софт
Ключевым моментом технологии продуктов компании 1С-Битрикс для любой платформы (хоть PHP, хоть ASP.NET) является информационный блок.
Информационный блок - сущность, позволяющая каталогизировать и управлять различными типами (блоками) однородной информации.
Информационный блок позволяет очень гибко подходить к информации любого типа, хранить, обрабатывать и выводить ее в нужном для пользователя качестве и виде. В нашем примере информационный блок будет использован как инструмент для расширенной агрегации RSS.
RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Технология, родившаяся из потребностей представить на своем сайте самую актуальную и свежую информацию.
Попробуем в рамках «1С-Битрикс: Управление сайтом ASP. NET» осуществить расширенную агрегацию RSS в информационные блоки. Под расширенной агрегацией понимаем следующее: возможность получения и распределения RSS сообщений по различным папкам в зависимости от ключевых слов, заданных в свойствах информационного блока.
Реальная задача, которая может решаться такой расширенной агрегацией. Сайт сообщества по какой-либо тематике нуждается в получении и сортировке большого числа новостей с разных источников.
Предположим, что вы создаете на базе решения «Сайт сообщества» CMS «1С-Битрикс: Управление сайтом ASP.NET» некий Клуб любителей новых технологий. Вам с нескольких источников приходят новости IT-технологий «вообще», то есть и новости программного обеспечения и новости компьютерного «железа». Эти новости нужно рассортировать по темам и вывести на разных страницах сайта.
Предлагаемый здесь вариант позволяет сортировать сообщения по папкам любой глубины вложения. То есть, например, раздел по программному обеспечению можно делить до сколь угодно подробной рубрикации, вплоть до отдельных программ, а в случае с «железом» до отдельного вида продукции конкретного производителя.
Для решения задачи расширенной агрегации нам нужно сделать следующее:
Чтобы легче было понять смысл этой задачи, посмотрите рабочий пример такой расширенной интеграции.
Создание Типа информационного блока выполняется обычным для "1С-Битрикс: Управление сайтом ASP.NET" способом на странице Контент > Информ. блоки > Типы информ. блоков в Административной части системы. Единственный нюанс, который надо учесть – это установить флажок в поле Использовать древовидный классификатор элементов по разделам, так как нам надо будет использовать разделы для вывода RSS новостей. Пусть тип инфоблока называется Aggregator.
В рамках созданного типа инфоблока создадим первый инфоблок. Создание инфоблока происходит на странице Контент > Aggregator в Административной части системы.
Ib1 отвечает за получение самих RSS сообщений с сайта-источника. Поэтому при создании инфоблока нам нужно создать поля элементов информационного блока, обеспечивающие выполнение этой задачи. Вот эти поля:
Примечание. Названия свойств могут быть любые, а вот коды свойств необходимо использовать указанные в этом тексте. Так как они используются в файлах, обслуживающих агрегатор RSS. Все это справедливо и для второго инфоблока. Вы можете использовать и другие коды, но в этом случае вам будет необходимо править файлы, обслуживающие код агрегатора.
Второй инфоблок служит непосредственно инструментом вывода RSS новостей для показа пользователям сайта. Поэтому он получается несколько сложнее. Надо будет создавать не только поля для свойств для элементов, но и поля свойств для разделов.
Поля свойств для элементов информационного блока:
Поле свойств для разделов ib2 необходимо только одно: Время хранения записей в днях (0 - навсегда) с кодом STORAGE_TIME. Значение поля аналогично значению одноименного свойства в ib1.