Введите поисковый запрос

Умный фильтр на последнем уровне разделов каталога.

Если в разрабатываемом магазине или в принципе в каталоге на Битрикс, вы выводите умный фильтр в разделах - он выводится во всех разделах и подразделах каталога.

Но, например: вы хотите скрыть умный фильтр во всех подразделах каталога, кроме самых последних, не имеющих подразделов, не зависимо от глубины разделов в инфолоке каталога.

Сделать это можно, по следующей инструкции:

Получаем ID раздела, зная его код. Методом CIBlockFindTools

В файл section.php комплексного шаблона каталога, в переменную $arResult, передается только SECTION_CODE

Для дальнейших манипуляций, нам потребуется именно ID текущего раздела каталога. Для это есть метод CIBlockFindTools::GetSectionID - который позволит получить SECTION_ID зная SECTION_CODE



$arResult['SECTION_ID'] = CIBlockFindTools::GetSectionID(
	$arResult['VARIABLES']['SECTION_ID'], 
	$arResult['VARIABLES']['SECTION_CODE'], 
	array('IBLOCK_ID' => $arParams['IBLOCK_ID'])
);


Таким образом, теперь в переменной $arResult['SECTION_ID'] - мы получили ID текущего раздела, в котором находится пользователь.

Получаем подразделы, текущего раздела, зная его ID

Теперь, методом CIBlockSection::GetList, получаем подразделы раздела.



if(CModule::IncludeModule("iblock")){
    $arFilter = Array(
	    'IBLOCK_ID'=>$arParams["IBLOCK_ID"], 
	    'GLOBAL_ACTIVE'=>'Y', 
	    'SECTION_ID'=>$arResult['SECTION_ID']);
    $db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter, true);
    while($ar_result = $db_list->GetNext())
    {
        echo $ar_result['ID'].' '.$ar_result['NAME'];
    }
}


Здесь мы просто вывели ID и названия подразделов раздела. И само собой, если мы дошли до последнего раздела, в котором больше нет вложенных, нам просто ни чего не выведется.

Скрываем умный фильтр в разделах с подразделами

Для дальнейшей реализации, нам достаточно знать: О наличии хотя бы одно подраздела, не обязательно получать все. Просто модифицируем цикл вот так:



	while($ar_result = $db_list->GetNext())
{
    $haveSections = $ar_result['ID'];
break;
}


В переменную $haveSections мы передали ID первого подраздела и оборвали цикл на первой же итерации. Таким образом, в переменной у нас будет цифра или переменная будет пустая, если дошли до самого глубокого уровня вложенности

Дальше, обворачиваем вывод умного фильтра в условие с isset- просто провреяем "Не пустая ли переменная" $haveSections и если пустая- выводим фильтр


if (!isset($haveSections)) { 
	$APPLICATION->IncludeComponent(
        "bitrix:catalog.smart.filter",
        ......
        array('HIDE_ICONS' => 'Y')
    );
}


Вот и все! А скрыть товары (точнее bitrix:catalog.section) - можно точно также обвернув. Но лучше перевести параметр в каталоге "INCLUDE_SUBSECTIONS" => 'N' в 'Y', он же "Показывать элементы подразделов раздела:" - в настройках компонента каталога

Еще один способ определить последний раздел

Просто еще один способ, более простой но менее гибкий. Для определения последний ли раздел, можно воспользоваться смещением:


$lastSection = true;
if(($arCurSection['RIGHT_MARGIN'] - $arCurSection['LEFT_MARGIN']) > 1)
     $lastSection = false;
     


В переменной $arCurSection, в типовом шаблоне битрикс, хранится информация о текущем разделе. В своих шаблонах, если не наследуете типовые, можете получить данные о смещении из массива $arResult

Комментарии 2

  • Артём14.06.2026 04:59:11
    Задача один в один. А если разделы разной глубины вложенности — ваш способ через CIBlockFindTools это учитывает?
    • Егор14.06.2026 23:14:42
      Учитывает — проверяется именно наличие подразделов у текущего раздела, а не уровень. Нет детей → это последний уровень → показываем фильтр. Глубина не важна.

Оставить комментарий


Стоимость разработки сайта

Я не оцениваю работу в часах, так как в итоге, Вы все равно захотите узнать общую стоимость и срок выполнения.

При оценке проекта или работ я сразу называю стоимость и срок выполнения. Стоимость моих работ не обсуждается. Я называю реальную стоимость за которую готов взяться за ваш проект. Не торгуюсь и не объясняю "а почему это стоит столько?"
Денис Бунаков

