Помогите составить where запрос migx
В полях migx содержаться даты начала и окончания показа элементов, требуется составить where запрос который выводил бы изображение только в определенный промежуток дат, или изображения у которых не указана дата начала и окончания показа. Например в migx полях даты начала datefrom указано 19-04-2016 00:00:00 а дата окончания dateto указана 25-04-2016 00:00:00 в данный промежуток дней требуется показывать изображение.
[[!getImageList?
&tvname=`partners`
&docid=`90,111,32`
&limit=`3`
&tpl=`tpl_partners_head`
&randomize=`1`
&where=`{"datefrom:<=": "[[!dateToTime? &date=`now_time`]]","dateto:>": "[[!dateToTime? &date=`now_time`]]" OR "datefrom:<=": "","dateto:>": ""}`
]]
Так-же не получается реализовать рандомную выборку из трех migx ресурсов, getImageList подхватывает только первый id.
Поблагодарить автора
Отправить деньги
Комментарии: 5
Тебе нужно сформировать запрос иначе:
$query->where(
array(
'date BETWEEN "' . date('Y-m-d', strtotime("-1 month")) .
'" AND "'.date('Y-m-d').'"'
)
);
в json:&where=`["date BETWEEN 'today' AND 'tomorrow'"]`
не совсем пойму данную логику, запрос я переписал так:
&where=`{"datefrom:<=":"[[!dateToTime? &day=`now_time`]]","OR:datefrom":"","dateto:>":"[[!dateToTime? &day=`now_time`]]","OR:dateto":""}`
Теперь не срабатывает запрос OR, в нём должно быть чтото типо выводить если в поле пусто
Попробуй так:
&where=`{"([[!dateToTime? &day=`now_time`]] BETWEEN 'datefrom' AND 'dateto' OR `` AND ``)"}`
почему-то такой вариант не проходит, он все поля выкидывает
Второй вариант кажется в данном случае было бы правельнее написать свой сниппет.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.