PX : code

table calendar by Peter C. Norton
Download this code


<!-- I should add something in here to highlight "today" if it's in the scope of the viewed month -->
<!-- -PN 3/30/1998 -->
<?
  # $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");
?>


Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.