Последние темы


tagManager2, проблема с сортировкой дробных чисел

  • @Andchir А как посмотреть? До этого просто проблем не возникало)

  • @Andchir В firebug ошибок нет

  • @Andchir И в журнале ошибок ModX пусто

  • В наборе параметров включить debug и посмотреть запросы в журнале ошибок (пора бы его назвать просто "консоль").
    http://wiki.modx-shopkeeper.ru/doku.php?id=getproducts

    До этого просто проблем не возникало)

    До чего "этого"?

  • @Andchir

    (
        [0] => Array
            (
                [0] => isfolder01
                [1] => 0
                [2] => 2
            )
    
    )
    
    [2016-07-18 09:08:16] (ERROR @ /home/nerpaby/public_html/core/components/getproducts/model/getproducts.class.php : 667) [INFO] getProducts: total = 4 - SELECT `sc`.*, (SELECT `value` FROM `modx_site_tmplvar_contentvalues` WHERE `tmplvarid` = '5' AND `contentid` = `sc`.`id` LIMIT 1) AS `price`
            FROM `modx_site_content` `sc`
            WHERE `sc`.`parent` IN (3,12,13,14,16,17,23,24)
    AND `sc`.`published` = 1 AND `sc`.`deleted` = 0
    AND `sc`.`context_key` = 'web' AND (`sc`.`isfolder` = :isfolder01)
    
    AND `sc`.`id` IN (
            SELECT `tvc`.`contentid`
            FROM `modx_site_tmplvar_contentvalues` AS `tvc`,
                 `modx_site_tmplvars` AS `tv`
            WHERE `tv`.`id` = `tvc`.`tmplvarid`AND `tv`.`name` = :tvname0 AND (CAST(`tvc`.`value` AS DECIMAL(10,2)) >= :tvvalue01)
    AND `tvc`.`contentid` IN
        (
            SELECT `tvc`.`contentid`
            FROM `modx_site_tmplvar_contentvalues` AS `tvc`,
                 `modx_site_tmplvars` AS `tv`
            WHERE `tv`.`id` = `tvc`.`tmplvarid`AND `tv`.`name` = :tvname1 AND (CAST(`tvc`.`value` AS DECIMAL(10,2)) <= :tvvalue11)
        )
    )
            ORDER BY CAST(`price` AS SIGNED) asc
            LIMIT 0, 6 
            
    Array
    (
        [0] => Array
            (
                [0] => isfolder01
                [1] => 0
                [2] => 2
            )
    
    )
    
    Array
    (
        [0] => Array
            (
                [0] => tvname0
                [1] => price
                [2] => 2
            )
    
        [1] => Array
            (
                [0] => tvvalue01
                [1] => 13
                [2] => 2
            )
    
        [2] => Array
            (
                [0] => tvname1
                [1] => price
                [2] => 2
            )
    
        [3] => Array
            (
                [0] => tvvalue11
                [1] => 14
                [2] => 2
            )
    
    )
    
    [2016-07-18 09:08:27] (ERROR @ /home/nerpaby/public_html/core/components/getproducts/model/getproducts.class.php : 667) [INFO] getProducts: total = 4 - SELECT `sc`.*, (SELECT `value` FROM `modx_site_tmplvar_contentvalues` WHERE `tmplvarid` = '5' AND `contentid` = `sc`.`id` LIMIT 1) AS `price`
            FROM `modx_site_content` `sc`
            WHERE `sc`.`parent` IN (3,12,13,14,16,17,23,24)
    AND `sc`.`published` = 1 AND `sc`.`deleted` = 0
    AND `sc`.`context_key` = 'web' AND (`sc`.`isfolder` = :isfolder01)
    
    AND `sc`.`id` IN (
            SELECT `tvc`.`contentid`
            FROM `modx_site_tmplvar_contentvalues` AS `tvc`,
                 `modx_site_tmplvars` AS `tv`
            WHERE `tv`.`id` = `tvc`.`tmplvarid`AND `tv`.`name` = :tvname0 AND (CAST(`tvc`.`value` AS DECIMAL(10,2)) >= :tvvalue01)
    AND `tvc`.`contentid` IN
        (
            SELECT `tvc`.`contentid`
            FROM `modx_site_tmplvar_contentvalues` AS `tvc`,
                 `modx_site_tmplvars` AS `tv`
            WHERE `tv`.`id` = `tvc`.`tmplvarid`AND `tv`.`name` = :tvname1 AND (CAST(`tvc`.`value` AS DECIMAL(10,2)) <= :tvvalue11)
        )
    )
            ORDER BY CAST(`price` AS SIGNED) desc
            LIMIT 0, 6 
            
    Array
    (
        [0] => Array
            (
                [0] => isfolder01
                [1] => 0
                [2] => 2
            )
    
    )
    
    Array
    (
        [0] => Array
            (
                [0] => tvname0
                [1] => price
                [2] => 2
            )
    
        [1] => Array
            (
                [0] => tvvalue01
                [1] => 13
                [2] => 2
            )
    
        [2] => Array
            (
                [0] => tvname1
                [1] => price
                [2] => 2
            )
    
        [3] => Array
            (
                [0] => tvvalue11
                [1] => 14
                [2] => 2
            )
    
    )
  • У getProducts есть только конвертация строки в целое число при сортировке. У TV все значения хранятся как строки. Попробуйте в файле "/core/components/getproducts/model/getproducts.class.php" строку (592):

    $orderby_str .= "CAST(`{$this->config['sortbyTV']}` AS SIGNED)";
    

    заменить на такую:

    $orderby_str .= "CAST(`{$this->config['sortbyTV']}` AS DECIMAL(10,2))";
    
  • @Andchir спасибо, все работает, filters_simple.js вернул как и было строку

    slider_steps: [10, 0.1],//Число единиц шага слайдера
    
  • Подскажите, как в фильтре поставить "Число единиц шага слайдера" только целые числа (чтобы не было дроби) ???
    alt text

  • Сам разобрался)))) В файле filter.js просто поменял строчка
    var slider_step = maxValue - minValue < 100 ? 0.1 : 1;

    на
    var slider_step = maxValue - minValue < 1 ? 1 : 1;

 

Последние комментарии

  • M

    @Andchir , спасибо. Проблема и правда была в одном из плагинов, который на другом сайте нормально работает

    Читать далее
  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

    Читать далее
  • J

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

    Читать далее