Calendar
[ class tree: Calendar ] [ index: Calendar ] [ all elements ]

Source for file 2.php

Documentation is available at 2.php

  1. <?php
  2. /**
  3. * Description: Demonstrates building a calendar for a month using the Week class
  4. * Uses UnixTs engine
  5. */
  6. function getmicrotime(){
  7.     list($usec$secexplode(" ",microtime());
  8.     return ((float)$usec + (float)$sec);
  9. }
  10. $start getmicrotime();
  11.  
  12. // Force UnixTs engine (default setting)
  13. define('CALENDAR_ENGINE','UnixTS');
  14.  
  15. if (!@include 'Calendar'.DIRECTORY_SEPARATOR.'Calendar.php'{
  16.     define('CALENDAR_ROOT''../../');
  17. }
  18. require_once CALENDAR_ROOT.'Month/Weeks.php';
  19. require_once CALENDAR_ROOT.'Day.php';
  20.  
  21. // Initialize GET variables if not set
  22. if (!isset($_GET['y'])) $_GET['y'date('Y');
  23. if (!isset($_GET['m'])) $_GET['m'date('m');
  24. if (!isset($_GET['d'])) $_GET['d'date('d');
  25.  
  26. // Build a month object
  27. $Month = new Calendar_Month_Weeks($_GET['y']$_GET['m']);
  28.  
  29. // Create an array of days which are "selected"
  30. // Used for Week::build() below
  31. $selectedDays = array (
  32.     new Calendar_Day($_GET['y'],$_GET['m']$_GET['d']),
  33.     new Calendar_Day($_GET['y']1225),
  34.     new Calendar_Day(date('Y')date('m')date('d')),
  35.     );
  36.  
  37. // Instruct month to build Week objects
  38. $Month->build();
  39.  
  40. // Construct strings for next/previous links
  41. $PMonth $Month->prevMonth('object')// Get previous month as object
  42. $prev $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay();
  43. $NMonth $Month->nextMonth('object');
  44. $next $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay();
  45. ?>
  46. <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  47. <html>
  48. <head>
  49. <title> Calendar </title>
  50. <style text="text/css">
  51. table {
  52.     background-color: silver;
  53. }
  54. caption {
  55.     font-family: verdana;
  56.     font-size: 12px;
  57.     background-color: while;
  58. }
  59. .prevMonth {
  60.     font-size: 10px;
  61.     text-align: left;
  62. }
  63. .nextMonth {
  64.     font-size: 10px;
  65.     text-align: right;
  66. }
  67. th {
  68.     font-family: verdana;
  69.     font-size: 11px;
  70.     color: navy;
  71.     text-align: right;
  72. }
  73. td {
  74.     font-family: verdana;
  75.     font-size: 11px;
  76.     text-align: right;
  77. }
  78. .selected {
  79.     background-color: yellow;
  80. }
  81. .empty {
  82.     color: white;
  83. }
  84. </style>
  85. </head>
  86.  
  87. <body>
  88. <h2>Build with Calendar_Month_Weeks::build() then Calendar_Week::build()</h2>
  89. <table class="calendar">
  90. <caption>
  91. <?php echo date('F Y'$Month->getTimeStamp())?>
  92. </caption>
  93. <tr>
  94. <th>M</th>
  95. <th>T</th>
  96. <th>W</th>
  97. <th>T</th>
  98. <th>F</th>
  99. <th>S</th>
  100. <th>S</th>
  101. </tr>
  102. <?php
  103. while ($Week $Month->fetch()) {
  104.     echo "<tr>\n";
  105.     // Build the days in the week, passing the selected days
  106.     $Week->build($selectedDays);
  107.     while ($Day $Week->fetch()) {
  108.  
  109.         // Build a link string for each day
  110.         $link $_SERVER['PHP_SELF'].
  111.                     '?y='.$Day->thisYear().
  112.                     '&m='.$Day->thisMonth().
  113.                     '&d='.$Day->thisDay();
  114.  
  115.         // Check to see if day is selected
  116.         if ($Day->isSelected()) {
  117.             echo '<td class="selected">'.$Day->thisDay().'</td>'."\n";
  118.         // Check to see if day is empty
  119.         else if ($Day->isEmpty()) {
  120.             echo '<td class="empty">'.$Day->thisDay().'</td>'."\n";
  121.         else {
  122.             echo '<td><a href="'.$link.'">'.$Day->thisDay().'</a></td>'."\n";
  123.         }
  124.     }
  125.     echo '</tr>'."\n";
  126. }
  127. ?>
  128. <tr>
  129. <td>
  130. <a href="<?php echo $prev?>" class="prevMonth"><< </a>
  131. </td>
  132. <td colspan="5">&nbsp;</td>
  133. <td>
  134. <a href="<?php echo $next?>" class="nextMonth"> >></a>
  135. </td>
  136. </tr>
  137. </table>
  138. <?php
  139. echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>';
  140. ?>
  141. </body>
  142. </html>

Documentation generated on Mon, 11 Mar 2019 15:37:47 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.