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

Всем привет!
Что-то не могу догнать, что я делаю не так. Вызов pdoPage:
[[!pdoPage?
    &snippet=`pdoResources`
    &parents=`[[*id]]`
    &tpl=`tpl.catalog-item`
    &includeTVs=`s,img,obj-type,city,address`
    &sortby=`[[!#GET.sortby:default=`publishedon`]]`
    &sortdir=`[[!#GET.sortdir:default=`DESC`]]`
    &where=`{[[!#GET.towns:!empty=`"city:IN": "[[!explode? str=`[[!#GET.towns]]`]]"[[!#GET.types:!empty=` ,`]] `]][[!#GET.types:!empty=` "obj-type:IN": "[[!explode? str=`[[!#GET.types]]`]]"`]]}`
    &limit=`9`
]]
Чтоб не парсить в голове условие where, привожу во что оно превращается:
{"city:IN": "["Москва","Санкт-Петербург"]" , "obj-type:IN": "["Торговые Центры","Бизнес центры ","Гипер и супермаркеты"]"}
Итого: Твшки в пдоРесурс проброшены, они точно есть у ресурсов, джейсон валидный(вроде как), но, тем не менее, условие where вообще никак не влияет на выборку. Есть оно или нет, выводятся все ресурсы. Что я не так делаю?
Антон
25 июня 2018, 13:39
modx.pro
744
0
Поблагодарить автора Отправить деньги

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

Антон
25 июня 2018, 23:46
0
Пришлось провернуть несколько махинаций, и оно заработало. Если у кого будет подобная проблема — пишите.
    Дмитрий
    26 июня 2018, 01:12
    0
    ну да, а еще можно было не городить этот бредовый вызов и сделать по-нормальному :)
    Условие выглядит через чур сложно.
    Вариантов решения как минимум три
    1) Заменить вот это вот всё на mFilter2 и всё было бы очень круто
    2) Написать сниппет-обёртку над pdoResources, который сначала обрабатывает GET параметры и потом подставляет их в параметр Where
    3) Переписать всё вот это на Fenom с использованием переменных и это стало бы точно более читаемым и понятным.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2