Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

Вывести разделы инфоблока в которых находится элемент Битрикс

Просмотров: 17411

Если нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это умеет делать компонент "навигационная цепочка", но можно, для большей гибкости, воспользоваться методом API CIBlockSection::GetNavChain

Например: достаточно редкий случай, но нужно вывести структуру разделов в результатах поиска по каталогу. По сути, там обычный catalog.section. В каждом элементе необходимо вывести цепочку навигации, в которой находится конкретный элемент:

Реализуется достаточно просто. Мы знаем ID раздела в котором находится товар. Посмотреть его можно просто: вызвав в элементе echo $arElement['IBLOCK_SECTION_ID']

Зная ID одного раздела, методом CIBlockSection::GetNavChain можем получить и все родительские разделы данного раздела и еще кучу информации. В конкретном случае (имитации навигационной цепочки), нам нужна еще и ссылка на каждый раздел в цепочке


<?
$resSection = CIBlockSection::GetNavChain(
            false, $arElement['IBLOCK_SECTION_ID']
        );
	while ($arSection = $resSection->GetNext()) {
	$array_sections = $arSection;
?>
<a href="<?=$arSection['SECTION_PAGE_URL'];?>">
	<?=$arSection['NAME'];?>
</a>
<?}?>

Вставляем этот код в то место где хотим вывести "хлебные крошки". Использовать можно где угодно, везде где можете получить ID конечного раздела

Guest 08.02.2022
Спасибо!!!