Не работает &where

Имеется такой код
[[!mFilter2?
&class=`msProduct`
&element=`msProducts`
&parents=`[[*id]]`
&where=`{"postavka:>":0}`
&showLog=`1`
]]
где postavka, опция товара, есть товары, у которых значение > 0, но условие where не выполняется. При этом если вместо &where поставить &optionFilters, то работает как нужно. Но &optionFilters мне нужен для другого. &showLog ничего не выводит.
Подскажите пожалуйста, в чём может быть проблема?
Максим
28 марта 2018, 22:13
modx.pro
1
991
0

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

Михаил
29 марта 2018, 09:51
0
&where=`{"msProductOptions.postavka:>":0}`
    Максим
    29 марта 2018, 13:17
    0
    тоже не работает
      Андрей
      29 марта 2018, 13:44
      +1
      Как то сталкивался, мне помогло вот это — msProducts. Выборка по нескольким опциям.
        Максим
        29 марта 2018, 14:39
        0
        это помогло, спасибо большое

        есть ещё вопрос, можно ли сделать параметры с условием, например,
        if переданный параметр then (postavka>0 и count_n>переданный параметр)
        else   (postavka>0 и count_n>0)
        пробовал через конструкцию IF, но не работает, или может неправильно что-то делаю.
        Вопрос, работают ли вообще условия для параметров?
          Андрей
          30 марта 2018, 18:46
          0
          Такое проще через Fenom сделать. В зависимости от параметра формировать переменную с нужным фильтром. Т.к. неизвестно откуда берётся параметр, приведу пример для получения из GET:

          {if $.get['param']}
          	{var $param = "здесь формируем нужный where запрос с переданным параметром"}
          {else}
          	{var $param = "здесь дефолтный where запрос"}
          {/if}

          И потом передавать его в сниппет:
          {'!mFilter2' | snippet : [
          	....
          	'where' => $param,
          	....
          ]}

          По идее должно работать.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5