Обучаю битриксу программистов, интеграторов. Подробнee ⇒

Меню с элементами



стандартно битрикс не включает элементы, а иногда надо

компонент spider:menu.sections.elements
.left.menu_ext.php
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

global $APPLICATION;

$aMenuLinksExt=$APPLICATION->IncludeComponent(
  "spider:menu.sections.elements",
   "", 
   array(
    "IBLOCK_TYPE" => "catalog",
   "IBLOCK_ID" => "1",
    "DEPTH_LEVEL" => "5",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "36000000"
  ),
  false
);
$aMenuLinks = array_merge ($aMenuLinksExt, $aMenuLinks);
?>
вызов меню
 <?

                     $APPLICATION->IncludeComponent("bitrix:menu", "top", Array(
                        "COMPONENT_TEMPLATE" => "top",
                            "ROOT_MENU_TYPE" => "top",  // Тип меню для первого уровня
                            "MENU_CACHE_TYPE" => "A",   // Тип кеширования
                            "MENU_CACHE_TIME" => "3600",    // Время кеширования (сек.)
                            "MENU_CACHE_USE_GROUPS" => "Y", // Учитывать права доступа
                            "MENU_CACHE_GET_VARS" => "",    // Значимые переменные запроса                            
                             "MAX_LEVEL" => 4, // Уровень вложенности меню
                            "CHILD_MENU_TYPE" => "left",    // Тип меню для остальных уровней
                            "USE_EXT" => "Y",   // Подключать файлы с именами вида .тип_меню.menu_ext.php
                            "DELAY" => "N", // Откладывать выполнение шаблона меню
                            "ALLOW_MULTI_SELECT" => "N",    // Разрешить несколько активных пунктов одновременно
                            "MENU_THEME" => "site"
                        ),
                        false
                    );?>
папка_шаблона_ сайта/components/bitrix/menu/top/template.php
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!empty($arResult)):?>
    <ul class="links temp">
        <?foreach($arResult as $arItem): 
            if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
                <?=str_repeat("</ul></div></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
            <?endif;
            if ($arItem["IS_PARENT"]):?>
                <li class="link <?=($arItem["SELECTED"])?"selected":""?>">
                    <a href="<?=($arItem["DEPTH_LEVEL"]==2)?"#":$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a>                
                    <?if($arItem["DEPTH_LEVEL"]==1):?>
                        <div class="listWrapper">
                            <ul class="list mainList">
                    <?elseif($arItem["DEPTH_LEVEL"]==2):?>                                
                         <div class="listWrapper sub">
                                <ul class="list">
                    <?endif;                
            else:?>  
                <?if($arItem["DEPTH_LEVEL"]==1):?>
                    <li class="link <?=($arItem["SELECTED"])?"selected":""?>">
                        <a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a>                    
                    </li>                    
                <?elseif($arItem["DEPTH_LEVEL"]==2):?>
                    <li class="link <?=($arItem["SELECTED"])?"selected":""?>">
                        <a href="#"><?=$arItem["TEXT"]?></a>                    
                    </li>
                <?else:?>      
                    <li class="item">
                        <a href="<?=$arItem["LINK"]?>">
                            <span><?=$arItem["TEXT"]?></span>                           
                        </a>
                    </li> 
                <?endif;    
            endif;           
            
            $previousLevel = $arItem["DEPTH_LEVEL"];  
        endforeach;
        if ($previousLevel > 1)://close last item tags?>
            <?=str_repeat("</ul></div></li>", ($previousLevel-1) );?>
        <?endif?>
    </ul>
<?endif;?>  
spider.zip (2.27 КБ)
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!