Выборка pdoPage where по дате
Добрый день. В тикете можно указать дату мероприятия через бекенд, вот выборка, которая показывает сегодняшние мероприятия:
[[!pdoPage?
&element=`getTickets`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortby=`program-start` &sortbyTV=`program-start` &sortdirTV=`ASC` &sortby=``
&where=`{«program-start:LIKE»:"%[[!today]]%"}`
]] — тут всё ок
Как сделать, чтобы была выборка по сегодняшним и предстоящим?
Пробовал:
[[!pdoPage?
&element=`getTickets`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortby=`program-start` &sortbyTV=`program-start` &sortdirTV=`ASC` &sortby=``
&where=`({«program-start:LIKE»:"%[[!today]]%"}) AND ({«program-start RLIKE '[[:>:]]%[[!today]]%'»}) `
]]
[[!pdoPage?
&element=`getTickets`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortby=`program-start` &sortbyTV=`program-start` &sortdirTV=`ASC` &sortby=``
&where=`{«program-start:LIKE»:"%[[!today]]%"}`
]] — тут всё ок
Как сделать, чтобы была выборка по сегодняшним и предстоящим?
Пробовал:
[[!pdoPage?
&element=`getTickets`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortby=`program-start` &sortbyTV=`program-start` &sortdirTV=`ASC` &sortby=``
&where=`({«program-start:LIKE»:"%[[!today]]%"}) AND ({«program-start RLIKE '[[:>:]]%[[!today]]%'»}) `
]]
Комментарии: 12
Решил проблему двумя вкладками:
Демонстрация: тут можно посмотреть в работе
1) Предстоящие мероприятия
Демонстрация: тут можно посмотреть в работе
1) Предстоящие мероприятия
[[!pdoPage?
&element=`getTickets`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortbyTV=`program-start` &sortdirTV=`ASC`
&where=`{"program-start:>=":"[[!today]]"}`
]]
2) Прошедшие мероприятия[[!pdoPage?
&element=`getTickets`
&parents=`38`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortbyTV=`program-start` &sortdirTV=`DESC`
&where=`{"program-start:<=":"[[!today]]"}`
]]
Демонстрация русской версии пока не работает, посмотреть эстонскую можно тут fortius.ee/kava
Блин в логе пишет:
....core/components/pdotools/model/pdotools/pdofetch.class.php: 399) PHP warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object
Кто-нибудь хелп :) Первый раз пытаюсь юзать pdo и сразу фейлы на ровном месте)
Т.е. получается, что второй аргумент [[!today]] (?) — должен быть объектом или массивом? А почему тогда %[[!today]]% не срабатывает??
....core/components/pdotools/model/pdotools/pdofetch.class.php: 399) PHP warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object
Кто-нибудь хелп :) Первый раз пытаюсь юзать pdo и сразу фейлы на ровном месте)
Т.е. получается, что второй аргумент [[!today]] (?) — должен быть объектом или массивом? А почему тогда %[[!today]]% не срабатывает??
Блин… в третий раз, но уже без ошибок)) Правильная версия:
Предстоящие:
Предстоящие:
[[!pdoPage?
&element=`getTickets`
&parents=`38`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&where=`["program-start > \"[[!today]]\""]`
&sortby=`program-start` &sortdir=`ASC`
]]
Прошедшие:[[!pdoPage?
&element=`getTickets`
&parents=`38`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&where=`["program-start < \"[[!today]]\""]`
&sortby=`program-start` &sortdir=`DESC`
]]
а сниппет [[!today]] как формируете?
<?php
return date('Y-m-d');
return date('Y-m-d');
program-start — в каком формате хранится в БД?
Y-m-d и время
Дата выставляется из бэкенда с tv input date
Дата выставляется из бэкенда с tv input date
Ну, вот такое, к примеру, 14-04-2014 > 28-03-2014 отрабатывает корректно?
Как выведет сортировку?
Как выведет сортировку?
&where=`[«program-start BETWEEN \»2014-04-14\" AND \«2014-03-28\»"]`
* кавычки ток правильно нужно поставить как в примере снизу
используй лучше стандартный формат даты в modx, подбей чтобы из фронтенда дата выставлялась в формате Y-m-d, тогда из бэкенда можно будет без проблем менять
* кавычки ток правильно нужно поставить как в примере снизу
используй лучше стандартный формат даты в modx, подбей чтобы из фронтенда дата выставлялась в формате Y-m-d, тогда из бэкенда можно будет без проблем менять
Да нет, я сохраняю через strtotime, чтобы в БД ложилось в timestamp:
$date_home = strtotime($_POST['datepicker_date_home']);
После чего никаких проблем:&sortby=`{"date_home":"asc"}`
Попросили сделать архив не фильтром, а отдельной страницей для каждого года, вот пример выборки мероприятий за 2010 год:
[[!pdoPage?
&element=`getTickets`
&parents=`38`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&where=`["program-start BETWEEN \"2010-01-01\" AND \"2010-12-31\""]`
&sortby=`program-start` &sortdir=`DESC`
]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.