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


tagManager 2: слетает сортировка товара при использовании пагинации

  • Здраствуйте!

    Настроил на MODX Revolution 2.5.1-pl систему фильтрации tagManager 2 2.3-pl в режиме AJAX. Пагинация, сортировка и фильтрация работает четко, но есть один неудобный момент.

    Порядок действий:
    0) каталог с пагинацией, страниц 2 или более

    1. отсортировали товары, например, по цене
    2. на первой странице кликнули на товар и перешли на его страницу
    3. в браузере жмем возврат на предыдущую страницу, т. е. в каталог
    4. видим идентично отсортированный по цене каталог, все селекты сортировки в том же положении
    5. посредством пагинации переходим на вторую страницу каталога и видим сортировку товара по pagetitle, а селект сортировки в положении «сортировать по цене».

    Проверил все записи на форуме по tagManager. Похожей проблемы не нашел.
    Скачал готовый демо-сайт, добавил в него сортировку.

    <select class="f_sortby" name="sortby" onchange="tmFilters.changeOrder(this);">
        <option value="pagetitle">по названию</option>
        <option value="price">по цене</option>
        <option value="publishedon">по дате</option>
    </select>
    

    Возникает аналогичная проблема.

    Похожая проблема есть и на демо-сайте http://demo.modx-shopkeeper.ru/

    1. заходим в раздел каталога «Компьютеры», в котором 18 товаров с постраничной разбивкой по 9шт.
    2. выбираем вывод по 12 шт на страницу. На первой странице выводиться 12шт, на второй остальные 6. Параметры в адресной строке - sortdir=asc&page=1&limit=12
    3. находясь на первой странице кликаем на любой товар
    4. на странице товара в браузере жмем возврат на предыдущую страницу
    5. возвращаемся в каталог. Параметры теже sortdir=asc&page=1&limit=12. В селекте стоит «вывести по 12». Выведено теже 12 товаров.
    6. переходим на вторую страницу, где должны находиться остальные 6 товаров, а выводится уже 9. Параметры — sortdir=asc&page=2. В селекте так и стоит 12 товаров на страницу.

    alt text

    По первичной диагностике проблема возникает из за того, что после возврата со страницы товара в каталог, у последнего исчезают следующие скрытые поля перед тегом </form>.

    <input name="limit" value="12" type="hidden">
    <input name="page" value="1" type="hidden">
    

    Подскажите можно ли решить эту проблему настройками tagManager-а?

  • Попробуйте добавить такие поля:

    <input name="limit" value="[[!getRequest?paramName=`limit`&defaultValue=`9`]]" type="hidden">
    <input name="page" value="[[!getRequest?paramName=`page`&defaultValue=`1`]]" type="hidden">
    

    Код сниппета "getRequest" здесь:
    https://github.com/andchir/shopkeeper3/blob/master/core/components/shopkeeper3/elements/snippets/getRequest.php

    Для сортировки видимо надо по такому же принципу.

  • Andchir, добрый день. Спасибо за ответ.

    Для сортировки товара предложенное решение действительно подошло, но проблему с фильтрацией оно не решает.

    На примере демосайта (http://demo.modx-shopkeeper.ru/😞

    1. заходим в Каталог > Компьютеры
    2. максимальную цену урезаем до 80000, то останется 12 и 5 товаров на 1 и 2 странице соответственно.
    3. находясь на 1 странице раздела каталога обновляем ее или заходим в любой товар, затем возвращаемся обратно в раздел.
    4. выглядит все как и до обновления
    5. переходим на страницу 2 и видим вывод всех 9 товаров вместо 5. Возвращаемся на 1-ю страницу, а там товары дороже 80000. Фильтр стоит с ограничением — не дороже 80000.

    При тестировании выше указанной последовательности на демосайте нашелся мини-баг. Для меня он не критичен, т. к. для указания границы цены использовать текстовое поле не буду. Суть — если в разделе Компьютеры указать в текстовом поле верхний лимит цены 80000 и после фильтрации нажать на 2 страницу, то на мгновение загружается 2-я страница и тут же идет возврат на 1-ю. При использовании слайдера такой проблемы нет.

 

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

  • Что нового в 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 (красным выделено, то что приходится постоянно удалять

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

    Участник @Jokerit написал в TagManager2 отображает в фильтре удаленные значения TV-полей:

    tmRefresh

    Так и не смог найти как включить

    Читать далее