Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Cтандартный horizontal_multilevel переделать в vertical_multilevel или как-то так

00 голосов
2
Код
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?if (!empty($arResult)):?>
<ul id="horizontal-multilevel-menu">

<?
$previousLevel = 0;
foreach($arResult as $arItem):?>

   <?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
      <?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
   <?endif?>

   <?if ($arItem["IS_PARENT"]):?>

      <?if ($arItem["DEPTH_LEVEL"] == 1):?>
         <li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a>
            <ul>
      <?else:?>
         <li<?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a href="<?=$arItem["LINK"]?>" class="parent"><?=$arItem["TEXT"]?></a>
            <ul>
      <?endif?>

   <?else:?>

      <?if ($arItem["PERMISSION"] > "D"):?>

         <?if ($arItem["DEPTH_LEVEL"] == 1):?>
            <li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a></li>
         <?else:?>
            <li<?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></li>
         <?endif?>

      <?else:?>

         <?if ($arItem["DEPTH_LEVEL"] == 1):?>
            <li><a href="" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
         <?else:?>
            <li><a href="" class="denied" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
         <?endif?>

      <?endif?>

   <?endif?>

   <?$previousLevel = $arItem["DEPTH_LEVEL"];?>

<?endforeach?>

<?if ($previousLevel > 1)://close last item tags?>
   <?=str_repeat("</ul></li>", ($previousLevel-1) );?>
<?endif?>

</ul>
<div class="menu-clear-left"></div>
<?endif?>




___________________________________________________________________________________________________



Код
/**Top menu**/
#horizontal-multilevel-menu,#horizontal-multilevel-menu ul
{
   margin:0; padding:0;
   background:#BC262C url(images/header_menu_bg.gif) repeat-x;
   min-height:27px;
   width:100%;
   list-style:none;
   font-size:11px;
   float:left;
   /*font-size:90%*/
}

#horizontal-multilevel-menu
{
   
}

/*Links*/
#horizontal-multilevel-menu a
{
   display:block;
   padding:5px 10px;
   /*padding:0.3em 0.8em;*/
   text-decoration:none;
   text-align:center;
}

#horizontal-multilevel-menu li 
{
   float:left;
}

/*Root items*/
#horizontal-multilevel-menu li a.root-item
{
   color:#fff;
   font-weight:bold;
   padding:7px 12px;
}

/*Root menu selected*/
#horizontal-multilevel-menu li a.root-item-selected
{
   background:#fc8d3d;
   color:#fff;
   font-weight:bold;
   padding:7px 12px;
}

/*Root items: hover*/
#horizontal-multilevel-menu li:hover a.root-item, #horizontal-multilevel-menu li.jshover a.root-item
{
   background:#e26336;
   color:#fff;
}

/*Item-parents*/
#horizontal-multilevel-menu a.parent
{
   background: url(images/arrow.gif) center right no-repeat;
}

/*Denied items*/
#horizontal-multilevel-menu a.denied
{
   background: url(images/lock.gif) center right no-repeat;
}

/*Child-items: hover*/
#horizontal-multilevel-menu li:hover, #horizontal-multilevel-menu li.jshover
{
   background:#D6D6D6;
   color:#fff;
}

/*Child-items selected*/
#horizontal-multilevel-menu li.item-selected
{
   background:#D6D6D6;
   color:#fff;
}

/*Sub-menu box*/
#horizontal-multilevel-menu li ul
{
   position:absolute;
   /*top:-999em;*/
   top:auto;
   display:none;
   z-index:500;

   height:auto;
   /*width:12em;*/
   width:135px;
   background:#F5F5F5;
   border:1px solid #C1C1C1;
}

/*Sub-menu item box*/
#horizontal-multilevel-menu li li 
{
   width:100%;
   border-bottom:1px solid #DEDEDE;
}

/*Item link*/
#horizontal-multilevel-menu li ul a
{
   text-align:left;
}

/*Items text color & size */
#horizontal-multilevel-menu li a,
#horizontal-multilevel-menu li:hover li a,
#horizontal-multilevel-menu li.jshover li a,
#horizontal-multilevel-menu li:hover li:hover li a,
#horizontal-multilevel-menu li.jshover li.jshover li a,
#horizontal-multilevel-menu li:hover li:hover li:hover li a,
#horizontal-multilevel-menu li.jshover li.jshover li.jshover li a,
#horizontal-multilevel-menu li:hover li:hover li:hover li:hover li a,
#horizontal-multilevel-menu li.jshover li.jshover li.jshover li.jshover li a,
#horizontal-multilevel-menu li:hover li:hover li:hover li:hover li:hover li a,
#horizonta
спросил 02 Июль, 13 от Ksefonida (120 баллов)

2 Ответы

00 голосов
Но ведь в стандартной поставке есть шаблон verlical_multilevel - вертикальное многоуровневое выпадающее меню. Он чем-то не подходит?
ответил 02 Июль, 13 от Pomnep (13,960 баллов)
00 голосов
Кроме того, положение меню задаётся через CSS. Так что можно переделать горизонтальное в вертикальное, не изменяя php-код
ответил 07 Авг, 13 от Balzamon (280 баллов)

Похожие вопросы