Создаём разделитель в вертикальном меню 1С: Битрикс

В CMS Joomla есть специальный тип пункта меню – разделитель. И я очень часто пользовался им, чтобы группировать ссылки. Захотелось и в 1С: Битрикс что-то подобное.
Предполагается что мы работаем с копией компонента вертикального меню, которую мы и будет править.

Обычный путь к копиям компонента это bitrix\templates\ваш_шаблон\components\bitrix\menu\vertical-index-menu\
По-умолчанию компонент template.php выглядит так

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?if (!empty($arResult)):?>
<ul>

<?
foreach($arResult as $arItem):
	if($arParams["MAX_LEVEL"] == 1 && $arItem["DEPTH_LEVEL"] > 1) 
		continue;
?>
	<?if($arItem["SELECTED"]):?>
		<li><a href="<?=$arItem["LINK"]?>" class="selected"><?=$arItem["TEXT"]?></a></li>
	<?else:?>
		<li><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></li>
	<?endif?>
	
<?endforeach?>

</ul>
<?endif?>

Я решил, что разделителем у меня будет являться пункт меню не являющимся ссылкой. Соответственно, его значение [“LINK”] должно быть пустым. И этот пункт меню должен оформляться каким-то классом. Поэтому я внёс следующие изменения: добавил строки 14-18.

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?if (!empty($arResult)):?>
<ul>

<?
foreach($arResult as $arItem):
	if($arParams["MAX_LEVEL"] == 1 && $arItem["DEPTH_LEVEL"] > 1)
		continue;
?>
	<?if($arItem["SELECTED"]):?>
		<li><a href="<?=$arItem["LINK"]?>" class="selected"><?=$arItem["TEXT"]?></a></li>
	<?else:?>
    <?if($arItem["LINK"]==""):?>
        <li class="separator"><?=$arItem["TEXT"]?></li>
    <?else :?>
		<li><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></li>
    <?endif?>
	<?endif?>

<?endforeach?>

</ul>
<?endif?>


КОММЕНТАРИЕВ НЕТ

Оставить отзыв

This site uses Akismet to reduce spam. Learn how your comment data is processed.