Узнать ID текущей категории в Битрикс

Зачастую в Битрексе требуется получить ID текущей категории. В Битриксе для этого есть специальная функция, которая берёт ID по символьному коду. По этому для начала нам нужно узнать символьный код категории. Для этого есть два способа, первый способ воспользоваться средствами PHP

$uri = $_SERVER['REQUEST_URI'];

Второй способ воспользоваться встроенной функцией Битрикс

$uri = $APPLICATION->GetCurPage();

Стоит учесть что в URI может быть get запрос, по этому надо сделать проверку и избавиться от части с get запросом.

$esc_get_url = explode("?", $uri);
$uri = $esc_get_url[0];

Далее нам надо разбить URI по слешу, добавить в массив и вытащить последний параметр с символьным кодом текущего раздела.

$cur_url = explode("/", $uri);
Так же следует учесть, что зачастую URI заканчивается на /, по этому последний элемент массива будет пустой, для этого надо избавиться от него
$temp = array_pop($cur_url);

Теперь в переменной $cur_url последним элементом является символьный код текущего раздела, который нам предстоит изъять.

$code = end($cur_url);

Ну и наконец-то надо получить ID по символьному коду. Здесь нам поможет штатная функция Битрикса:

$rsSections = CIBlockSection::GetList(array(),array('IBLOCK_ID' => $arParams ['IBLOCK_ID'], '=CODE' => $code));
if ($arSection = $rsSections->Fetch())
{
echo $arSection['ID'];
}

Не забываем вместо $arParams [‘IBLOCK_ID’], поставить ID вашего инфоблока.

В моем случаи полный код получился такой:

$uri = $_SERVER['REQUEST_URI'];
$esc_get_url = explode("?", $uri);
$uri = $esc_get_url[0];
$cur_url = explode("/", $uri);
$temp = array_pop($cur_url);
$code = end($cur_url);
$rsSections = CIBlockSection::GetList(array(),array('IBLOCK_ID' => 8, '=CODE' => $code));
if ($arSection = $rsSections->Fetch())
{
echo $arSection['ID'];
}

Продолжая использовать веб- сайт beta-code.ru, вы даете согласие на обработку файлов cookie, пользовательских данных (сведения о местоположении; тип и версия ОС; тип и версия Браузера; тип устройства и разрешение его экрана; источник откуда пришел на сайт пользователь; с какого сайта или по какой рекламе; язык ОС и Браузера; какие страницы открывает и на какие кнопки нажимает пользователь; ip-адрес) в целях функционирования сайта, проведения ретаргетинга и проведения статистических исследований и обзоров. Если вы не хотите, чтобы указанные данные обрабатывались, покиньте сайт.
Принять