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

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

Если нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это умеет делать компонент "навигационная цепочка", но можно, для большей гибкости, воспользоваться методом 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()) {?>
<a href="<?=$arSection['SECTION_PAGE_URL'];?>">
	<?=$arSection['NAME'];?>
</a>
<?}?>

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

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