<?php
/**
* æ¥å
* @copyright (c) Emlog All Rights Reserved
* $Id: class.calendar.php 1649 2010-04-15 14:02:30Z hide@address.com $
*/
class Calendar {
static function generate() {
global $DB, $timezone, $utctimestamp;
$timestamp = $utctimestamp + $timezone * 3600;
//å»ºç«æ¥å¿æ¶é´åå
¥æ°ç»
$query = $DB->query("SELECT date FROM ".DB_PREFIX."blog WHERE hide='n' and type='blog'");
while ($date = $DB->fetch_array($query)){
$logdate[] = gmdate("Ymd", $date['date'] + $timezone * 3600);
}
//è·åå½åæ¥æ
$n_year = gmdate("Y", $timestamp);
$n_year2 = gmdate("Y", $timestamp);
$n_month = gmdate("m", $timestamp);
$n_day = gmdate("d", $timestamp);
$time = gmdate("Ymd", $timestamp);
$year_month = gmdate("Ym", $timestamp);
if (isset($_GET['record'])){
$n_year = substr(intval($_GET['record']),0,4);
$n_year2 = substr(intval($_GET['record']),0,4);
$n_month = substr(intval($_GET['record']),4,2);
$year_month = substr(intval($_GET['record']),0,6);
}
//å¹´æè·³è½¬è¿æ¥
$m = $n_month - 1;
$mj = $n_month + 1;
$m = ($m < 10) ? '0' . $m : $m;
$mj = ($mj < 10) ? '0' . $mj : $mj;
$year_up = $n_year;
$year_down = $n_year;
if ($mj > 12){
$mj = '01';
$year_up = $n_year + 1;
}
if ( $m < 1){
$m = '12';
$year_down = $n_year - 1;
}
$url = DYNAMIC_BLOGURL.'?action=cal&record=' . ($n_year - 1) . $n_month;//ä¸ä¸å¹´ä»½
$url2 = DYNAMIC_BLOGURL.'?action=cal&record=' . ($n_year + 1) . $n_month;//ä¸ä¸å¹´ä»½
$url3 = DYNAMIC_BLOGURL.'?action=cal&record=' . $year_down . $m;//ä¸ä¸æä»½
$url4 = DYNAMIC_BLOGURL.'?action=cal&record=' . $year_up . $mj;//ä¸ä¸æä»½
$calendar ="<table class=\"calendartop\" cellspacing=\"0\"><tr>
<td><a href=\"javascript:void(0);\" onclick=\"sendinfo('$url','calendar');\"> « </a>$n_year2<a href=\"javascript:void(0);\" onclick=\"sendinfo('$url2','calendar');\"> » </a></td>
<td><a href=\"javascript:void(0);\" onclick=\"sendinfo('$url3','calendar');\"> « </a>$n_month<a href=\"javascript:void(0);\" onclick=\"sendinfo('$url4','calendar');\"> » </a></td>
</tr></table>
<table class=\"calendar\" cellspacing=\"0\">
<tr><td class=\"week\">ä¸</td><td class=\"week\">äº</td><td class=\"week\">ä¸</td><td class=\"week\">å</td><td class=\"week\">äº</td><td class=\"week\">å
</td><td class=\"sun\">æ¥</td></tr>";
//è·åç»å®å¹´æç第ä¸å¤©æ¯ææå
$week = @gmdate("w",gmmktime(0,0,0,$n_month,1,$n_year));
//è·åç»å®å¹´æç天æ°
$lastday = @gmdate("t",gmmktime(0,0,0,$n_month,1,$n_year));
//è·åç»å®å¹´æçæåä¸å¤©æ¯ææå
$lastweek = @gmdate("w",gmmktime(0,0,0,$n_month,$lastday,$n_year));
if ( $week == 0){
$week = 7;
}
$j = 1;
$w = 7;
$isend = false;
//å¤å¾ªç¯çæè¡
for ($i = 1;$i <= 6;$i++){
if ($isend || ($i == 6 && $lastweek==0)){
break;
}
$calendar .= '<tr>';
//å
循ç¯çæå
for($j ; $j <= $w; $j++){
if ($j < $week){
$calendar.= '<td> </td>';
} elseif ( $j <= 7 ) {
$r = $j - $week + 1;
//å¦æè¯¥æ¥ææ¥å¿å°±æ¾ç¤ºurlæ ·å¼
$n_time = $n_year . $n_month . '0' . $r;
//ææ¥å¿ä¸ä¸ºå½å¤©
if (@in_array($n_time,$logdate) && $n_time == $time){
$calendar .= '<td class="day"><a href="'.BLOG_URL.'?record='.$n_time.'">'. $r .'</a></td>';
} elseif (@in_array($n_time,$logdate)) {
$calendar .= '<td class="day2"><a href="'.BLOG_URL.'?record='.$n_time.'">'. $r .'</a></td>';
} elseif ($n_time == $time){
$calendar .= '<td class="day">'. $r .'</td>';
} else {
$calendar.= '<td>'. $r .'</td>';
}
}else{
$t = $j - ($week - 1);
if ($t > $lastday){
$isend = true;
$calendar .= '<td> </td>';
} else {
//å¦æè¯¥æ¥ææ¥å¿å°±æ¾ç¤ºurlæ ·å¼
$t < 10 ? $n_time = $n_year . $n_month . '0' . $t : $n_time = $n_year . $n_month . $t;
if (@in_array($n_time,$logdate) && $n_time == $time){
$calendar .= '<td class="day"><a href="'.BLOG_URL.'?record='.$n_time.'">'. $t .'</a></td>';
} elseif(@in_array($n_time,$logdate)){
$calendar .= '<td class="day2"><a href="'.BLOG_URL.'?record='.$n_time.'">'. $t .'</a></td>';
} elseif($n_time == $time) {
$calendar .= '<td class="day">'. $t .'</td>';
} else {
$calendar .= '<td>'.$t.'</td>';
}
}
}
}//å
循ç¯ç»æ
$calendar .= '</tr>';
$w += 7;
}//å¤å¾ªç¯ç»æ
$calendar .= '</table>';
echo $calendar;
}
}