ModuleBuilder::Calendar PHP Method

Calendar() public static method

导出日历模块数据
public static Calendar ( string $date = '' ) : string
$date string 日期
return string 模块内容
    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;
    }

Usage Example

Beispiel #1
0
function BuildModule_calendar($date = '')
{
    return ModuleBuilder::Calendar($date);
}