pdoResourses условие where странно работает

Имеется очень странная ошибка.
Есть такой снипет:
[[!pdoResources?
    &parents=`15`
    &depth=`0`
    &tpl=`tpl_house_page`
    &includeTVs=`people, main-pic, 1st-floor-square, 2nd-floor-square, Balkon-square, Common-square, Terassa-square`
    &where=`{
      "Common-square:<=":"[[!#POST.square]]",
      "AND:people:>=":"[[!#POST.people_count]]"
    }`
    &showLog=`0`
]]

Есть кнопка, которая аяксом обрабатывает этот снипет.
Вот js код:
var
		$people_range = $("#people-range"),
		$square_range = $("#square-range"),
		$show_button = $("a.filter-houses"),
		$output = $(".projects ul"),

	var $people = $people_range.val();

	$show_button.click(function(event) {
		$people = $people_range.val();
		$.post("http://sandbox.maximshadrin.ru/dom/ajax.html",{
			people_count: $people.charAt(0),
			square: $square_range.val()
			},
			function(data){
				console.log(data.length);
				$output.empty();
				if ( data.length !== 2 ){
					$output.append(data);
				}else{
					$output.append("<p>Нет домов с такими параметрами</p>");
				}
			}
		);

		event.preventDefault();

	});

Постом я передаю два инпута, которые задаются слайдерами.
С данными инпутами все в порядке, я проверял.
В принципе все работает, если мы задаем площадь больше 100, стоит мне только выбрать площадь меньшую 100, как проверка «Common-square:<=»:"[[!#POST.square]]" перестает работать.

Ума не приложу, в чем дело.
Ссылка на страницу.

UPD: Как выяснилось, я сравнивал строку с числом, что не могло работать корректно, встал новый вопрос, как привести значения TV к числу.
Я решил написать простой сниппет, назвал его strToInt с таким кодом:
<?php
	return (int)$input;
?>
Вопрос, как теперь использовать этот сниппет в условии &where?
Такая запись не работает:
&where=`{
      "[[!strToInt? &input=Common-square]]:<=":"[[!#POST.square]]"
}`
Как и такая (Добавил кавычки для Common-square):
&where=`{
      "[[!strToInt? &input=`Common-square`]]:<=":"[[!#POST.square]]"
}`
UPD2:
Обе части (тв common-square и переданное Постом)удалось привести к int
Вот код сниппета:
<?php
  return (int)trim($input);
Вот код ресурса для выборки:
[[!pdoResources?
    &parents=`15`
    &depth=`0`
    &tpl=`tpl_house_page`
    &includeTVs=`people, main-pic, 1st-floor-square, 2nd-floor-square, Balkon-square, Common-square, Terassa-square`
    &where=`{
      "[[!strToInt? &input=`[[*Common-square]]`]]:<=":"[[!strToInt? &input=`[[!#POST.square]]`]]",
      "AND:people:>=":"[[!#POST.people_count]]"
    }`
    &showLog=`0`
]]
Но проверка теперь не работает вообще никак, раньше хоть работала на значениях больше 100, теперь всегда возвращает пустоту длиной в 10 байт.
Максим
14 марта 2016, 10:14
modx.pro
1 122
0

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

Konstantin
14 марта 2016, 13:59
0
меньше 100 или значение с минусом?
    Максим
    14 марта 2016, 14:05
    0
    значения с минусом там нет, нижний предел выбора площади 50, следовательно для значений от 50 до 100
    Лев Вербицкий
    14 марта 2016, 18:43
    0
    ТВшки хранятся как текст. Тут идет сравнение строк, а не числовых значений.
      Максим
      14 марта 2016, 20:33
      0
      а как сравнивать их как числа?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4