Умный фильтр на Битриксе

«Умный фильтр» — стандартный компонент Битрикса.
Его главная фишка в том, что результаты фильтрации отображаются на налету генерируемой странице с уникальным адресом, содержащим параметры поиска.
Например /topki/filter/brend-is-kratki/apply/
В этой заметочке я хочу написать о правильной настройке фильтра.


1. Красивого адреса мало, для страницы нужны метатеги и уникальное описание. Изобретать велосипед тут не будем, есть уже готовые плагины.
Их много, цены разные. Мы выбрали вот этот:
http://marketplace.1c-bitrix.ru/solutions/grain.seo/#tab-comments-link — есть тестовый период, скромная цена. И функционал не подвел, настроилось за 5 минут и все обещанное работает.
2. Адрес все же выходит не такой уж и красивый.
/topki/filter/brend-is-kratki/apply/ — filter, -is-, apply — лишние служебные слова не украшают адрес.
Поколдуем с ними.
2.1. apply убирается в настройках каталога без проблем.
2.2. filter убрать совсем нельзя. Это маркер для обработчика адресов каталога, он сообщает, что данный адрес на странице показывает не товар, а список отфильтрованных товаров. Но заменить его на что-то другое — возможно. Например — на некоторую короткое слово, возьмем, допустим, «kod». Это делается также в настройках каталога.
2.3. служебное слово -is- можно заменить в коде плагина /bitrix/components/bitrix/catalog.smart.filter/class.php
Для этого строку
$smartPart = preg_split("/-(from|to|is|or)-/", $smartPart, -1, PREG_SPLIT_DELIM_CAPTURE);
меняем на
$smartPart = preg_split("/(-from-|-to-|-|-or-)/", $smartPart, -1, PREG_SPLIT_DELIM_CAPTURE);
Соответственно редактируем и обработку smartpart несколькими строками ниже (учитывая, что «is» у нас стало «-«, а «from» и остальные — имеют формат «-from-«).
А также заменяем в конце файла $urlPart .= urlencode('-is-'.$smartElement);
на $urlPart .= urlencode('-'.$smartElement);
2.3. В результате трансформаций получаем адрес такого типа:
/topki/kod/brend-kratki/, что выглядит уже прилично и полезно.