Добрый день, тема уже пережеванная, но все же не понятна. Многое перепробовал и результата, которого хотелось бы не наблюдаю.
Задача:
Вывести меню из инфоблоков подобной структуры:
Тип инфоблока
-Инфоблок
--Раздел 1
---Элемент 1
--Раздел 2
---Элемент 1
---Элемент 2
---Элемент 3
--Раздел 3
---Элемент 1
Пробовал через компонент bitrix:menu.sections, он выводит только разделы без элементов. Поэтому решил использовать API функции.
Идея проста: Делаем выборку всех разделов в инфоблоке ($rsSection) и элементов в этом разделе ($rsItem). Через цикл добавляем разделы и элементы в массив $aMenuLinksNew[]. Только как сделать древовидное меню не понятно.
У кого есть идеи? Или возможныо другие варианты?
Задача:
Вывести меню из инфоблоков подобной структуры:
Тип инфоблока
-Инфоблок
--Раздел 1
---Элемент 1
--Раздел 2
---Элемент 1
---Элемент 2
---Элемент 3
--Раздел 3
---Элемент 1
Пробовал через компонент bitrix:menu.sections, он выводит только разделы без элементов. Поэтому решил использовать API функции.
| Код |
|---|
<?
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/include.php");
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/public_tools.php");
$arrPath = pathinfo($_SERVER["REQUEST_URI"]);
$rsIblock = GetIBlockList("catalog", Array("6"));
$arIblock = $rsIblock->Fetch();
$rsSection = GetIBlockSectionList($arIblock["ID"], false, Array("SORT"=>"DESC", "NAME" => "DESC", "ID"=>"DESC"));
$aMenuLinksNew = array();
while ($arSection = $rsSection->Fetch())
{
$SECTION_URL = "/dirname/".$arSection["CODE"].".php";
$arrAddLinks = array();
//Выборка элемента
$rsItem = GetIBlockElementListEx("catalog", Array(), Array(), Array("ACTIVE_FROM"=>"DESC", "SORT"=>"ASC", "NAME"=>"DESC"), 10, Array("SECTION_ID"=>$arSection["ID"], "INCLUDE_SUBSECTIONS"=>"Y"));
//..
$aMenuLinksNew[] = array(
$arSection["NAME"],
$SECTION_URL,
$arrAddLinks,
$aMenuItemNew);
}
$aMenuLinks = array_merge($aMenuLinksNew, $aMenuLinks);
?> |
Идея проста: Делаем выборку всех разделов в инфоблоке ($rsSection) и элементов в этом разделе ($rsItem). Через цикл добавляем разделы и элементы в массив $aMenuLinksNew[]. Только как сделать древовидное меню не понятно.
У кого есть идеи? Или возможныо другие варианты?
