Значение вместо внешнего кода у свойства типа «Список» в Умном фильтре
Для SEO может оказаться крайней важным, чтобы в ссылку примененного фильтра в компоненте Умного фильтра bitrix:catalog.smart.filter подставлялось текстовое значение свойства, а не его XML_ID у типа "Список".
Особенно актуально, когда значения свойства приходят из 1С, и там в XML_ID записывается длинный код, GUID.
Есть быстрое простое решение, хоть и придется для этого внести правку в ядро.
- Открываем файл /bitrix
/components /bitrix /catalog.smart.filter /class.php - Находим в нем следующую строку:
- Заменяем её на другую строку:
$url_id = mb_strtolower($enum["XML_ID"]);
$url_id = CUtil::translit(mb_strtolower($enum["VALUE"]), "ru");
Теперь вместо XML_ID в URL будет подставляться значение, которое транслитерируется, если было на русском, и приводится к нижнему регистру.
То есть вместо какого-нибудь /catalog
Фильтр при этом продолжит работать.
Да, править ядро считается не очень хорошо, и при обновлении Битрикса есть риск, что правка затрется, тогда ее надо будет внести заново.
Конечно, вы можете скопировать полностью компонент в папку /local/components/, внести правку там, тогда она не затрется.
Однако, как я замечал, данный файл компонента, Битрикс обновляет довольно редко, так что далеко не факт, что каждое обновление ваша правка будет перетираться, поэтому возможно проще оставить правку в ядре, и просто при обновлении проверять не затерлась ли строчка.
Оставьте комментарий
Если эта статья была полезной для вас, оставьте комментарий ниже или задайте интересующий Вас вопрос. Ваш опыт может помочь другим читателям!
Написать комментарий