Как получить и вывести в отдельном месте активные пункты умного фильтра?

Для получения и вывода активных пунктов умного фильтра в отдельном месте на сайте на платформе 1C-Bitrix, вам потребуется использовать некоторые функции и методы API фреймворка.

1. Первым шагом является подключение API компонента "Умный фильтр" в вашем файле шаблона страницы (например, header.php) с помощью следующей строки кода:

<?php if (CModule::IncludeModule('catalog')) { $APPLICATION->IncludeComponent("bitrix:catalog.smart.filter", "", Array(...)); } ?>

2. Далее, вам необходимо создать или отредактировать файл компонента "Умный фильтр" (например, /bitrix/components/bitrix/catalog.smart.filter/component.php) и добавить следующий код:

<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

$filterSettings = &$arResult["SECTIONS"]; // Получаем массив настроек фильтра из компонента

$activeSections = array(); // Создаем пустой массив для активных разделов

foreach ($filterSettings as $section) { // Проходимся по всем разделам фильтра
    foreach ($section["VALUES"] as $value) { // Проходимся по всем пунктам раздела
        if ($value["DISABLED"]) { // Проверяем, включен ли пункт фильтра
            continue; // Если пункт выключен, пропускаем его
        }
        if ($value["CHECKED"]) { // Проверяем, выбран ли пункт фильтра
            $activeSections[] = $value; // Если пункт выбран, добавляем его в массив активных разделов
        }
    }
}

// Выводим активные пункты фильтра в отдельном месте на сайте
foreach ($activeSections as $section) {
    echo $section["CONTROL_NAME"] . ": " . $section["VALUE"] . "<br>";
}
?>

3. После этого, вы можете вставить компонент "Умный фильтр" в нужное место на вашей странице (например, в sidebar.php) с помощью следующей строки кода:

<?php if (CModule::IncludeModule('catalog')) { $APPLICATION->IncludeComponent("bitrix:catalog.smart.filter", "", Array(...)); } ?>

4. Наконец, вы можете вставить вывод активных пунктов фильтра в нужное место с помощью следующего кода (например, в sidebar.php):

<?php if (CModule::IncludeModule('catalog')) { $APPLICATION->IncludeComponent("bitrix:catalog.smart.filter", "", Array(...)); } ?>

<!-- Вывод активных пунктов умного фильтра -->
<div>
    <h3>Активные пункты фильтра:</h3>
    <?php
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

    $filterSettings = &$arResult["SECTIONS"]; // Получаем массив настроек фильтра из компонента

    $activeSections = array(); // Создаем пустой массив для активных разделов

    foreach ($filterSettings as $section) { // Проходимся по всем разделам фильтра
        foreach ($section["VALUES"] as $value) { // Проходимся по всем пунктам раздела
            if ($value["DISABLED"]) { // Проверяем, включен ли пункт фильтра
                continue; // Если пункт выключен, пропускаем его
            }
            if ($value["CHECKED"]) { // Проверяем, выбран ли пункт фильтра
                $activeSections[] = $value; // Если пункт выбран, добавляем его в массив активных разделов
            }
        }
    }

    // Выводим активные пункты фильтра
    foreach ($activeSections as $section) {
        echo $section["CONTROL_NAME"] . ": " . $section["VALUE"] . "<br>";
    }
    ?>
</div>

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