Битрикс Умный фильтр — как сделать ЧПУ вместо XML_ID

Стандартно, умный фильтр формирует плохо читаемые URL. Переводим формирование значений с русского на латиницу.

Как в умном фильтре битрикса сформировать нормальные ссылки для свойств

Почему эту возможность не внесли стандартно на момент написания статьи, не понятно. Давайте дописывать.
Пример такой ссылки:

tip_lampy-is-67a6c5e6-f6bf-11e7-1487-005056bf06e1

67a6c5e6-f6bf-11e7-1487-005056bf06e1 — как видно из кода, перед нами XML_ID, который, как правило, выгружается с 1С. Для того чтобы поменять формирование, вам необходимо изменить class.php.

Меняем нужную строчку на:

$url_id = CUtil::translit(toLower($enum["VALUE"]), "ru");

Первая часть задачи сделана. Теперь необходимо скопировать компонент в собственное пространство имён, и переписать в каталоге подключение компонента. После этого всё будет работать правильно, ваши ссылки станут читаемые:
/filter/brand-is-apisan-or-bosh/apply/
/filter/brand-is-bosh/apply/

А что по поводу обновлений? Не слетят ли доработки? Картина следующая — «наш новый компонент» утратил все возможные обновления, кроме ручного копирования файлов и замены нужной строки. Но, обновления не собьют доработку, разве что обновление готового шаблона, может стереть строчку подключения нового компонента.

Если на вашем проекте необходимо настроить ЧПУ для фильтра, пишите

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

2 комментария

  1. Если у магазина товаров до 50 тысяч, а общее количество свойств не превышает 500, можно смело использовать умный фильтр битрикса. Он справится. Если товаров или свойств в разы больше, придется делать собственную разработку.

    1. Встречал пару таких проектов, там даже администрирование информационного блока открывалось очень долго. Как потом оказалось, они просто парсили в свою базу чуть ли не всё подряд 🙂 И в тот момент никто не думал про дальнейшую оптимизацию и масштабирование каталога, а зря

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *