Активный раздел в компоненте catalog.section.list
524
Часто в Битрикс необходимо вывести меню через компонент catalog.section.list, а текущий раздел, где находится пользователь - выделить. Для того чтобы выделить активный пункт текущего раздела, необходимо в шаблоне компонента 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="Link <?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. |
Последние записи
|