Выборка прошлой недели pdoresources
Привет, что то у меня не получается выборку сделать, подскажите плиз.
Нужно вывести материалы за прошлую неделю через where в pdoresources
К примеру сейчас четверг (7 июля), а надо выводить за прошлую неделю с понедельника по воскресенье (27 июня — 3 июля).
Нужно вывести материалы за прошлую неделю через where в pdoresources
К примеру сейчас четверг (7 июля), а надо выводить за прошлую неделю с понедельника по воскресенье (27 июня — 3 июля).
Комментарии: 4
В общем сделал через сниппет, может кто лучше предложит
Вызов
Вызов
[[!getTickets?
&tpl=`@INLINE <p><a href="{{~{{+id}}}}">{{+pagetitle}}</a></p>`
&parents=`5`
&limit=`10`
&where=`{"publishedon:>":"[[!returnTime? &time=`1`]]", "AND:publishedon:<=":"[[!returnTime? &time=`2`]]"}`
И сам сниппет returnTime:if ($time == 1){
return strtotime(date("d.m.Y", time() - ( +7 + date("N")-1) * 24*60*60));
}
if ($time == 2){
return strtotime(date("d.m.Y", time() - ( +1 + date("N")-1) * 24*60*60));
}
Можно проще и более удобочитаемо
if ($time == 1){
return strtotime('last Monday', strtotime('Monday this week'));
}
if ($time == 2){
return strtotime('last Sunday', strtotime('Sunday this week'));
}
Или так:
if ($time == 1){
return strtotime("last Monday - 1 week"); // 27.06.2016 : 00:00
}
if ($time == 2){
return strtotime("last Monday - 1 sec"); // 03.07.2016 : 23:59
}
Как вариант.
И я внесу свою лепту))))
Можно сделать сниппет более универсальным:
Сниппет [[!daysAgo? &days=`7`]] (можно указывать например &from=`now` или любое другое значение для отсчёта от другой даты):
Можно сделать сниппет более универсальным:
Сниппет [[!daysAgo? &days=`7`]] (можно указывать например &from=`now` или любое другое значение для отсчёта от другой даты):
<?php
$from = $modx->getOption('from',$scriptProperties,'Monday this week');
return strtotime("-{$days} days", strtotime($from) )
А если использовать Fenom, то можно и вообще без сниппетов обойтись, например так.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.