Как вывести 2 умных фильтра на одной странице каталога?

Для того чтобы вывести два умных фильтра на одной странице каталога в системе 1C-Bitrix, вам нужно выполнить следующие шаги:

1. Подготовка каталога: Убедитесь, что у вас есть два умных фильтра, которые вы хотите вывести на странице каталога. Убедитесь также, что соответствующие свойства товаров настроены для фильтрации по этим фильтрам, и что ваши товары имеют значения этих свойств.

2. Создание шаблона страницы каталога: Откройте папку шаблонов вашего сайта в системе 1C-Bitrix, например, в папке "/bitrix/templates/Ваш_шаблон/". Создайте копию файла "catalog.section.php" и назовите его по своему усмотрению, например, "catalog.section.smartfilters.php". Откройте файл для редактирования.

3. Определение фильтров: В начале файла определите две переменные для фильтров, например, $SMART_FILTER_1 и $SMART_FILTER_2. Если вы знаете имена переменных кодов фильтров, вы можете использовать их, иначе вам придется определить их сами.

4. Получение фильтров: Найдите в коде файла функцию "CIBlockSection::GetList", которая используется для получения списка элементов каталога. В этой функции вам нужно добавить параметр "FILTER", в котором вы укажите фильтры для каждого умного фильтра. Например:

'FILTER' => array(
    'PROPERTY_SMART_FILTER_1' => $SMART_FILTER_1,
    'PROPERTY_SMART_FILTER_2' => $SMART_FILTER_2
)

5. Настройка вывода фильтров: В коде файла найдите функцию "CIBlockSection::GetFilterableProperties", которая используется для получения списка фильтруемых свойств. Измените эту функцию так, чтобы она возвращала только те свойства, которые вы хотите использовать в умных фильтрах. Например:

$arFilterableProperties = CIBlockSection::GetFilterableProperties($IBLOCK_ID, $SECTION_ID);
$arFilterableProperties = array_filter($arFilterableProperties, function($property) {
    return $property['CODE'] == 'SMART_FILTER_1' || $property['CODE'] == 'SMART_FILTER_2';
});

6. Вывод фильтров: Для вывода фильтров вам нужно добавить нужный код в соответствующие места файла. Найдите места, где выводится блок фильтров, обычно это внутри "CBitrixCatalogSmartFilter", и добавьте два блока с фильтрами для каждого умного фильтра. Например:

CBitrixCatalogSmartFilter::Show($IBLOCK_ID, $arSmartFilter, 'SMART_FILTER_1', $arParams['FILTER_NAME']);
CBitrixCatalogSmartFilter::Show($IBLOCK_ID, $arSmartFilter, 'SMART_FILTER_2', $arParams['FILTER_NAME']);

7. Настройка компонента: Наконец, настройте компонент "bitrix:catalog.section" на вашей странице каталога так, чтобы он использовал новый шаблон "catalog.section.smartfilters.php". Найдите код вызова компонента и добавьте параметр "TEMPLATE" со значением вашего файла шаблона. Например:

<?$APPLICATION->IncludeComponent(
	"bitrix:catalog.section",
	"",
	array(
		...
		"TEMPLATE" => "catalog.section.smartfilters.php",
		...
	),
	false
);?>

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