public static function Calendar($date = '')
{
global $zbp;
$template = $zbp->template;
$tags = array();
if ($date == '') {
$date = date('Y-m', time());
}
$tags['date'] = $date;
$url = new UrlRule($zbp->option['ZC_DATE_REGEX']);
$url->Rules['{%day%}'] = 1;
$value = strtotime('-1 month', strtotime($date));
$tags['prevMonth'] = date('n', $value);
$tags['prevYear'] = date('Y', $value);
$url->Rules['{%date%}'] = $tags['prevYear'] . '-' . $tags['prevMonth'];
$url->Rules['{%year%}'] = $tags['prevYear'];
$url->Rules['{%month%}'] = $tags['prevMonth'];
$tags['prevMonthUrl'] = $url->Make();
$value = strtotime($date);
$tags['nowMonth'] = date('n', $value);
$tags['nowYear'] = date('Y', $value);
$url->Rules['{%date%}'] = $tags['nowYear'] . '-' . $tags['nowMonth'];
$url->Rules['{%year%}'] = $tags['nowYear'];
$url->Rules['{%month%}'] = $tags['nowMonth'];
$tags['nowMonthUrl'] = $url->Make();
$value = strtotime('+1 month', strtotime($date));
$tags['nextMonth'] = date('n', $value);
$tags['nextYear'] = date('Y', $value);
$url->Rules['{%date%}'] = $tags['nextYear'] . '-' . $tags['nextMonth'];
$url->Rules['{%year%}'] = $tags['nextYear'];
$url->Rules['{%month%}'] = $tags['nextMonth'];
$tags['nextMonthUrl'] = $url->Make();
$fdate = strtotime($date);
$ldate = strtotime(date('Y-m-t', strtotime($date))) + 60 * 60 * 24;
$sql = $zbp->db->sql->Select($zbp->table['Post'], array('log_ID', 'log_PostTime'), array(array('=', 'log_Type', '0'), array('=', 'log_Status', '0'), array('BETWEEN', 'log_PostTime', $fdate, $ldate)), array('log_PostTime' => 'ASC'), null, null);
$array = $zbp->db->Query($sql);
$arraydate = array();
foreach ($array as $value) {
$key = date('j', $value[$zbp->datainfo['Post']['PostTime'][0]]);
if (!isset($arraydate[$key])) {
$fullDate = $tags['nowYear'] . '-' . $tags['nowMonth'] . '-' . $key;
$url->Rules['{%date%}'] = $fullDate;
$url->Rules['{%year%}'] = $tags['nowYear'];
$url->Rules['{%month%}'] = $tags['nowMonth'];
$url->Rules['{%day%}'] = $key;
$arraydate[$key] = array('Date' => $fullDate, 'Url' => $url->Make(), 'Count' => 0);
}
$arraydate[$key]['Count']++;
}
$tags['arraydate'] = $arraydate;
$template->SetTagsAll($tags);
$ret = $template->Output('module-calendar');
return $ret;
}