Выборка материалов по дате в XPDO MODX
Работая с XPDO в MODX Revo иногда возникает потребность вывести материалы по конкретной дате, но здесь есть некоторые нюансы, а именно проблема возникает из-за того, что в базе данных даты хранятся в нестандартном формате.
Рассмотрим скрипт, которые выведет все материалы за конкретный день.
<?php
$data = date('2015-12-10'); // В эту переменную мы заносим нужный день
$date_from = strtotime($data." 00:00:00");
$date_to = strtotime($data." 23:59:59");
$data_y = date('Y-m-d',(strtotime('-1 days', strtotime($data))));
$data_t = date('Y-m-d',(strtotime('+1 days', strtotime($data))));
$where = $modx->newQuery('modResource');
$where->limit(5);
$where->where(array(
'publishedon:>' => $date_from,
'publishedon:<' => $date_to,
));
$resources = $modx->getCollection('modResource',$where);
$res .= '<p>Выбран день '.$data.'</p>';
foreach ($resources as $k) {
$res .= '<h2>'.$k->get('pagetitle').'</h2>';
$res .= '<p><small>Дата: '.$k->get('publishedon').'</small></p>';
}
print($res);
Если вам требуется вывести материалы не раньше конкретного дня, то закомментируем следующую строку:
'publishedon:<' => $date_to,
К примеру, можно вывести все материалы, которые были опубликованы после «2015-12-10».
И аналогично, вывести даты не позднее конкретного числа, то комментируем эту строку.
'publishedon:>' => $date_from,
В переменную $data
можно передавать любые даты из полей MODX, к примеру, дату публикации или TV типа даты.
Комментарии