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

Древовидное меню

00 голосов
3
Все доброго времени суток. Помогите пожалуйста сделать что-бы древовидное меню открывалось при нажатии на надпись, а не на папочку... Никак не получается сделать кучу информации уже перечитала. Заранее спасибо
спросил 23 Фев, 14 от Anton6 (160 баллов)

3 Ответы

00 голосов
1) Добавьте компонент меню на страницу и настройте необходимые параметры
Код
<?$APPLICATION->IncludeComponent("bitrix:menu", ".default", Array(
   "ROOT_MENU_TYPE" => "main_section",   // Тип меню для первого уровня
   "MAX_LEVEL" => "2",   // Уровень вложенности меню
   "CHILD_MENU_TYPE" => "internal",   // Тип меню для остальных уровней
   "USE_EXT" => "N",   // Подключать файлы с именами вида .тип_меню.menu_ext.php
   "DELAY" => "N",   // Откладывать выполнение шаблона меню
   "ALLOW_MULTI_SELECT" => "N",   // Разрешить несколько активных пунктов одновременно
   "MENU_CACHE_TYPE" => "N",   // Тип кеширования
   "MENU_CACHE_TIME" => "3600",   // Время кеширования (сек.)
   "MENU_CACHE_USE_GROUPS" => "Y",   // Учитывать права доступа
   "MENU_CACHE_GET_VARS" => "",   // Значимые переменные запроса
   ),
   false
);?>

2) Скопируйте шаблон меню (файл template.php)

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

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

<div class="menu-sitemap-tree">
<ul>
<?
$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"]):?>
         <li<?if($arItem["CHILD_SELECTED"] !== true):?> class="close"<?endif?>>
            <div class="folder" onC lick="OpenMenuNode(this)"></div>
            <div class="item-text" onC lick="OpenMenuNode(this)" style="cursor: pointer;"><?=$arItem["TEXT"]?></div>
            <ul>

   <?else:?>

      <?if ($arItem["PERMISSION"] > "D"):?>
            <li>
               <div class="page"></div>
               <div class="item-text"><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></div>
            </li>
      <?endif?>

   <?endif?>

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

<?endforeach?>

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

</ul>
</div>
<?endif?>
ответил 24 Июль, 14 от Runnar (1,000 баллов)
00 голосов
К сожалению не получается :( Сделала все как написано. Может ли это зависеть от версии битрикса? У меня 1С-Битрикс: Управление сайтом 8.6.3
ответил 25 Ноя, 14 от Anton6 (160 баллов)
00 голосов
Все получилось спасибо!!!!
Цитата
onC lick
надо было сделать без пробела
Цитата
onClick
ответил 20 Март, 15 от Anton6 (160 баллов)

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

0 голосов
1 ответ
спросил 09 Март, 14 от Nuts2010 (100 баллов)
0 голосов
1 ответ
спросил 30 Ноя, 13 от LoLiTKa (620 баллов)
0 голосов
5 ответов
спросил 25 Ноя, 13 от Traxexx (900 баллов)
0 голосов
0 ответов
спросил 09 Ноя, 13 от Jagami (100 баллов)
0 голосов
6 ответов
спросил 07 Окт, 13 от Stepa (120 баллов)