Самый простой вариант сделать свойство список с цветами можно прямо с числовым значением цвета. И кастомизировать шаблон фильтра, где выводить этот список цветом (css + js)
Сергей Мицковец пишет: Самый простой вариант сделать свойство список с цветами можно прямо с числовым значением цвета. И кастомизировать шаблон фильтра, где выводить этот список цветом (css + js)
а можно пожалуйста по подробней?)свойство список с цветами есть, и у каждого цвета есть id,стандартный компонент фильтра добавил в каталог,выбор цвета продукта выводит и фильтрует,но выглядит это все в виде <select> списка </select> , а как сделать чекбоксами не могу додуматься(((
Обратите внимание, что в этой статье не сказано, что сам компонент надо кастомизировать, (посмотрите как это сделано в демо сайте с новостями) иначе после первого же обновления Ваш фильтр «потрется» обновится. Проще всего кастомизировать шаблон компонента и изменить результ компонента в result_modifer.php перед шаблоном и там же добавить к чекбоксам маленькие дивчики с цветом.
В статью не вникал, но насколько я понимаю, код в статье меняет все мультиселекты на чекбоксы. А Вам нужно только один, другие могут остаться мультиселектами. Поэтому в result_modifer.php, а бы нашел текущее свойство $FILTER_NAME."_pf[".$arProp["ВАШ ЦВЕТ"]."]; и соответственно select name="$FILTER_NAME."_pf[".$arProp["ВАШ ЦВЕТ"]."]" и заменил бы на что угодно, хоть на просто дивы с цветом на которые нужно кликнуть. Либо еще проще скрыл бы этот мультиселект, а показывал бы те же цветные дивы и яваскриптом бы «нажимал» на необходимые поля в этом мультиселекте согласно нажатым дивам.
Сергей Мицковец,большое спасибо!!! но не совсем понятно(( создал файл result_modifer.php с кодом который Вы посоветовали,закинул его к копии компонента фильтра и вот что выводит
Сергей Мицковец пишет: Все правильно, закоментируйте
Код
echo '<pre>';print_r($arResult); echo'</pre>';
Я его Вам оставил, что бы Вам нагляднее было видно откуда, что берется.
я Вам как раз хотел про это сказать(в предыдущем сообщении),что если закоментировать эту строку,тогда одни списки отображаются(как и без файла result_modifer.php) не понятно вот как с помощью этого файла разложить по цветам,не могли бы Вы для примера показать хотя бы с одним цветом?
вместо "COLOR_ELEMENT" Вам нужно написать свой код свойства "TSVET_PRODUKTSII" и обратите внимание он у Вас [MULTIPLE] => N, тогда должны быть радиобатоны вместо чекбоксов.
Сергей Мицковец пишет: Совсем не понятно, у Вас чекбоксы вместо селекта появляются? А куда Вы положили result_modifer.php?
да,чекбоксы появляются,файл лежит bitrix/templates/название_шаблона/components/bitrix/catalog.filter/template8/result_modifer.php и при перезагрузке отмеченный чекбокс не checked( ну с этим я еще может и смогу разобраться,подскажите пожалуйста как разукрасить чекбоксы?
Или напишите вместо названия цвета его цифровое значение и рисуйте квадратик, или пишите цифровое значение после названия «Красный#F00», а в результе вырезайте его, да как угодно можно сделать.
Сергей Мицковец, огромное Вам спасибо,что так подробно расписали!) но мне интересна реализация именно такого фильтра по цветам,как здесь http://www.kruzevo.com/catalog/13/0/ уже все перерыл,но такого не могу найти((
Ну, а кто же Вам мешает, методами jQury сделать очень просто, я же Вам писал, даже не нужно менять мультиселект на чекбоксы. Делаете ему display:none, рисуете в темплейте квадратики на основе вашего свойства, каждому из них даете id="color_номер свойства (value)", при onClick на этом квадратике селекту с таким же value, делаете selected. Все просто, при повторном нажатии убираете. Такого не найдете, делайте сами.
Сергей Мицковец, я уже совсем запутался( если не нужно менять мультиселект,то куда это
Цитата
Делаете ему display:none, рисуете в темплейте квадратики на основе вашего свойства, каждому из них даете id="color_номер свойства (value)", при onClick на этом квадратике селекту с таким же value, делаете selected. Все просто, при повторном нажатии убираете.
Ух, жесть какая-то. display:none пишите своему мультиселекту, либо в темплейте, либо в том же result_modifer, а в темплейте на его месте рисуете квадратики.
квадратики с цветами выводятся,но как сделать onClick что бы при нажатии на квадратик появлялась рамка вокруг выделенного квадрата,соотв. при повторном нажатии пропадала?