Дополнительные поля для разделов инфоблоков

Пользовательские поля БитриксИнфоблоки битрикс - очень гибкий инструмент, на нём можно сделать практически любые динамические списки элементов. Но если для элементов инфоблока при его создании есть возможность настроить сколько угодно полей любого типа, то для разделов на первый взгляд всё более печально.

Что же делать, если вам понадобилось создать дополнительное поле для раздела инфоблока? Специально для этого случая существуют пользовательские поля.

Создать поле можно непосредственно на странице редактирования раздела инфоблока, на вкладке «доп. свойства»:

Пользовательские поля Битрикс

Обратите внимание, что поле типа «строка» может содержать не только одну, но и много строк.

Пользовательские поля БитриксНу хорошо, мы создали поле и даже заполнили его. А как вывести значение пользовательского поля на странице раздела инфоблока?

Ничего сложного, правда к сожалению не удастся обойтись без дополнительного запроса к БД, так как по умолчанию значения пользовательских полей в выборку не попадают. Функция CIBlockSection::GetByID тоже не возвращает пользовательские поля, поэтому остаётся только самим выбрать нужный раздел инфоблока функцией CIBlockSection::GetList, отфильтровав выборку по SECTION_ID:


<?php
$rsSection = CIBlockSection::GetList(
	Array(), 
	Array("IBLOCK_ID"=>$arResult["IBLOCK_ID"], "ID"=>$arResult["ID"]), 
	false,
	Array("UF_TEXT")
);
if($arSection = $rsSection->GetNext()) {
?>
	<?php=htmlspecialchars_decode( $arSection["UF_TEXT"] ) ?>
<?php
}
?>

Первый параметр отвечает за сортировку, для нас он не важен, т.к. в списке будет всего 1 элемент. Третий параметр — это bIncCnt, указывающий, возвращать ли количество элементов в разделе. Количество нам тоже ни к чему.

Поделиться с друзьями: