Функция, которая сформирует часть url для фильтра:
Код |
---|
CBitrixCatalogSmartFilter::encodeSmartParts($smartParts); |
В моём случае этот кусок url в самом фильтре кодируется почему-то несколько раз, так что будьте внимательны.
Перед использованием этой функции нужно подключить класс умного фильтра:
Код |
---|
CBitrixComponent::includeComponentClass("bitrix:catalog.smart.filter"); |
Саму функцию можно посмотреть в файле:
/bitrix/components/bitrix/catalog.smart.filter/class.php
Там также можно посмотреть, как формируется массив $smartParts для разных типов свойств.
Мой код вывода двух свойств (производитель и материал) со ссылками на страницы фильтра:
Код |
---|
if(($arOneProp['CODE'] == 'MATERIAL') OR ($arOneProp['CODE'] == 'MANUFACTURER')){
$smartParts[0][0] = toLower($arOneProp['CODE']);
$smartParts[0][1] = urlencode(toLower($arOneProp['DISPLAY_VALUE']));
$buffer_link = CBitrixCatalogSmartFilter::encodeSmartParts($smartParts);
$buffer_link = str_replace("#SMART_FILTER_PATH#", $buffer_link[0], $arParams['SEF_URL_TEMPLATES']['smart_filter']);
$filter_link = str_replace("#SECTION_CODE_PATH#", mb_substr($arResult['SECTION']['SECTION_PAGE_URL'],0,-1), $buffer_link);
echo "<a href='".$filter_link."'>".$arOneProp['DISPLAY_VALUE']."</a>";
}
|