3 * Description: A "personal planner" with some WML for fun
4 * Note this is done the stupid way - a giant if/else for WML or HTML
5 * could be greatly simplified with some HTML/WML rendering classes...
7 function getmicrotime(){
8 list($usec, $sec) = explode(" ",microtime());
9 return ((float)$usec + (float)$sec);
11 $start = getmicrotime();
13 if ( !@include 'Calendar/Calendar.php' ) {
14 define('CALENDAR_ROOT','../../');
16 require_once CALENDAR_ROOT.'Month/Weekdays.php';
17 require_once CALENDAR_ROOT.'Day.php';
19 if (!isset($_GET['y'])) $_GET['y'] = date('Y');
20 if (!isset($_GET['m'])) $_GET['m'] = date('n');
21 if (!isset($_GET['d'])) $_GET['d'] = date('j');
23 $Month = & new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
24 $Day = & new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']);
25 $selection = array($Day);
27 #-----------------------------------------------------------------------------#
28 if ( isset($_GET['mime']) && $_GET['mime']=='wml' ) {
29 header ('Content-Type: text/vnd.wap.wml');
30 echo ( '<?xml version="1.0"?>' );
32 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
34 <big><strong>Personal Planner Rendered with WML</strong></big>
36 if ( isset($_GET['viewday']) ) {
38 <p><strong>Viewing <?php echo ( date('l, jS of F, Y',$Day->getTimeStamp()) ); ?></strong></p>
43 echo ( "?y=".$Day->thisYear()."&m=".
44 $Day->thisMonth()."&d=".$Day->thisDay()."&mime=wml" );
51 while ( $Hour = & $Day->fetch() ) {
53 echo ( "<td>".date('g a',$Hour->getTimeStamp())."</td><td>Free time!</td>\n" );
61 <p><strong><?php echo ( date('F Y',$Month->getTimeStamp()) ); ?></strong></p>
64 <td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td><td>S</td>
67 $Month->build($selection);
68 while ( $Day = $Month->fetch() ) {
69 if ( $Day->isFirst() ) {
72 if ( $Day->isEmpty() ) {
73 echo ( "<td></td>\n" );
74 } else if ( $Day->isSelected() ) {
75 echo ( "<td><anchor><strong><u>".$Day->thisDay()."</u></strong>\n<go href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
76 $Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
77 "&mime=wml\" />\n</anchor></td>\n" );
79 echo ( "<td><anchor>".$Day->thisDay()."\n<go href=\"?viewday=true&y=".
80 $Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
81 "&mime=wml\" /></anchor></td>\n" );
83 if ( $Day->isLast() ) {
93 echo ( "?y=".$Month->thisYear()."&m=".
94 $Month->prevMonth()."&d=".$Month->thisDay()."&mime=wml" );
98 <td></td><td></td><td></td><td></td><td></td>
103 echo ( "?y=".$Month->thisYear()."&m=".
104 $Month->nextMonth()."&d=".$Month->thisDay()."&mime=wml" );
114 <p><a href="<?php echo ( $_SERVER['PHP_SELF'] ); ?>">Back to HTML</a></p>
115 <?php echo ( '<p>Took: '.(getmicrotime()-$start).' seconds</p>' ); ?>
118 #-----------------------------------------------------------------------------#
121 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
124 <title> HTML (+WML) Personal Planner </title>
127 <h1>Personal Planner Rendered with HTML</h1>
128 <p>To view in WML, click <a href="<?php echo ( $_SERVER['PHP_SELF'] ); ?>?mime=wml">here</a> or place a ?mime=wml at the end of any URL.
129 Note that <a href="http://www.opera.com/download">Opera</a> supports WML natively and Mozilla / Firefox has the WMLBrowser
130 plugin: <a href="http://wmlbrowser.mozdev.org">wmlbrowser.mozdev.org</a></p>
132 if ( isset($_GET['viewday']) ) {
134 <p><strong>Viewing <?php echo ( date('l, jS of F, Y',$Day->getTimeStamp()) ); ?></strong></p>
138 echo ( "?y=".$Day->thisYear()."&m=".
139 $Day->thisMonth()."&d=".$Day->thisDay());
140 ?>">Back to Month View</a>
145 while ( $Hour = & $Day->fetch() ) {
147 echo ( "<td>".date('g a',$Hour->getTimeStamp())."</td><td>Free time!</td>\n" );
155 <p><strong><?php echo ( date('F Y',$Month->getTimeStamp()) ); ?></strong></p>
158 <td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td><td>S</td>
161 $Month->build($selection);
162 while ( $Day = $Month->fetch() ) {
163 if ( $Day->isFirst() ) {
166 if ( $Day->isEmpty() ) {
167 echo ( "<td></td>\n" );
168 } else if ( $Day->isSelected() ) {
169 echo ( "<td><a href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
170 $Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
171 "&wml\"><strong><u>".$Day->thisDay()."</u></strong></a></td>\n" );
173 echo ( "<td><a href=\"".$_SERVER['PHP_SELF']."?viewday=true&y=".
174 $Day->thisYear()."&m=".$Day->thisMonth()."&d=".$Day->thisDay().
175 "\">".$Day->thisDay()."</a></td>\n" );
177 if ( $Day->isLast() ) {
185 echo ( "?y=".$Month->thisYear()."&m=".
186 $Month->prevMonth()."&d=".$Month->thisDay() );
190 <td></td><td></td><td></td><td></td><td></td>
193 echo ( "?y=".$Month->thisYear()."&m=".
194 $Month->nextMonth()."&d=".$Month->thisDay() );
205 <?php echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' ); ?>