Реализовал следующим образом: скопировал компонент menu.sections и подправил в нем component.php
Тут я добавил "ELEMENT_CNT", и в CIBlockSection::GetList() поменял false на true третьим параметром, который и отвечает за вывод информации о количестве элементов в разделах.
Вот тут еще добавил "ELEMENT_CNT" => $arSection["ELEMENT_CNT"],
И в самом конце "ELEMENT_CNT" =>$arSection["ELEMENT_CNT"],
Все. Параметр будет храниться в $section['PARAMS']['ELEMENT_CNT'].
| Код |
|---|
$rsSections = CIBlockSection::GetList($arOrder, $arFilter, true, array( "ID", "DEPTH_LEVEL", "NAME", "SECTION_PAGE_URL", "ELEMENT_CNT", )); |
Тут я добавил "ELEMENT_CNT", и в CIBlockSection::GetList() поменял false на true третьим параметром, который и отвечает за вывод информации о количестве элементов в разделах.
Вот тут еще добавил "ELEMENT_CNT" => $arSection["ELEMENT_CNT"],
| Код |
|---|
while($arSection = $rsSections->GetNext())
{
$arResult["SECTIONS"][] = array(
"ID" => $arSection["ID"],
"DEPTH_LEVEL" => $arSection["DEPTH_LEVEL"],
"~NAME" => $arSection["~NAME"],
"~SECTION_PAGE_URL" => $arSection["~SECTION_PAGE_URL"],
"ELEMENT_CNT" => $arSection["ELEMENT_CNT"],
);
$arResult["ELEMENT_LINKS"][$arSection["ID"]] = array();
} |
И в самом конце "ELEMENT_CNT" =>$arSection["ELEMENT_CNT"],
| Код |
|---|
foreach($arResult["SECTIONS"] as $arSection)
{
if ($menuIndex > 0)
$aMenuLinksNew[$menuIndex - 1][3]["IS_PARENT"] = $arSection["DEPTH_LEVEL"] > $previousDepthLevel;
$previousDepthLevel = $arSection["DEPTH_LEVEL"];
$arResult["ELEMENT_LINKS"][$arSection["ID"]][] = urldecode($arSection["~SECTION_PAGE_URL"];
$aMenuLinksNew[$menuIndex++] = array(
htmlspecialcharsbx($arSection["~NAME"],
$arSection["~SECTION_PAGE_URL"],
$arResult["ELEMENT_LINKS"][$arSection["ID"]],
array(
"FROM_IBLOCK" => true,
"IS_PARENT" => false,
"DEPTH_LEVEL" => $arSection["DEPTH_LEVEL"],
"ELEMENT_CNT" =>$arSection["ELEMENT_CNT"],
),
);
} |
Все. Параметр будет храниться в $section['PARAMS']['ELEMENT_CNT'].
;