Нужно было решить следующую простую задачу: в каталоге у элементов(товаров) имеется набор свойств типа - список. На странице выдачи списка товаров необходимо сделать фильр по данным свойствам, а отображение значений данных свойст должно при необходимости иметь иерархическую структуру.
Как оказалось в рунете информации как это лучше сделать нет, поэтому изобрёл велосипед заново
Итак: в настройках свойств инфоблока добавляем у нужных элементов к-нибудь префикс в виде редко используемого символа, например "_". Выглядеть это будет примерно как на рисунке 1 ниже. Сохраняем изменения.
Далее как это не прискорбно приходится лезть в сам компонент \bitrix\components\bitrix\catalog.filter\component.php (Желающие могут его кастомизировать
изменяем следующие строки (где то строка 491)
! Обратитке внимание на то что убрана функция htmlspecialchars
Готово.
Идём на страницу с фильтром и смотрим на результат. Пример, рисунок 2.
Естественно,если Вам нужно сделать оступы на разную величину, то у элементов списка можно поставить нужное количество символов "_" (или другого, которого Вы решили использовать)
Если есть ещё простые решения будем рады ...
P.S. Простите за плохое оформление - торопился я.
Как оказалось в рунете информации как это лучше сделать нет, поэтому изобрёл велосипед заново
Итак: в настройках свойств инфоблока добавляем у нужных элементов к-нибудь префикс в виде редко используемого символа, например "_". Выглядеть это будет примерно как на рисунке 1 ниже. Сохраняем изменения.
Далее как это не прискорбно приходится лезть в сам компонент \bitrix\components\bitrix\catalog.filter\component.php (Желающие могут его кастомизировать
изменяем следующие строки (где то строка 491)
Код |
---|
$res .= ' value="'.htmlspecialchars($key).'">'.htmlspecialchars($val).'</option>'; |
Код |
---|
$val = str_ireplace('_'," ",$val); $res .= ' value="'.htmlspecialchars($key).'">'.$val.'</option>'; |
! Обратитке внимание на то что убрана функция htmlspecialchars
Готово.
Идём на страницу с фильтром и смотрим на результат. Пример, рисунок 2.
Естественно,если Вам нужно сделать оступы на разную величину, то у элементов списка можно поставить нужное количество символов "_" (или другого, которого Вы решили использовать)
Если есть ещё простые решения будем рады ...
P.S. Простите за плохое оформление - торопился я.