Mega Code Archive

 
Categories / Php / Calendar
 

Table calendar pretty much does what cal(1) does - prints out a calendar

<!-- I should add something in here to highlight "today" if it's in the scope of the viewed month --> <? # $selected{Month,Day,Year} should be set by the calling script. # Actually, I should turn this into a function/object, and call it with # those values. That would sanatize the calling script. Too many # variables crawling about already. # Create an html calendar for a month. if (!$selectedDay ) { $selectedDay = date( 'd'); } if (!$selectedMonth) { $selectedMonth = date( 'm'); } if (!$selectedYear) { $selectedYear = date( 'Y'); } # get the first day of the week! $firstday = date( 'w',mktime(0,0,0,$selectedMonth,1,$selectedYear)); # have to perform a loop to test from 31 backwards using this # to see which is the last day of the month $lastday = 31; do { # *Sigh* recursion would have been more fun here. $monthOrig = date( 'm',mktime(0,0,0,$selectedMonth,1,$selectedYear)); $monthTest = date( 'm',mktime(0,0,0,$selectedMonth,$lastday,$selectedYear)); if ($monthTest != $monthOrig) { $lastday -= 1; } } while ($monthTest != $monthOrig); $monthName = date( 'F',mktime(0,0,0,$selectedMonth,1,$selectedYear)); if($DEBUGGING_SET) { print( "<p>first day of the first week of $selectedMonth $selectedYear is $firstday (from 0 to 6) <p>\n"); print( "The last day of $selectedMonth $selectedYear is $lastday\n<p>"); } $days[0] = 'Sun'; $days[1] = 'Mon'; $days[2] = 'Tue'; $days[3] = 'Wed'; $days[4] = 'Thu'; $days[5] = 'Fri'; $days[6] = 'Sat'; $dayRow = 0; print( "<table bgcolor=\"#FFFFFF\">"); print( "<caption valign=\"center\"><b>$monthName $selectedYear</b></caption>"); print( "<tr>\n"); for($i=0; $i<=6; $i++) { print( "<td width=10%>$days[$i]</td>\n"); } print( "</tr>\n"); print( "<tr>\n"); while($dayRow < $firstday) { print( "<td><!-- This day in last month --></td>"); $dayRow += 1; } $day = 0; if($frametarget) { $targetString = 'target = '.$frametarget; } else { $targetString = ''; } while($day < $lastday) { if(($dayRow % 7) == 0) { print( "</tr>\n<tr>\n"); } $adjusted_day = $day+1; print( "<td><a href=\"/php3/eventCalendar/event_content.phtml? month=$selectedMonth&day=$adjusted_day&year=$selectedYear\" $targetString>$adjusted_day</a></td>"); $day += 1; $dayRow += 1; } print( "\n</tr>\n</table>\n"); # print("$selectedMonth"); ?>