Иногда в Битрикс необходимо вывести меню через компонент catalog.section.list, а текущий раздел, где находится пользователь - выделить.
Так как назначить активный раздел? Смотрим ниже на цикл вывода разделов:
<?foreach ($arResult['SECTIONS'] as &$arSection):
//проверяем на активность
$cur_page = $APPLICATION->GetCurPage(false);
$is_active = ($arSection['SECTION_PAGE_URL'] == $cur_page || strpos($cur_page,$arSection['SECTION_PAGE_URL'])!==false)?" active":"";
?>
<a class="block-section-item<?if($is_active):?> active<?endif;?>" href="<?=$arSection['SECTION_PAGE_URL']?>">
<?=$arSection['NAME'];?>
</a>
<?endforeach;?>
Что делает метод $APPLICATION->GetCurPage(false)?
Из документации Битрикс: Возвращает путь к текущей странице относительно корня. А указанный в нем параметр false - удаляет из возвращаемого url страницы index.php (вернется подстрока от 0-й позиции до первого встретившегося "/index.php")
В переменной $is_active сравним SECTION_PAGE_URL - ссылку категории, с текущей ссылкой адресной строки ИЛИ найдем вхождение ссылки категории спомощью strpos().
Далее $is_active вернет нам true или false, исходя из условия поставим ссылке актвный класс - active.