Фильтрация с помощью post

Всем привет.

Как сделать простую форму фильтрации: 2 одиночных селекта, в первом можно выбрать промежуток «Показать посты за 7 дней», а второй селект фильтр по категории (это TV).
Кучу информации перелопатил, но ничего универсального (кроме платного модуля) не нашел. Мне нужно всего два поля.
Вот у Evo есть подобное, легко и понятно.

Как такое реализовать в Revo?

Спасибо.
Anton
26 мая 2016, 21:11
modx.pro
2
1 273
0

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

Sergey Pozhidaev
27 мая 2016, 06:15
0
А что, в pdoResources динамически из POST или GET нельзя параметры подставить? Благо сейчас есть Fenom, где эти массивы из коробки доступны, даже код писать не нужно. docs.modx.pro/components/pdotools/parser
Ну либо, использовать Ajax, передавая в сниппет параметры а там уже запускать pdoResources и отдавать HTML.
modx.pro/development/3139-foundations-of-ajax/
Anton
27 мая 2016, 13:37
0
Неужели нет таких простых решений?
Простая формочка с двумя селектами.
    Андрей
    27 мая 2016, 16:25
    1
    0
    Так выше дали ответ, нужно передавать из POST или GET данные в pdoResources.

    Не очень понятно как должно работать:

    в первом можно выбрать промежуток «Показать посты за 7 дней»

    Получается что в селекте будет 1 опция? Или выбор через календарь должен быть?

    В любом случае нужно формировать даты в формате unix_timestamp, и передавать их в параметр where, чтобы получить ресурсы между датами:

    &where=`{"publishedon:>=":"1463961600","AND:publishedon:<=":"1464480000"}`

    второй селект фильтр по категории (это TV)

    Тут формировать список категорий, типа:

    <select name="cat"> 
    	 [[pdoResources? &parents=`1` &depth=`0` &tpl=`tpl.Cat`]]
    </select>

    На выходе в итоге должно получится примерно так:

    [[pdoResources? &parents=`{if $.post.cat is empty}1{else}[[#POST.cat]]{/if}` &depth=`0` &tpl=`tpl.post` &where=`{"publishedon:>=":"1463961600","AND:publishedon:<=":"1464480000"}`]]

    В parents проверка на пустоту POST параметра, если не задан то выводить какую то категорию по умолчанию.

    Хотя, имхо, лучше будет оформить вывод отдельным сниппетом, в нём делать проверки и запускать pdoResources через runSnippet.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4