Сделал вот как:
В хедере вызываю меню так:
Код |
---|
<?
$APPLICATION->IncludeComponent("bitrix:menu", "horizontal_multilevel", array(
"ROOT_MENU_TYPE" => "top",
"MAX_LEVEL" => "4",
"CHILD_MENU_TYPE" => "topchild",
"USE_EXT" => "Y",
"MENU_CACHE_TYPE" => "N"
);
?> |
само меню состоит из постоянных пунктов .top.menu.php который лежит в корне сайта
Код |
---|
<?
$aMenuLinks = Array(
Array(
"Работы",
"portfolio/",
Array(),
Array(),
""
,
Array(
"О компании",
"about/",
Array(),
Array(),
""
,
Array(
"Контакты",
"contact/",
Array(),
Array(),
""
,
Array(
"Услуги",
"services/",
Array(),
Array(),
""
);
?> |
и динамически получаемого меню из разделов сайта
Код |
---|
<?
if(!defined("B_PROLOG_INCLUDED" || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$aMenuLinksExt=$APPLICATION->IncludeComponent("bitrix:menu.sections", "", array(
"IS_SEF" => "N",
"ID" => $_REQUEST["ID"],
"IBLOCK_TYPE" => "catalog",
"IBLOCK_ID" => "2",
"SECTION_URL" => "",
"DEPTH_LEVEL" => "2",
"CACHE_TYPE" => "N",
"CACHE_TIME" => "3600"
,
false
);
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
?> |
Чтобы выводилось подменю я так понимаю что мне в соответствующих директориях надо разместить меню типа .topchild.menu.php или topchild.menu_ext.php Например для получения элементов каталога можно написать в .topchild.menu.php
Код |
---|
<?
if(!defined("B_PROLOG_INCLUDED" || B_PROLOG_INCLUDED!==true)die();
$aMenuLinks = array();
if(CModule::IncludeModule("iblock")
{
$items = GetIBlockElementListEx("catalog", "services";
while($arItem = $items->GetNext())
{
$aMenuLinks[] = array($arItem['NAME'], $arItem['DETAIL_PAGE_URL'], Array(), Array(), "";
}
}
?> |
И вот в чем проблема у пунктов меню из top.menu.php таким способом появляется подменю, а у динамически созданных пунктов не поялвяется. И как его сделать никак не могу понять, может кто подскажет?