К содержанию

getPage + getResources - фильтрация вывода

Есть каталог недвижимости. Каталог фильтруется по нескольким критериям, вывод с помощью getPage + getResources. Параметры передаются в tvFilters из формы фильтра через POST. Соответственно после применения фильтра, сниппет возвращает плейсхолдер, что-то типа
propertyCost>=1000000,propertyCost<=2000000,propertyCant==Женева,propertySq>=100,propertySq<=200,propertyRooms==2
, который подставляется в tvFilters. Вывод работает корректно только для первой страницы, при переходе на другую страницу естественно получаем пустые значения POST и вывод не фильтруется. Подскажите, пожалуйста, как лучше в данном случае организовать фильтрацию вывода, чтобы корректно работала постраничная разбивка?
Богдан
Богдан
03 марта 2013, 13:01
modx.pro
2 532
Реклама

Комментарии: 7

Мордынский Николай
03 марта 2013, 21:12
Результат поста запихивать в $_SESSION[«filter»] к примеру, и пользоватся им if (isset($_SESSION[«filter»])) в вызов getPage пихать ее. Не забуудьте в конце сессию подчистить, а то будит таскать все время 1 ую
    Богдан
    Богдан Проверенный
    03 марта 2013, 23:10
    Видимо придется в сессию сохранять… Спасибо, Николай!
    Мордынский Николай
    03 марта 2013, 21:15
    а еще есть вот такая вот штука modx.com/extras/package/getproducts подозреваю что она какраз вам вместо гет ресурса подойдет
      Мордынский Николай
      03 марта 2013, 21:19
      хотя 1 хрен для гет пейджа, надо сессию таскать.
        Василий Наумкин
        Василий Наумкин Администратор
        04 марта 2013, 07:06
        Если параметры фильтра передавать через $_GET, то getPage их бережно сохранит.

        Это со всех сторон правильнее, и для поисковых машин и для передачи ссылок на результаты поиска людям.
          Богдан
          Богдан Проверенный
          04 марта 2013, 15:12
          Уже сделал все через сессию. Думал, что GET запросы не будут передаваться при постраничной навигации, поэтому даже не попробовал этот вариант. Спасибо, за совет.
            Владимир
            Владимир Старожил
            08 сентября 2014, 08:03
            Богдан подскажите, как передать значения формы:
            <form action="[[~[[*id]]]]" method="get">
            <select>
            <option>2000</option>
            <option>2500</option>
            </select>
            <input type="submit" value="Подобрать" />
            </form>
            в tvFilters вывода getResources:
            [[!getResources? &showHidden=`1` &tpl=`вывод-объекты` &includeContent=`1` &includeTVs=`1` &processTVs=`1` &parents=`2` &tvFilters=`???`]]
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7