В шаблоне фильтра (bitrix:catalog.smart.filter) в файле result_modifier.php собираем активные фильтры.
$arResult['SET_FILTERS'] = [];
foreach ($arResult['ITEMS'] as $k => $arItem) {
switch ($arItem['DISPLAY_TYPE']) {
case 'A':
case 'B':
/** Пропустим числовые данные ползунки */
break;
default:
foreach ($arItem['VALUES'] as $v) {
/** Если фильтр активен, то запишем значение в массив */
if ($v['CHECKED'] == 1) {
$arResult['SET_FILTERS'][] = $v['VALUE'];
}
}
}
}
/** Добавим значение в кеш */
$cp = $this->__component;
if (is_object($cp)) {
$cp->arResult['SET_FILTERS'] = $arResult['SET_FILTERS'];
$cp->SetResultCacheKeys(
[
'SET_FILTERS'
]
);
}Данные мы собрали, теперь их нужно записать в глобальную переменную
В файле component_epilog.php всё того же шаблона, сделаем это
if (!empty($arResult['SET_FILTERS'])) {
$APPLICATION->SetPageProperty('titleSuffix', implode(', ', $arResult['SET_FILTERS']));
}Вывод данных
Выводим через OnEpilog в init.php
AddEventHandler("main", "OnEpilog", function()
{
global $APPLICATION;
$titleSuffix = $APPLICATION->GetPageProperty('titleSuffix');
if (!empty($titleSuffix)) {
$h1 = $APPLICATION->GetTitle();
$newH1 = $h1 . ' ' . $titleSuffix;
$APPLICATION->SetTitle($newH1);
/** Добавим в хлебные крошки */
$APPLICATION->AddChainItem($titleSuffix);
foreach (['title', 'description', 'keywords'] as $prop) {
$current = $APPLICATION->GetPageProperty($prop);
$newValue = str_replace($h1, $newH1, $current);
if ($current !== $newValue) {
$APPLICATION->SetPageProperty($prop, $newValue);
}
}
}
}
);Источник: khozyaykin.ru



