Неправильная работа фильтра-ползунка с дробными числами

Известные ошибки проявляющиеся при работе с сайтом
-Got error 28 from storage engine
-MySQL server has gone away
-Данные не в формате JSON
Ответить
Аватара пользователя
ign81
lvl 2
Сообщения: 5
Зарегистрирован: 04 мар 2020, 14:15

Неправильная работа фильтра-ползунка с дробными числами

Сообщение ign81 » 04 мар 2020, 14:55

Фильтр-ползунок, если характеристики записывать дробными числами неправильно работает. Проверил на тестовом сайте http://gipermarket.demo.moguta.ru/

Порядок действий, например для товаров категории "Двери":
  • 1. Изменил характеристику товаров "Толщина полотна": Использовать в фильтрах = да, Тип отображения в фильтре = Ползунок.
    Изображение
  • 2. Добавил дробные значения характеристики из п.1 для товаров категории "Двери".
    Изображение
  • 3. На странице фильтров отображение нормальное:
    Изображение
  • 4. На странице категории в фильтрах движение ползунка только по целым числам (естественно передвинуть к краям ползунок не выходит):
    Изображение
Попробовал решить проблему в файле "mg-templates\moguta\components\filter\filter.js", заменил в коде:

Код: Выделить всё

        // Собираем слайдер с ползунками для всех характеристик
        $(".mg-filter-item .mg-filter-prop-slider").each(function (i) {

            var min = parseInt($(this).data("min"));
            var max = parseInt($(this).data("max"));

            var fMin = (parseInt($(this).data("factmin"))) ? parseInt($(this).data("factmin")) : min;
            var fMax = (parseInt($(this).data("factmax"))) ? parseInt($(this).data("factmax")) : max;

            var sliderEl = $(this);
            var minInput = $("input#Prop" + $(this).data("id") + "-min");
            var maxInput = $("input#Prop" + $(this).data("id") + "-max");
            var step = max / 10;

            // Создаем ползунок
            $(this).slider({
                min: min,
                max: max,
                values: [fMin, fMax],
                step: 1,
                range: true,
                stop: function (event, ui) {
                    minInput.val(sliderEl.slider("values", 0));
                    maxInput.val(sliderEl.slider("values", 1));
                    getFilteredItems(maxInput);
                },
                slide: function (event, ui) {
                    minInput.val(sliderEl.slider("values", 0));
                    maxInput.val(sliderEl.slider("values", 1));
                }
            });

            // Создаем крючок для ввода из полей
            minInput.change(function () {
                var value1 = minInput.val();
                var value2 = maxInput.val();

                // Если значение ускакало за пределы
                if (parseInt(value1) > parseInt(value2)) {
                    value1 = value2;
                    minInput.val(value1);
                }
                sliderEl.slider("values", 0, value1);
                getFilteredItems(maxInput);
            });

            maxInput.change(function () {
                var value1 = minInput.val();
                var value2 = maxInput.val();

                if (parseInt(value1) > parseInt(value2)) {
                    value2 = value1;
                    maxInput.val(value2);
                }
                sliderEl.slider("values", 1, value2);
                getFilteredItems(maxInput);
            });
        });
Следующие значения:

Код: Выделить всё

parseInt на parseFloat
step: 0.001
Вроде сработало, но правая граница ползунка неверно выставляется при попытке возврата к исходному значению (округляется в меньшую сторону), т.е. достичь правой границы движением ползунка не получается.
Также было бы лучше если бы перед выводом ползунка в фильтрах шла проверка на целые или дробные числа. При дробных числах - проверка разрядности (исходя из этого выставлять шаг ползунка step = 0.1 или step = 0.01 и т.д).
Аватара пользователя
ign81
lvl 2
Сообщения: 5
Зарегистрирован: 04 мар 2020, 14:15

Re: Неправильная работа фильтра-ползунка с дробными числами

Сообщение ign81 » 12 мар 2020, 10:11

Этот форум настолько заброшен, что даже на ошибки движка разработчики не обращают внимания?
Аватара пользователя
AndreySupport
Web-мастер
Сообщения: 1251
Зарегистрирован: 31 янв 2016, 20:35

Re: Неправильная работа фильтра-ползунка с дробными числами

Сообщение AndreySupport » 18 мар 2020, 18:00

Обновите шаблон.
Аватара пользователя
ign81
lvl 2
Сообщения: 5
Зарегистрирован: 04 мар 2020, 14:15

Re: Неправильная работа фильтра-ползунка с дробными числами

Сообщение ign81 » 20 мар 2020, 12:08

Все по старому, изменений в фильтрах не было, ошибка осталась.
Аватара пользователя
AndreySupport
Web-мастер
Сообщения: 1251
Зарегистрирован: 31 янв 2016, 20:35

Re: Неправильная работа фильтра-ползунка с дробными числами

Сообщение AndreySupport » 23 мар 2020, 19:21

В поддержку можете написать?
Аватара пользователя
ign81
lvl 2
Сообщения: 5
Зарегистрирован: 04 мар 2020, 14:15

Re: Неправильная работа фильтра-ползунка с дробными числами

Сообщение ign81 » 24 мар 2020, 17:52

AndreySupport писал(а):
23 мар 2020, 19:21
В поддержку можете написать?
Я это все проверил на вашем официальном демо-сайте, тестировал движок. Можете проделать вышеописанное и убедиться сами. Фильтр с дробными числами работает криво.
Аватара пользователя
AndreySupport
Web-мастер
Сообщения: 1251
Зарегистрирован: 31 янв 2016, 20:35

Re: Неправильная работа фильтра-ползунка с дробными числами

Сообщение AndreySupport » 09 апр 2020, 12:06

ign81 писал(а):
24 мар 2020, 17:52
AndreySupport писал(а):
23 мар 2020, 19:21
В поддержку можете написать?
Я это все проверил на вашем официальном демо-сайте, тестировал движок. Можете проделать вышеописанное и убедиться сами. Фильтр с дробными числами работает криво.
Эта проблема исправлена.
Демка, скорее всего, просто не обновлена. Пришлите ссылку.
Аватара пользователя
ign81
lvl 2
Сообщения: 5
Зарегистрирован: 04 мар 2020, 14:15

Re: Неправильная работа фильтра-ползунка с дробными числами

Сообщение ign81 » 03 июн 2020, 15:01

Не вижу исправлений в упор. Зашел на демо вашего гипермаркета, добавил новую характеристику с дробными значениями (0.411, 0.751, 1.456, ...). Пытаюсь вывести в фильтре - диапазон ползунка от 0 до 1. Версия демо-движка в админке 9.3.1.
Изображение
Ответить