Вывод количества элементов в разделе инфоблока Bitrix

05.06.2022
Содержание:

В новой записи я вам покажу как выводить количество активных элементов в разделе Bitrix. Данный код можно использовать при AJAX фильтрации умным фильтром.

Для того чтобы получить просто вывести количество элементов в разделе, вы можете воспользоваться следующим кодом, где в качестве первого параметра указываем ID раздела, а вторым параметром укажем параметры фильтрации.

$res = CIBlockSection::GetSectionElementsCount($sectId, Array("CNT_ACTIVE"=>"Y"));

Аналогичный вывод с использованием метода GetList

$arFilter = Array(
    "IBLOCK_ID" => 4,
    "SECTION_ID" => $arResult["SECTION"]["ID"],
    "ACTIVE"=>"Y",
    "INCLUDE_SUBSECTIONS" => 'Y'
);

$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, Array("ID"));
if($count = $res->SelectedRowsCount()){
    $activeElements = $count;
}

Для того чтобы использовать вывод результата при фильтрации умным фильтром, необходимо разместить данный код в шаблон компонента catalog.smart.filter и добавить в массив фильтрации $arFilter параметры от компонента умного фильтра.

Для этого я просто с помощью функции array_merge сливаю два массива с параметрами фильтрации.

Полный код для вывода количества элементов в умном фильтре.

$arFilter = Array(
    "IBLOCK_ID" => 4,
    "SECTION_ID" => $arResult["SECTION"]["ID"],
    "ACTIVE"=>"Y",
    "INCLUDE_SUBSECTIONS" => 'Y'
);
if($GLOBALS["arrFilter"]) {
    $arFilter = array_merge($arFilter, $GLOBALS["arrFilter"]);
}
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, Array("ID"));
if($count = $res->SelectedRowsCount()){
    $activeElements = $count;
}
На этом всё!
Больше интересных статей в нашей группе - https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи - https://vk.com/prog_time
Так же прокачивайте свои навыки на нашем канале - https://www.youtube.com/c/ProgTime
Наши планы
  • Написание материала для курса по разработке ботов на Telegram
  • Разработка универсального парсера на PHP

Поддержите мой сайт!

Каждый переведённый донат, мотивирует на создание новых записей и уроков на YouTube