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



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

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

    Порядок действий:

    1. каталог с пагинацией, страниц 2 или более
    2. отсортировали товары, например, по цене
    3. на первой странице кликнули на товар и перешли на его страницу
    4. в браузере жмем возврат на предыдущую страницу, т. е. в каталог
    5. видим идентично отсортированный по цене каталог, все селекты сортировки в том же положении
    6. посредством пагинации переходим на вторую страницу каталога и видим сортировку товара по 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-ю. При использовании слайдера такой проблемы нет.



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

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.