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

Спасибо.
Владимир
08 сентября 2014, 04:09
modx.pro
1
2 886
0

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

Павел Романов
09 сентября 2014, 10:32
+1
Во-первых, назовите поле в форме:
...
<select name="price">
<option>2000</option>
<option>2500</option>
</select>
...
Потом сделайте сниппет getGet типа:
<?php
return $_GET['price'];
Ну и в вызове:
&tvFilters=`price==[[!getGet]]`
Но я бы еще проверку сделал на наличие чего-нибудь в GET и всякие htmlentities прописал.
    Владимир
    09 сентября 2014, 13:26
    0
    Да, это схема работает. Здорово. А если будет несколько значений:
    <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 параметрам. Стоимость можем оговорить.
      Павел Романов
      09 сентября 2014, 14:38
      0
      Тут уже нужно писать сниппет, который будет также брать значения из 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]]`
      Антон
      15 мая 2015, 17:38
      0
      Никак не могу получить 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`
      ]]
        Илья Уткин
        15 мая 2015, 18:20
        0
        А так?
        [[!getUrlParam:toPlaceholder=`val`? &name=`val` &int=`1`]]
        [[!getResources?
            &tvFilters=`category==[[!+val]]`
            &tpl=`advertisement_single`
            &includeTVs=`1`
            &processTVs=`1`
        ]]
          Антон
          15 мая 2015, 21:25
          0
          Немного изменил, получаю просто цифры, но результат тот же
          <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` — работает, я в замешательстве что ж не так?
            Антон
            18 мая 2015, 15:31
            0
            Разобрался! проблема в кэшировании ресурсов.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7