Version: 1.0.2
Type: Full Script
Category: Calendars/Dates
License: GNU General Public License
Description: First attempt at a usable, upgradeable calendar module.
<?php
// Current Version - 1.0.2
// Version 1.0.0 -Created May 10th, 2003 By Jim Stewart - Base Calendar
// Version 1.0.1 -Added Next and Prev Buttons.
// upgraded form variables for php 4.3.7 - John Newbury jpnewbury@smc-grp.com
// you may choose to change method GET to POST
class Calendar{
function CreateMonthValues($Month,$Year){
$DayCount=1;
$NewTimeStamp=mktime(0,0,0,$Month,1,$Year);
$Date=getdate($NewTimeStamp);
$MonthToPrint=$Date["month"];
$Offset=$Date["wday"];
$MonthNumber=$Date["mon"];
$DaytoPrint=$Date["mday"];
If ($MonthNumber=="12"){
$NextMonth="1";
}else{
$NextMonth=$MonthNumber+"1";
};
While($MonthNumber<>$NextMonth){
$Date=getdate($NewTimeStamp);
$DayCount++;
$MonthNumber=$Date["mon"];
$NewTimeStamp=$NewTimeStamp+"86400";
};
$CalendarValues=array($MonthToPrint,($DayCount-2),$Offset);
return $CalendarValues;
}
};
// register variables upgrade for php 4.3 & up , John Newbury www.smc-grp.com
$Month = $_GET[Month];
$Year = $_GET[Year];
$Submit = $_GET[Submit];
function NextLink($Month,$Year){
if($Month=="12"){
$Month="1";
$Year=$Year+1;
}else{
$Month=$Month+1;
$Year;
};
$String="<form action='Calendar.php' method='GET'><input type='hidden' name='Month' value='$Month'><input type='hidden' name='Year' value='$Year'><input type='submit' style='font-family: Century Gothic; background-color: #FFFFFF; border: 1 solid #000080' name='Submit' value='Next'></form>";
return $String;
};
function PrevLink($Month,$Year){
if($Month=="1"){
$Month="12";
$Year=$Year-1;
}else{
$Month=$Month-1;
$Year;
};
$String2="<form action='Calendar.php'method='GET'><input type='hidden' name='Month' value='$Month'><input type='hidden' name='Year' value='$Year'><input type='submit' style='font-family: Century Gothic; background-color: #FFFFFF; border: 1 solid #AD0800' name='Submit' value='Prev'></form>";
return $String2;
};
//Check for Input Variables
If($Submit){
$Month=$Month;
$Year=$Year;
}else{
$ThisMonth=getdate(time());
$Month=$ThisMonth["mon"];
$Today=$ThisMonth["mday"];
$Year=$ThisMonth["year"];
};
$cellheadbgcolor="#99CCFF";
$celldaysbgcolor="#EEEEEE";
$tablebordercolor="#000080";
$cellbordercolor="#FFFFFF";
$todaybgcolor="#880000";
$Calendar=new Calendar;
$NextLink=NextLink($Month, $Year);
$PrevLink=PrevLink($Month, $Year);
$Values=$Calendar->CreateMonthValues($Month, $Year);
$MonthName=$Values[0];
$NoOfDays=$Values[1];
$OffsetDays=$Values[2];
$DaysOfWeek=array('Sun','Mon','Tues','Wed','Thurs','Fri','Sat');
$FirstDayToPrint=7-$OffsetDays;
$StartDay="1";
$PrintDay="1";
//Start Table
Print"<table align='center' width='35%' cellpadding='0' cellspacing='0' border='1' bordercolor='$tablebordercolor'>\n";
Print"<tr>\n";
Print"<td colspan='1' align='left' bordercolor='$cellbordercolor'>$PrevLink</td><td colspan='5' bgcolor='#EEEEEE' align='center' bordercolor='$cellbordercolor'><font size='5'>$MonthName $Year</font></td><td colspan='1' align='right' bordercolor='$cellbordercolor'>$NextLink</td>\n";
Print"</tr>\n<tr>\n";
foreach($DaysOfWeek as $head){
Print"<td width='5%' align='center' bordercolor='$cellbordercolor' bgcolor='$cellheadbgcolor'>$head</td>\n";
};
Print"</tr>\n";
//start days
//Resolve Blank Days in Beginning of Month
while($OffsetDays>0){
Print"<td width='5%' align='center' bordercolor='$cellbordercolor' bgcolor='$celldaysbgcolor'> </td>\n";
$OffsetDays--;
};
while($FirstDayToPrint>0){
//Check For Today
if($StartDay==($Today-1)){
$celldaysbgcolor="#9999FF";
}else{
$celldaysbgcolor="#EEEEEE";
};
Print"<td width='5%' align='center' bordercolor='$cellbordercolor' bgcolor='$celldaysbgcolor'>$PrintDay</td>\n";
$StartDay++;
$FirstDayToPrint--;
$PrintDay=$StartDay;
};
print"</tr>\n";
//Finish Month
While($StartDay<=$NoOfDays){
$columns="7";
print"<tr>\n";
while($columns>0){
//Check For Today
if($PrintDay==($Today-1)){
$celldaysbgcolor="#9999FF";
}else{
$celldaysbgcolor="#EEEEEE";
};
if($StartDay>$NoOfDays){
$PrintDay=" ";
}else{
$PrintDay="$StartDay";
};
print"<td width='5%' align='center' bordercolor='$cellbordercolor' bgcolor='$celldaysbgcolor'>$PrintDay</td>\n";
$columns--;
$StartDay++;
};
Print"</tr>\n";
};
?>