Exemplo n.º 1
0
    switch ($sortDir) {
        case 'ASC':
            $out = $aDate->getTimestamp() - $bDate->getTimestamp();
            break;
        case 'DESC':
            $out = $bDate->getTimestamp() - $aDate->getTimestamp();
            break;
    }
    return $out;
})->reindex()->unique();
//Применяем шаблон к каждой отображаемой дате
foreach ($outReflects as $reflectItem) {
    $tpl = !is_null($activeReflect) && $activeReflect == $reflectItem ? $activeReflectTPL : $reflectTPL;
    $data = DLReflect::switchReflect($reflectType, function () use($reflectItem, $DLAPI) {
        list($vMonth, $vYear) = explode('-', $reflectItem, 2);
        return array('monthNum' => $vMonth, 'monthName' => $DLAPI->getMsg('months.' . (int) $vMonth), 'year' => $vYear);
    }, function () use($reflectItem) {
        return array('year' => $reflectItem);
    });
    $data = array_merge(array('title' => $reflectItem, 'url' => $modx->makeUrl($targetID, '', http_build_query(array($reflectType => $reflectItem))), 'reflects' => $totalReflects->count(), 'displayReflects' => $outReflects->count()), $data);
    $out .= $DLAPI->parseChunk($tpl, $data);
}
//Заворачиваем в шаблон обертку весь список дат
$out = $DLAPI->parseChunk($wrapTPL, array('wrap' => $out, 'reflects' => $totalReflects->count(), 'displayReflects' => $outReflects->count()));
//Ну и выводим стек отладки если это нужно
if (isset($_SESSION['usertype']) && $_SESSION['usertype'] == 'manager') {
    $debug = $DLAPI->debug->showLog();
} else {
    $debug = '';
}
return $debug . $out;
Exemplo n.º 2
0
include_once MODX_BASE_PATH . 'assets/lib/APIHelpers.class.php';
include_once MODX_BASE_PATH . 'assets/snippets/DocLister/lib/DLReflect.class.php';
$params = is_array($modx->event->params) ? $modx->event->params : array();
/**
 * reflectType
 * 		Тип фильтрации. Возможные значения:
 * 			month - по месяцам (значение по умолчанию)
 * 		 	year - по годам
 */
$reflectType = APIHelpers::getkey($params, 'reflectType', 'month');
if (!in_array($reflectType, array('year', 'month'))) {
    return '';
}
list($dateFormat, $sqlDateFormat, $reflectValidator) = DLReflect::switchReflect($reflectType, function () {
    return array('m-Y', '%m-%Y', array('DLReflect', 'validateMonth'));
}, function () {
    return array('Y', '%Y', array('DLReflect', 'validateYear'));
});
$reflectSource = APIHelpers::getkey($params, 'reflectSource', 'content');
$reflectField = APIHelpers::getkey($params, 'reflectField', 'if(pub_date=0,createdon,pub_date)');
$tmp = date($dateFormat);
/**
* currentReflect
* 		Текущая дата (месяц в формате 00-0000 или год в формате 0000), где:
*		 	00 - Номер месяца с ведущим нулем (01, 02, 03, ..., 12)
*		  	0000 - Год
*     	Если не указан в параметре, то генерируется автоматически текущая дата
*/
$selectCurrentReflect = APIHelpers::getkey($params, 'selectCurrentReflect', 1);
if ($selectCurrentReflect) {
    $currentReflect = APIHelpers::getkey($params, 'currentReflect', $tmp);