Как поставить значение по-умолчанию в where?

Всем привет.
Сделал форму для фильтрации ресурсов через GET-параметры:

[[!pdoResources:default=`Извините, к сожалению,ничего не найдено.`?
	&parents=`4`
	&depth=`0`
	&useWebLink=`1`
	&includeContent=`1`
	&processTVs=`1`
	&includeTVs=`gorod,cena,tip`
	&tpl=`adv-list`
	&where=`["TVcena.value >= [[!get_filter? &key1=`cena_min`]] AND TVcena.value <= [[!get_filter? &key1=`cena_max`]] AND TVtip.value LIKE '[[!get_filter? &key1=`tip`]]' AND TVgorod.value LIKE '[[!get_filter? &key1=`gorod`]]'"]`
	&showLog = `1`
]]
Всё работает. Но проблема в том, что при открытии страницы где должен быть вывод ресурсов по-умолчанию в параметрах GET пока пусто, и сниппет [[!get_filter]] передает сразу же пустой параметр.

И выдает вот такой sql-запрос:
0.0003209: Added where condition: 0=TVcena.value >=  AND TVcena.value <=  AND TVtip.value LIKE '' AND TVgorod.value LIKE '', modResource.parent:IN(4), modResource.published=1, modResource.deleted=0
То есть после, например, TVcena.value >= должно стоять число, а там изначально пусто.
Соответственно это сопровождается ошибкой sql внизу лога из-за пустого значения.

Догадываюсь, что надо в сниппете добавить условие при пустом параметре и под это сформировать другой запрос в where. Но я не могу понять как?
Подскажите, пожалуйста.
Anton
09 марта 2018, 12:00
modx.pro
728
0

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

Баха Волков
09 марта 2018, 19:21
0
Что-то типа:

if (empty($key1) {
return 'То что должен выводить сниппет если входное значение пусто';
}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1