Pugofka Logo
Битрикс 1 мин 2014-09-16

Недокументированные печеньки Битрикса, или "как получить ID раздела?"

Недокументированные печеньки Битрикса, или "как получить ID раздела?"
Задача: вывести список разделов в подразделах.

У нас был известен только SECTION_CODE
Как можно получить ID подразделов в Битрикс зная только SECTION_CODE текущего раздела?

Сначала получаем id нашего раздела. Для этого воспользуемся очень удобным, но не документированным (ох уж этот Битрикс) классом CIBlockFindTools и его методом GetSectionID. В section.php перед выводом нашего заголовка пишем:

$arResult['SECTION_ID'] = CIBlockFindTools::GetSectionID( $arResult['VARIABLES']['SECTION_ID'], $arResult['VARIABLES']['SECTION_CODE'], array('IBLOCK_ID' => $arParams['IBLOCK_ID']) );

А зная SECTION_ID все становится стандартно и просто. Используем всеми любимый и знакомый класс CIBlockSection, который предназначен для работы с разделами информационных блоков (инфоблоков). Воспользуемся методом GetByID, который возвращает параметры раздела по его id.

$sResult = CIBlockSection::GetByID($arResult['SECTION_ID']); 

И последний наш шаг. Подставляем в параметр SECTION_ID наш полученный результат

Пользуйтесь на здоровье!