MODX REVO не работает where в getImageList, как настроить фильтр?
Друзья, подскажите пожалуйста, почему не работает фильтрация в getImageList?
Есть снипет для фильтра ajax, работает хорошо со снипетом pdoResources и его параметрами, а вот с MIGX tv и getImageList не хочет :(
На странице есть MIGX tv field-news, в нем параметр date. Этот параметр формой передаю в снипет, тут порядок, все прилетает. Но вот в $where никак не возвращает почему то, что не так?
Если делаю параметры для pdoResources
Но это проделать для getImageList то не возвращает массив с tv field-news с записью где параметр date равен 2018. Почему так происходит?
Есть снипет для фильтра ajax, работает хорошо со снипетом pdoResources и его параметрами, а вот с MIGX tv и getImageList не хочет :(
На странице есть MIGX tv field-news, в нем параметр date. Этот параметр формой передаю в снипет, тут порядок, все прилетает. Но вот в $where никак не возвращает почему то, что не так?
$_GET['date'] = '2018'; //задал жестко для примера один параметр
$filter = array();
if($_GET['date']) {
$filter[] = 'date='.$_GET['date'];
}
if($filter) {
$where = $modx->toJSON(array($filter));
} else {$where = '';}
$params = array(
'docid' => 1,
'tvname' => 'field-news',
'where' => $where
);
return $modx->runSnippet('getImageList',$params);Если делаю параметры для pdoResources
$params = array(
'parents' => 13,
'includeTVs' => 'date',
'where' => $where
);
return $modx->runSnippet('pdoResources', $params);То все работает, $where возвращает массив страницы родитель которой c id 13 где tv date равен 2018, Но это проделать для getImageList то не возвращает массив с tv field-news с записью где параметр date равен 2018. Почему так происходит?
Комментарии: 30
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Могут быть ошибки так как код написал не используя IDE
ресурс 1?
Сделайте на pdoResources и не замораживайтесь решение с ним отличное.
Или проблема в обоих случая и в JSON и в выборке неправильной :)
Если в вышеописанном коде моем, выборку с условием делаю через pdoResources то возвращает массив с нужной записью (есть родитель с id 13, в нем три ресурса у которых в tv date разные значения 2018, 2017, 2019, в примере достаю ресурс с цифрами 2018).
Но если я тоже самое проделаю для getImageList
То ничего не возвращает :(
И так все 4 записи в TV
Зависит как использовать
И не забывайте что решения сохранять Новости в MIGX плохое, так как со временем через ограничения MySQL получите ошибку что поле превысило количество символов.
Решение создать отдельный ресурс Новости. В нем каталоги если нужно. И тогда каждый ресурс новости вывести всё через pdoPage.
P.S И делать сайт з большим количеством TV плохое решение, так как большая нагрузка.
И новости это пример, там слайдер сделан на MIGX. И мне нужен фильтр исключительно полей MIGX, но для getImagelist не работает.
Еще проблема есть мне кажется в создании массива для фильтрации, а точнее в синтаксисе опять же для where
Вот если миновать массив и в where напрямую прописать то порядок, но нужно через JSON пропустить для AJAX запроса :( пока не знаю как заставить работать этот код.
И почитайте документацию PHP. Бо в if у вас в коде проблема
validateDate($date, $format = 'd m Y H:i:s' и так далее.
тот код пробовал ваш, id ресурса поменял на нужный. Потому что на сайте к которому давал вам доступ, ресурс с TV имеет id 198 а не 1
Возвращает все три записи, а нужно одну, с [date] => 2018
Запустите сами страницу у вас на сайте и посмотрите
Понимаете? И проходить фильтр будет по этому массиву, по нескольким параметрам будет выборка осуществляться,
Вы же изменили все как я понял и завязали жестко на date. Но вы большой молодец! Низкий вам поклон! СПАСИБО, на базе вашего кода попробую все же свой изменить, что бы работал универсально.