waduh... agak susah ngejelasinnya...

kalo yang gw bikin di modx-linx, archive-nya berjalan pake ajax.
jadi, gw bikin snippet processor dulu.
snippetnya gw taro di halaman khusus gw sediain, dengan template yang kosong melompong, hanya sekedar sebagai akses URL ajax-nya.
trus, di dalam snippet, manggil Class untuk ngeluarin method yang mengolah tanggalan.
Tanggalannya berdasarkan Custom Database dari arsip link-link yang diinput.
Kalo sejauh ini ngerti, ini processornya:
<?php
$archiveLinks = $ml->archiveLinks('2');
$output = '
<div class="filter-nav">
<div class="nav-title">Archives</div>
<div class="archives">
' . $archiveLinks . '
</div>
</div>
';
echo $output;
exit();
dibawah ini methods-nya:
/**
* Links archive
* @param string $href redirect url
* @return string formated navigation
*/
public function archiveLinks($urlId) {
$c = $this->modx->newQuery('Link');
$c->where(array('approved' => 1));
if ($this->modx->getCount('Link', $c) < 1) {
return FALSE;
}
$links = $this->modx->getCollection('Link', $c);
$archives = array();
foreach ($links as $link) {
$archives[] = $link->get('postedon');
}
natsort($archives);
rsort($archives);
$arcs = array();
foreach ($archives as $archive) {
if (!empty($arcs[strftime('%Y', $archive)][strftime('%m', $archive)])) {
$arcs[strftime('%Y', $archive)][strftime('%m', $archive)] = $arcs[strftime('%Y', $archive)][strftime('%m', $archive)] + 1;
} else {
$arcs[strftime('%Y', $archive)][strftime('%m', $archive)] = 1;
}
}
$output = '' . "\n";
foreach ($arcs as $year => $months) {
$output .= "\t" . '<div class="archive-year">' . $year . '</div>' . "\n";
$output .= "\t\t" . '<ul class="archive-year-leap">' . "\n";
ksort($months);
foreach ($months as $month => $num) {
$href = $this->modx->makeUrl($urlId, null, array('arc' => $year . '-' . $month), 'full');
$output .= "\t\t\t" . '<li><a href="' . $href . '"><span class="archive-month">' . $this->_monthName($month) . ' (' . $num . ')</span></a></li>' . "\n";
}
$output .= "\t\t" . '</ul>' . "\n";
}
return $output;
}
private function _monthName($mo) {
$monthName = '';
switch ($mo) {
case '01':
$monthName = 'January';
break;
case '02':
$monthName = 'February';
break;
case '03':
$monthName = 'March';
break;
case '04':
$monthName = 'April';
break;
case '05':
$monthName = 'May';
break;
case '06':
$monthName = 'June';
break;
case '07':
$monthName = 'July';
break;
case '08':
$monthName = 'August';
break;
case '09':
$monthName = 'September';
break;
case '10':
$monthName = 'October';
break;
case '11':
$monthName = 'November';
break;
case '12':
$monthName = 'December';
break;
default:
break;
}
return $monthName;
}
'Link' adalah custom database class yg gw bikin.