Узнать точную стоимость разработки сайта или приложения: Для этого я могу попросить Вас заполнить какой нибудь бриф, но зачем Вам это надо?:

Оставить заявку

И мы все спокойно обсудим либо по телефону, либо удобным для Вас способом например в месенджере

Часто задаваемые вопросы

  • На какой CMS создаете сайты в Новосибирске?
    Обычно мы используем для работы CMS-систему «1С-Битрикс» т.к это наиболее надежная и удобная CMS. Так же она достаточно гибка для разработки на котором можно от обычных сайтов визиток до полноценный масштабных порталов и даже маркетплейсов
  • Какие гарантии есть на создание сайта в Новосибирске?
    Я предлагаю гарантию на исправление ошибок и техническую поддержку в течение 12 месяцев (1 года) после запуска сайта. Это включает в себя устранение багов и обеспечение корректной работы всех функций. Я также гарантируем соблюдение сроков и качества выполнения работ. Я на столько уверен в качестве своих работ, что готов давать такую большую гарантию
  • Можно ли в дальнейшем менять самостоятельно информацию или только с помощью вас?
    Да, вы сможете самостоятельно изменять информацию на сайте, либо загружать их в электронном виде пакетными методами. Предоставляем подробные инструкции и обучающие материалы как всем пользоваться, чтобы вы могли легко управлять контентом. Однако, если у вас возникнут сложности или потребуется помощь, наша команда всегда готова помочь.
  • Вы оказываете услуги по созданию сайта и технической поддержки по договору ?
    Да, мы работаем только по договору как с юридическими, так и с физическими лицами. Вся необходимая бухгалтерская отчетность предоставляется своевременно.
  • Можно ли перенести уже существующий сайт на платформу 1С-Битрикс?
    Да, перенос сайта на другую платформу возможен, но это сложный процесс, который требует внимательной подготовки. Важно сохранить все данные (контент, изображения, SEO-настройки) и перенести функционал без потерь. Процесс может включать переписывание части кода и настройку новой платформы. Это особенно актуально, если текущая платформа не поддерживает новые функции или технологии. В моем портфолио есть сайт CибНИА имени С. А. Чаплыгина который как раз я полностью перенес на систему 1С битрикс с сохранением всего функционала
  • Чем отличается разработка сайта на шаблоне от индивидуального проекта?
    Сайт на шаблоне создается на основе готового дизайна, что снижает стоимость и ускоряет процесс разработки. Любой шаблон можно кастомизировать под себя НО! Иногда кастомизация может выйти дороже чем индивидуальная разработка. Дополнительно, в шаблонном решение может не быть нужного функционала. Индивидуальный проект создается с нуля по уникальному дизайну и потребностям клиента, что позволяет гибко настраивать функционал, но требует больше времени и ресурсов.
  • Следите ли вы за скоростью загрузки сайта?
    Да на всех этапах скорость загрузки сайта, чистота и оптимизация кода проходят тестирование и правки при ошибках, если хотите, то вы можете принимать активное участие на всех этапах.
  • Какая стоимость разработки сайта в Новосибирске и Москве?
    Стоимость создания и разработки сайта варьируется в зависимости от его сложности и функциональности. Например, базовый вариант может стоить от 100 000 рублей, в то время как более сложные проекты, например сайты интернет-магазинов или корпоративные порталы, могут стоить от 550 000 рублей и выше. Я готов обсудить требования и предложить оптимальное решение, соответствующее вашему бюджету. От региона присутствия сайта стоимость моих работ не меняется. Я не считаю что стоимость сайта в Москве должна превышать стоимость сайта в Новосибирске
  • Как будет работать мой сайт на мобильном телефоне?
    Я разрабатываю сайты с учетом адаптивного дизайна, что обеспечивает их корректное отображение и функциональность на всех устройствах, включая мобильные телефоны и планшеты. Это означает, что сайт будет автоматически подстраиваться под размер экрана, обеспечивая удобство использования и быстрое время загрузки на мобильных устройствах. Мои сайты отличаются доступным и привлекательным юзабилити, которые работают корректно и максимально профессионально увеличивают вашу прибыль.
  • Сколько времени уходит на создание сайта под ключ?
    Сроки разработки интернет-ресурса зависят от сложности проекта, в среднем, создание нового сайта занимает от 4 до 15 недель. Более сложные сайты могут потребовать больше времени. Но бывают проекты которые занимают до 1 года на разработку. Все очень индивидуально и примерные сроки я смогу озвучить после знакомства с Вами