public static function Archives()
{
global $zbp;
$template = $zbp->template;
$tags = array();
$urls = array();
//array(url,name,count);
$maxli = $zbp->modulesbyfilename['archives']->MaxLi;
if ($maxli < 0) {
return '';
}
$sql = $zbp->db->sql->Select($zbp->table['Post'], array('log_PostTime'), null, array('log_PostTime' => 'DESC'), array(1), null);
$array = $zbp->db->Query($sql);
if (count($array) == 0) {
return '';
}
$ldate = array(date('Y', $array[0]['log_PostTime']), date('m', $array[0]['log_PostTime']));
$sql = $zbp->db->sql->Select($zbp->table['Post'], array('log_PostTime'), null, array('log_PostTime' => 'ASC'), array(1), null);
$array = $zbp->db->Query($sql);
if (count($array) == 0) {
return '';
}
$fdate = array(date('Y', $array[0]['log_PostTime']), date('m', $array[0]['log_PostTime']));
$arraydate = array();
for ($i = $fdate[0]; $i < $ldate[0] + 1; $i++) {
for ($j = 1; $j < 13; $j++) {
$arraydate[] = strtotime($i . '-' . $j);
}
}
foreach ($arraydate as $key => $value) {
if ($value - strtotime($ldate[0] . '-' . $ldate[1]) > 0) {
unset($arraydate[$key]);
}
if ($value - strtotime($fdate[0] . '-' . $fdate[1]) < 0) {
unset($arraydate[$key]);
}
}
$arraydate = array_reverse($arraydate);
$s = '';
$i = 0;
foreach ($arraydate as $key => $value) {
if ($i >= $maxli && $maxli > 0) {
break;
}
$url = new UrlRule($zbp->option['ZC_DATE_REGEX']);
$url->Rules['{%date%}'] = date('Y-n', $value);
$url->Rules['{%year%}'] = date('Y', $value);
$url->Rules['{%month%}'] = date('n', $value);
$url->Rules['{%day%}'] = 1;
$fdate = $value;
$ldate = strtotime(date('Y-m-t', $value)) + 60 * 60 * 24;
$sql = $zbp->db->sql->Count($zbp->table['Post'], array(array('COUNT', '*', 'num')), array(array('=', 'log_Type', '0'), array('=', 'log_Status', '0'), array('BETWEEN', 'log_PostTime', $fdate, $ldate)));
$n = GetValueInArrayByCurrent($zbp->db->Query($sql), 'num');
if ($n > 0) {
//$urls[]=array($url->Make(),str_replace(array('%y%', '%m%'), array(date('Y', $fdate), date('n', $fdate)), $zbp->lang['msg']['year_month']),$n);
$meta = new Metas();
$meta->Url = $url->Make();
$meta->Name = str_replace(array('%y%', '%m%'), array(date('Y', $fdate), date('n', $fdate)), $zbp->lang['msg']['year_month']);
$meta->Count = $n;
$urls[] = $meta;
$i++;
}
}
$tags['urls'] = $urls;
$template->SetTagsAll($tags);
$ret = $template->Output('module-archives');
return $ret;
}