Наверх

Выборка материалов по дате в 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 типа даты.

Источник: daruse.ru/vyiborka-materialov-po-date-v-xpdo-modx


0 комментариев

    Авторизация

    через сервис Loginza:


    Шаблоны MODX

    1 2 Дальше »

    Объектная
    модель
    MODX