getPage + getResources фильтрация вывода
Есть каталог недвижимости.
На странице вывода объектов есть простая форма «фильтра по цене», например:
Спасибо.
На странице вывода объектов есть простая форма «фильтра по цене», например:
<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=`???`]]
Что то подобное есть в этом топике /help/801Спасибо.
Комментарии: 7
Во-первых, назовите поле в форме:
...
<select name="price">
<option>2000</option>
<option>2500</option>
</select>
...
Потом сделайте сниппет getGet типа:<?php
return $_GET['price'];
Ну и в вызове:&tvFilters=`price==[[!getGet]]`
Но я бы еще проверку сделал на наличие чего-нибудь в GET и всякие htmlentities прописал.
Да, это схема работает. Здорово. А если будет несколько значений:
Павел, помогите написать поиск хотя бы по двум tv параметрам. Стоимость можем оговорить.
<form action="[[~[[+id]]]]" method="get">
<select name="price">
<option>2000</option>
<option>2500</option>
</select>
<select name="area">
<option>1</option>
<option>2</option>
</select>
<input type="submit" /></form>
Как заставить сниппет правильно обрабатывать запрос.Павел, помогите написать поиск хотя бы по двум tv параметрам. Стоимость можем оговорить.
Тут уже нужно писать сниппет, который будет также брать значения из GET и в результате выстраивать их в строчку вида:
то есть что-то типа:
Ну и в вызове уже:
price==значение,area==значение
то есть что-то типа:
<?php
$price = $_GET['price'];
$area = $_GET['area'];
if($price != '') {
$price = "price==$price,";
}
if($area != '') {
$area = "area==$area,";
}
$output = "$price$area";
return mb_substr($output, 0, -1);
Ну и в вызове уже:
&tvFilters=`[[!getGet]]`
Никак не могу получить get параметр в getResources, на странице все норм выводится а в getResources никак!
<form method="get" action="[[*id]]">
<select name="val">
<option value="Дрова">Дрова</option>
<option value="Оборудование">Оборудование</option>
<option value="Landing Page">Landing Page</option>
</select>
<input type="submit" value="Показать" />
</form>
[[!getResources?
&tvFilters=`category==[[!getUrlParam? &name=`val` &int=`1`]]`
&tpl=`advertisement_single`
&includeTVs=`1`
&processTVs=`1`
]]
А так?
[[!getUrlParam:toPlaceholder=`val`? &name=`val` &int=`1`]]
[[!getResources?
&tvFilters=`category==[[!+val]]`
&tpl=`advertisement_single`
&includeTVs=`1`
&processTVs=`1`
]]
Немного изменил, получаю просто цифры, но результат тот же
<form method="get" action="[[*id]]">
<select name="val">
<option value="242">242</option>
<option value="243">243</option>
</select>
<input type="submit" value="Показать" />
</form>
[[!getUrlParam:toPlaceholder=`val`? &name=`val` &int=`1`]] // 242
[[!getResources?
&showHidden=`1`
&parents=`[[!+val]]`
&tpl=`advertisement_single`
&limit=`10`
&includeContent=`1`
&includeTVs=`1`
&processTVs=`1`
]] // ничего
меняю &parents=`242` — работает, я в замешательстве что ж не так?
Разобрался! проблема в кэшировании ресурсов.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.