All pastes #177727 Raw Edit

-LsV-

public php v1 · immutable
#177727 ·published 2006-09-20 17:00 UTC
rendered paste body
<?phpclass Calendar{		var $startDay = 1;	// 1=Monday, 2=Tueday .... 7=Sunday		var $showMonday = true;	var $showTuesday = true;	var $showWednesday = true;	var $showThursday = true;	var $showFriday = true;	var $showSaturday = true;	var $showSunday = true;	// Which days will be showed		var $daysName = array(1=>"Mandag",2=>"Tirsdag",3=>"Onsdag",4=>"Torsdag",5=>"Fredag",6=>"Lørdag",7=>"Søndag");	var $monthsName = array(1=>"Januar",2=>"Februar",3=>"Marts",4=>"April",5=>"Maj",7=>"Juni",8=>"Juli",9=>"August",10=>"September",11=>"November",12=>"December");	// Names for days and months	// Days is 1=Monday to 7=Sunday		var $css_th_dayname = "dayname";	var $css_th_subject = "subject";	var $css_th_empty = "notused";		var $css_file = "stylesheet.css";	var $css_td_weeknumber = "weeknumber";	var $css_td_today = "today";	var $css_td_lastmonth = "lastmonth";	var $css_td_nextmonth = "nextmonth";	var $css_td_date = "date";	var $css_table = "table";	var $css_tr = "tr";	// Stylesheets		var $lineFormat = false;	// Show dates in a line or in a table		var $dateFormat_month = "m";	var $dateFormat_day = "d";	var $dateFormat_year = "Y";	var $dateFormat_between = "-";	// Date format			var $showWeekNumber = true;	var $showSubject = true;	// Show settings		var $setDoctype = true; // Show FULL html (with header and body)	var $strict_doctype = true; // TRUE = XHTML 1.0 strict, FALSE = HTML 4.1	// Doctype and show	var $_daysPrRow = 0;	var $_selected_year;	var $_selected_month;	var $_selected_day;	// Private vars		function Calendar($month=false,$day=false,$year=false) {		if(!$month) $this->_selected_month=date("n"); else $this->_selected_month=$month;		if(!$year) $this->_selected_year=date("Y"); else $this->_selected_year=$year;		if(!$day) $this->_selected_day=date("j"); else $this->_selected_day=$day;	}	function _isToday($day,$month,$year) {		list($d,$m,$y) = explode("-",date("j-n-Y"));		if($d==$day && $m==$month && $y==$year) return true;		else return false;	}		function _setDaysPrRow() { $i=1; while ($i<8) { if($this->_showDay($i)) $this->_daysPrRow++; $i++; } if($this->lineFormat) $this->_daysPrRow=1; } 	function _getDaysName($daynumber) { return $this->daysName[$daynumber]; }	function _getMonthsName($monthnumber) { return $this->monthsName[$monthnumber]; }	function _getWeekNumber($day,$month,$year) { return date("W",mktime(0,0,0,$month,$day,$year)); }	function _getStartDayInMonth($month,$year) { return 7-((7-date("w",mktime(0,0,0,$month,1,$year)))%(7+date("w",mktime(0,0,0,$month,1,$year)))); }	function _getNumberofDaysInMonth($month,$year) { return date("t",mktime(0,0,0,$month,1,$year)); }	function _getNumberofDaysInLastMonth($month,$year) { return date("t",mktime(0,0,0,$month,1,$year)); }	function _showDay($daynumber) { 		switch($daynumber) {			case 1: return $this->showMonday; break;			case 2: return $this->showTuesday; break;			case 3: return $this->showWednesday; break;			case 4: return $this->showThursday; break;			case 5: return $this->showFriday; break;			case 6: return $this->showSaturday; break;			case 7: return $this->showSunday; break;			default: return false; break;		}	}		function getCalendar($title="") {		$this->_setDaysPrRow();				$html = "";		if($this->setDoctype) {			if($this->strict_doctype) $html .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";			else $html .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n";			$html .= "<html>\n";			$html .= "<head>\n";			$html .= "\t<link href=\"".$this->css_file."\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\"".($this->strict_doctype?" /":"").">\n";			$html .= "\t<title>".$title."</title>\n";			$html .= "</head>\n\n";			$html .= "<body>\n";		}				$html .= "<table class='".$this->css_table."'>\n";				if($this->showSubject) {			$html .= "\t<tr>\n";			$html .= "\t\t<th colspan='".($this->showWeekNumber?$this->_daysPrRow+1:$this->_daysPrRow)."' class='".$this->css_th_subject."'>".date($this->dateFormat.$this->dateFormat_month.$this->dateFormat_between.$this->dateFormat_year,mktime(0,0,0,$this->_selected_month,1,$this->_selected_year))."</th>\n";			$html .= "\t</tr>\n";		}						// START DAYNAME BOXES		$start=$this->startDay;		$firstRun = true;		$end=false;				$html .= "\t<!-- START DAYNAME BOXES -->\n";		$html .= "\t<tr>\n";		if($this->showWeekNumber) $html .= "\t\t<th class='".$this->css_th_empty."'>&nbsp;</th>\n";		while(1) {			if($start>=8) $start=1;			if(!$firstRun) if($start==$this->startDay) break;			if($this->_showDay($start)) $html .= "\t\t<th class='".$this->css_th."'>".$this->_getDaysName($start)."</th>\n";			$firstRun=false;			$start++;		}		$html .= "\t</tr>\n";		$html .= "\t<!-- END DAYNAME BOXES -->\n\n";		// END DAYNAME BOXES						// START LAST MONTH DAYS		$start=$this->startDay;		$startDay=$this->_getStartDayInMonth($this->_selected_month,$this->_selected_year);		$lastMonth=$this->_getNumberofDaysInLastMonth($this->_selected_month-1,$this->_selected_year)+1;		if($start!=$startDay) {			while (1) {				if($start==$startDay) break;				$lastMonth--;				$start++;			}		}				$start=$this->startDay;		$startDay=$this->_getStartDayInMonth($this->_selected_month,$this->_selected_year);		$html .= "<!-- START LAST MONTH DAYS -->\n";		if($start!=$startDay) {			$html .= "\t<tr>\n";			if($this->showWeekNumber) $html .= "\t\t<td class='".$this->css_td_weeknumber."'>".$this->_getWeekNumber(1,$this->_selected_month,$this->_selected_year)."</td>\n";			$rowCounter = 1;			while(1) {				if($start==$startDay) break;				$html .= "\t\t<td class='".$this->css_td_lastmonth."'>".$lastMonth."</td>\n";				$start++;				$lastMonth++;			}		}		$html .= "<!-- END LAST MONTH DAYS -->\n";		// END LAST MONTH DAYS				// START THIS MONTH DAYS		$html .= "<!-- START THIS MONTH DAYS -->\n";		$dato = 1;		while ($dato<=$this->_getNumberofDaysInMonth($this->_selected_month,$this->_selected_year)) {			if($start>7 || $start==1) { $start=1; $html .= "\t<tr>\n"; if($this->showWeekNumber) $html .= "\t\t<td class='".$this->css_td_weeknumber."'>".$this->_getWeekNumber($dato,$this->_selected_month,$this->_selected_year)."</td>\n"; }			if($this->_showDay($start)) $html .= "\t\t<td class='".($this->_isToday($dato,$this->_selected_month,$this->_selected_year)?$this->css_td_today:$this->css_td_date)."'>".$dato."</td>\n";			if($start==7) $html .= "\t</tr>\n";			$start++;			$dato++;		}		$html .= "<!-- END THIS MONTH DAYS -->\n";		// END THIS MONTH DAYS				// START NEXT MONTH DAYS		$nextmonth = 1;		$html .= "<!-- START NEXT MONTH DAYS -->\n";		if($start<8) {			while($start<8) {				if($this->_showDay($start)) $html .= "\t\t<td class='".$this->css_td_notused."'>".$nextmonth."</td>\n";				$start++;				$nextmonth++;			}			$html .= "\t</tr>\n";			$html .= "<!-- END NEXT MONTH DAYS -->\n";		}		// END NEXT MONTH DAYS		$html .= "</table>\n";				if($this->setDoctype) $html .= "</body>\n</html>";		return $html;	}		function getLastMonth() {		$month = $this->_selected_month-1;		switch ($month) {			case 0:				$year = $this->_selected_year-1;				$month=12;				break;			default:				$year = $this->_selected_year;				break;		}		return "?selMonth=".$month."&amp;selYear=".$year;	}		function getNextMonth() {		$month = $this->_selected_month+1;		switch ($month) {			case 13:				$year = $this->_selected_year+1;				$month = 1;				break;			default:				$year = $this->_selected_year;				break;		}		return "?selMonth=".$month."&amp;selYear=".$year;	}}$calendar = new Calendar($_GET["selMonth"],false,$_GET["selYear"]);$calendar->setDoctype=false;echo $calendar->getCalendar();echo "<br /><br /><br />";echo "<a href='".$calendar->getLastMonth()."'> << </a>";echo "&nbsp;";echo "&nbsp;";echo "&nbsp;";echo "<a href='".$calendar->getNextMonth()."'> >> </a>";?>