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

Просмотров: 8973 | Комментариев: 0

Достаточно часто, нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это умеет делать компонент "навигационная цепочка", но можно, для большей гибкости, воспользоваться методом 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 конечного раздела


Что бы оставить комментарий к статье, нужно или зарегистрироваться

Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться. Заметки, преимущественно - это короткие или подробные рецепты, по реализации часто требуемого функционала- в рамках разработки сайтов на 1С-Битрикс

Показать еще