Приветствую.
Нужно организовать меню, состоящее из непустых разделов . Есть инфоблок, в нем с десяток разделов, у этих разделов еще по несколько разделов. В тип_меню_ext исполняется такой код:
Код PHP |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $aMenuLinksExt = $APPLICATION->IncludeComponent( "bitrix:menu.sections", "", Array( "IS_SEF" => "Y", /* использовать ли ЧПУ */ "SEF_BASE_URL" => "/".explode('/', $APPLICATION->GetCurPageParam())[1]."/", "SECTION_PAGE_URL" => "#SECTION_ID#/", "IBLOCK_ID" => "6", /* ID инфоблока */ "DEPTH_LEVEL" => "2", /* уровень вложенности разделов */ "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000" ), false ); |
|
Потом в шаблоне меню, в переборе всех разделов я проверяю, есть ли там элементы, если есть то вывожу его на экран, в ином случае пропускаю итерацию:
Код PHP |
1 2 3 4 5 6 7 8 9 10 11 | foreach($arResult as $arItem){ $rsSections = CIBlockSection::GetList( Array(), Array("SECTION_ID" => explode('/', $arItem['LINK'])[2]), true, Array(), false ); $arSction = $rsSections->Fetch(); if(intval($arSction['ELEMENT_CNT']) > 0){ |
|
Проблема в том, что GetList возвращает false для разделов второго уровня вложенности, а для тех десяти разделов первого уровня работает нормально.
Используя CIBlockSection::GetByID() выводятся данные о разделах любого уровня, но вот количество элементов среди этих данных нет.
В CIBlockSection::GetList() выводятся такие данные, если передать третьим параметром bIncCnt=true . А GetByID() не принимает такого параметра. Может кто знает как добиться вывода количества элементов в разделе этим методом ?