1С-Битрикс — как получить ID раздела или элемента в хлебных крошках

07.12.2021  14:24

Иногда возникает задача — получить ID раздела или элемента в компоненте breadcrumbs. По-умолчанию в массиве $arResult только название пункта хлебных крошек и ссылка.

Получить ID, например раздела, можно так:

// в template.php компонента breadcrumbs
$cCode = str_replace(array("/projects/","/"),"",$arResult[$index]["LINK"]);
$arFilterSect = array('IBLOCK_ID' => $IBLOCK_ID, "CODE" => $cCode, "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y");
$arSelectSect = array('ID', 'NAME', 'CODE', 'SECTION_ID');
$rsSectionSect = CIBlockSection::GetList(Array("SORT" => "ASC"),$arFilterSect, false, $arSelectSect, false);
if($arSection = $rsSectionSect->Fetch()) {
	$ID = $arSection["ID"];
}


Аналогично можно получить ID элемента через CIBlockElement::GetList. Для красоты код можно вынести в result_modifier.php. В моём случае было удобнее изменить template.php.

Таким образом можно получить вообще любую информацию о разделах и элементах. Если на сайте у разных разделов и элементов разных инфоблоков символьные кода совпадают, тогда такой механизм сломается, придётся проверять из какого инфоблока выбирать.
Андрей Панёвин
Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье или нужно реализовать доработки по программной части? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670), Telegram (@panevin_ru) или перепиской в ВК.
1000 р./час. Часовой пояс — московский.






Помогла статья? На поездку на море (Охотское):


перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 74  PHP 87  web-программирование 112  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю-:
Имя


email (не публикуется)