В общем стояла задача вывести в меню определенные категории во второй уровень категории инфоблока вот решение.
Создаем меню типа .sec.menu_exp заливаем его в папку в которой хотим выводить пункты меню.
Код файла .sec.menu_exp.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
if(CModule::IncludeModule("iblock")) {
$IBLOCK_ID = 2; // ID инфоблока из которого берем элементы
$SECTIONS = 12;
$arOrder = Array("NAME"=>"ASC"); // Выбрать сортировку
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "SECTION_PAGE_URL");
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y', 'SECTION_ID' => $SECTIONS);
$res = CIBlockSection::GetList($arOrder, $arFilter, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$aMenuLinksExt[] = Array(
$arFields['NAME'],
$arFields['SECTION_PAGE_URL'],
Array(),
Array(),
""
);
}
}
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
?>
К сожалению тут выводится только один уровень категорий но его можно доработать.
Создаем меню типа .sec.menu_exp заливаем его в папку в которой хотим выводить пункты меню.
Код файла .sec.menu_exp.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
if(CModule::IncludeModule("iblock")) {
$IBLOCK_ID = 2; // ID инфоблока из которого берем элементы
$SECTIONS = 12;
$arOrder = Array("NAME"=>"ASC"); // Выбрать сортировку
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "SECTION_PAGE_URL");
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y', 'SECTION_ID' => $SECTIONS);
$res = CIBlockSection::GetList($arOrder, $arFilter, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$aMenuLinksExt[] = Array(
$arFields['NAME'],
$arFields['SECTION_PAGE_URL'],
Array(),
Array(),
""
);
}
}
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
?>
К сожалению тут выводится только один уровень категорий но его можно доработать.