Модуль информационных блоков в системе Bitrix является универсальным инструментом, который позволяет реализовать множество задач, используя API. Особенностью информационных блоков является возможность добавления свойств, различных типов. Тип свойства (PROPERTY_TYPE) при работе с API определят его способ хранения и представления.
На данный момент, информационные блоки могут иметь свойства следующих типов:
S — строка
N — число
L — список
F — файл
G — привязка к разделу
E — привязка к элементу
S:UserID — Привязка к пользователю
S:DateTime — Дата/Время
E:EList — Привязка к элементам в виде списка
S:FileMan — Привязка к файлу (на сервере)
S:map_yandex — Привязка к Яndex.Карте
S:HTML — HTML/текст
S:map_google — Привязка к карте Google Maps
S:ElementXmlID — Привязка к элементам по XML_ID
Каждый из типов свойств, при работе с ними, предполагает определенные правила хранения, присущие конкретному свойству. Для каждого свойства имеется множество параметров, такие как активность, код, множественность, и т.п., которое определяет свойство в целом. В Bitrix существуют классы с наборами методов для работы со свойствами и их значениями. Ниже есть ссылки на документацию по работе с этими методами.
Рассмотрим простой пример.
Задача: Выбрать все активные свойства типа S (строка), указанного инфоблока.
// подключаем API require_once($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/prolog_before.php"); // подключаем модуль инфо-блоков if (CModule::IncludeModule('iblock')){ // параметры фильтра $arFilter = Array( "ACTIVE" => "Y", // активность "IBLOCK_ID" => 4, // инфоблок, с id == 4 "PROPERTY_TYPE" => "S" // только с типом S (строка) ); // обращаемся к методу GetList $PrObj = CIBlockProperty::GetList(Array("sort"=>"asc"), $arFilter); while ($arProp = $PrObj->GetNext()){ echo '<p> Свойство: '.$arProp['NAME'].', ID: '.$arProp['ID'].'</p>'; } }
Результат получаем такого вида:
<p>Свойство: Цвет, ID: 34</p> <p>Свойство: Модель, ID: 38</p> …
Данный пример достаточно примитивен. На практике использование API Bitrix как правило происходит разносторонне, исходя из ваших задач и потребностей. В связи с этим, для более рационального использования рекомендую работать с документацией:
http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockproperty/index.php
http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockpropertyenum/index.php