?? calendar.inc.php
字號:
<?/*** Title: display month calendar* File Name: ./class/Calendar.inc.php* Copyright (c) 2004 M-logger* Author: milkliker* Modify: milkliker* Last Change: 22:36 04-8-12* Version: 0.3.0**/class Calendar extends txtdb{//START CLASSvar $month;var $year;var $cacheFile;var $cache=true;//falsevar $listFile;var $time;var $prev;var $next;/*** Class constructor.*/function Calendar($month=null,$year=null,$pn=false){global $thisTime;$this->month= is_null($month) ? date("n",$thisTime) : $month;$this->year= (is_null($year) or $year<1971 or $year>2037) ? date("Y",$thisTime) : $year;$this->cacheFile= CACHEDIR.'/calendar[y-'.$this->year.'-m-'.$this->month.'].cache.php';$this->listFile= 'list/year_'.$this->year;$this->time= @mktime(0,0,1,$this->month,1,$this->year);if($pn){//Preview & Nextif(intval($this->month)==12){$prevMonth=intval($this->month)-1;$prevYear=intval($this->year);$nextMonth=1;$nextYear=intval($this->year)+1;}elseif(intval($this->month)==1){$prevMonth=12;$prevYear=intval($this->year)-1;$nextMonth=intval($this->month)+1;$nextYear=intval($this->year);}else{$prevMonth=intval($this->month)-1;$prevYear=intval($this->year);$nextMonth=intval($this->month)+1;$nextYear=intval($this->year);}$prevTime= @mktime(0,0,1,$prevMonth,1,$prevYear);$nextTime= @mktime(0,0,1,$nextMonth,1,$nextYear);$this->prev=$prevYear.'-'.$prevMonth.'-'.date("t",$prevTime);$this->next=$nextYear.'-'.$nextMonth.'-'.date("t",$nextTime);}}/*** output the html of a month calendar.*/function output(){global $thisTime,$config,$cate;$nowTime=explode('-',date("Y-n-j",$thisTime));if($nowTime[1]==$this->month){$this->cache=false;@unlink($this->cacheFile);}if($this->cache and file_exists($this->cacheFile)){$fp=fopen($this->cacheFile,'r');$data=fread($fp,filesize($this->cacheFile));fclose($fp);return unserialize(substr($data,strlen(DBHEADER)));}$this->txtdb('db');if($this->exists($this->listFile)) $data=$this->get("'{month}'=='$this->month'",false,null,$this->listFile,$config['UseCache']);if(!empty($data)){$_temp=explode(',',$data[value][dates]);foreach($_temp as $value){$dateTemp[$value]=$value;}}$weekspacer = date("w",$this->time);$lastday = date("t",$this->time);$out=array('month'=>date("F Y",$this->time),'calendar'=>array());$j=1;for($i=0;$i<$weekspacer;$i++){$out['calendar'][$j][$i]='';}$startDay=$i;for($date=1;$date<=$lastday;$date++){if($this->year==$nowTime[0] and $this->month==$nowTime[1] and $date==$nowTime[2]){$out['calendar'][$j][$i]='<font class="calendarToday">';}elseif(strftime("%w",mktime(1,1,1,$this->month,$date,$this->year))==0){$out['calendar'][$j][$i]='<font class="calendarSunday">';}else{$out['calendar'][$j][$i]='<font class="calendar">';}if(!empty($dateTemp[$date])){if(!empty($cate)) $addtion='&c='.$cate;$out['calendar'][$j][$i].='<a href="./?date='.$this->year.'-'.$this->month.'-'.$date.$addtion.'" class="calendarLink"> '.$date.' </a></font>';}else{$out['calendar'][$j][$i].=' '.$date.' </font>';}$i++;if (!(($startDay+$date)%7) and $date!=$lastday){$i=0;$j++;}}$weekspacer = date("w",mktime(0,0,0,$this->month,$lastday,$this->year));for($i=$weekspacer;$i<6;$i++){$out['calendar'][$j][$i].='';}if($this->cache){$fp=fopen($this->cacheFile,'w+');fwrite($fp,DBHEADER.serialize($out));fclose($fp);}return $out;}}//END CLASS?>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -