Уважаемые, помогите мне!
Я чего-то явно не понимаю.
[...]
Хотя в демке да и в самом компоненте, там где сортировка по типу эти поля выпадают.
У меня куплена поддержка, я спросил об этом разработчиков и они
Для просмотра ссылки Войди или Зарегистрируйся :
Range slider is displayed when you are using numerical fields.
In Virtuemart 3 the numerical custom field is removed, so now the only granted way to have numerical values is by using our
Для просмотра ссылки Войди или Зарегистрируйся
Т.е. в третьем вирте убрали числовой тип поля из настраиваемых полей (логично, т.к. строковой тип прекрасно справляется с задачей), а ползунки можно применять только к ним (что тоже логично).
Получается облом.
Однако, я думаю, что в этом случае мы имеем защиту от дурака. Т.е. в компоненте фильтра явно есть механизм вывода слайдера, но он отключен. Предполагаю, можно решить хаком.
К примеру, можно проверять строковые поля с названиями (придумаем добавлять к полю суффикс "_num", это будут числовые) и при проверке на тип разрешать слайдер для этих полей.
А дальше уж самим следить за тем, чтобы заполнять эти поля только числовыми данными.
Ну, вот вам ребятушки и решение я нашел:
открываем
\administrator\components\com_customfilters\models\customfilters.php
в нем находим на 522 строке (для версии 2.2.6) такой код:
PHP:
if(($type!='int' && $type!='float') && ($opt->type=='range_inputs' || $opt->type=='range_slider')){}
else if($type!='date' && ($opt->type=='range_calendars')){}
он проверяет, если поле не целочисленное и не плавающее, то возможность выбрать слайдер будет отключена
и меняем его на такой:
PHP:
//if(($type!='int' && $type!='float') && ($opt->type=='range_inputs' || $opt->type=='range_slider')){}
if($type!='date' && ($opt->type=='range_calendars')){}
Всё, можно выбирать слайдер для любого поля.
Если учитывать что преобразование к числу всё равно производится в контроллере компонента, то должно всё работать.
Единственное, не вызывается диалог настроек, в котором можно задавать параметры слайдера (например мин и макс значения, по умолчанию они от 0 до 300).
При нажатии на эту ссылку ничего не происходит:
Надо смотреть скрипты, там ошибка валится в консоль:
С этим позже разберусь, если руки дойдут.
Нашел, однако. Вот вам дополнение:
открываем
\administrator\components\com_customfilters\views\customfilters\tmpl\default_settings.php
и в нем комментируем (или убираем) строку с проверкой (23 строка
PHP:
//if($item->data_type=='float' || $item->data_type=='int' || $item->data_type=='date'){
и последнюю, закрывающую строку:
После этого у вас будет появляться окно настроек для слайдера: