Фильтрация с помощью post
Всем привет.
Как сделать простую форму фильтрации: 2 одиночных селекта, в первом можно выбрать промежуток «Показать посты за 7 дней», а второй селект фильтр по категории (это TV).
Кучу информации перелопатил, но ничего универсального (кроме платного модуля) не нашел. Мне нужно всего два поля.
Вот у Evo есть подобное, легко и понятно.
Как такое реализовать в Revo?
Спасибо.
Как сделать простую форму фильтрации: 2 одиночных селекта, в первом можно выбрать промежуток «Показать посты за 7 дней», а второй селект фильтр по категории (это TV).
Кучу информации перелопатил, но ничего универсального (кроме платного модуля) не нашел. Мне нужно всего два поля.
Вот у Evo есть подобное, легко и понятно.
Как такое реализовать в Revo?
Спасибо.
Комментарии: 4
А что, в pdoResources динамически из POST или GET нельзя параметры подставить? Благо сейчас есть Fenom, где эти массивы из коробки доступны, даже код писать не нужно. docs.modx.pro/components/pdotools/parser
Ну либо, использовать Ajax, передавая в сниппет параметры а там уже запускать pdoResources и отдавать HTML.
modx.pro/development/3139-foundations-of-ajax/
Ну либо, использовать Ajax, передавая в сниппет параметры а там уже запускать pdoResources и отдавать HTML.
modx.pro/development/3139-foundations-of-ajax/
Да и без Fenom давно всё есть — docs.modx.pro/components/pdotools/parser#Теги-fastField
Неужели нет таких простых решений?
Простая формочка с двумя селектами.
Простая формочка с двумя селектами.
Так выше дали ответ, нужно передавать из POST или GET данные в pdoResources.
Не очень понятно как должно работать:
Получается что в селекте будет 1 опция? Или выбор через календарь должен быть?
В любом случае нужно формировать даты в формате unix_timestamp, и передавать их в параметр where, чтобы получить ресурсы между датами:
Тут формировать список категорий, типа:
На выходе в итоге должно получится примерно так:
В parents проверка на пустоту POST параметра, если не задан то выводить какую то категорию по умолчанию.
Хотя, имхо, лучше будет оформить вывод отдельным сниппетом, в нём делать проверки и запускать pdoResources через runSnippet.
Не очень понятно как должно работать:
в первом можно выбрать промежуток «Показать посты за 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.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.