Difference between revisions of "Calendar.php"
From Organic Design wiki
(mixed up td's and th's) |
({{legacy}}) |
||
(43 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | <? | + | {{legacy}} |
− | + | <php><? | |
− | function month( $m, $y ) { | + | # Return a calendar table of the passed month and year |
− | $ | + | function month( $m, $y, $prefix = '' ) { |
− | if ( !$ | + | $thisDay = date('d'); |
+ | $thisMonth = date('n'); | ||
+ | $thisYear = date('Y'); | ||
+ | if ( !$d = date( 'w', $ts = mktime( 0, 0, 0, $m, 1, $y) ) ) $d = 7; | ||
$month = date( 'F', $ts ); | $month = date( 'F', $ts ); | ||
− | $article = "<table | + | $article = "<table><tr><th colspan=7><h3>$month</h3>\n<tr>"; |
− | $article .= " | + | $article .= "<th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>\n"; |
− | if ( $d > 1 ) $article .= '<tr>'.str_repeat( '<td>', $d-1 ); | + | if ( $d > 1 ) $article .= '<tr>'.str_repeat( '<td> </td>', $d-1 ); |
− | for ( $i = $d; $ | + | for ( $i = $day = $d; $day < 32; $i++ ) { |
− | + | $day = $i - $d + 1; | |
− | + | $dd = $day < 10 ? "0$day" : $day; | |
− | + | if ( $day < 29 or checkdate( $m, $day, $y ) ) { | |
+ | if ( $i%7 == 1 ) $article .= "\n<tr>"; | ||
+ | $t = ( $day == $thisDay and $m == $thisMonth and $y == $thisYear ) ? ' class=xwToday' : ''; | ||
+ | $article .= "<td$t>[[$prefix$dd $month $y|$day]]"; | ||
+ | } | ||
} | } | ||
$article .= "\n</table>"; | $article .= "\n</table>"; | ||
Line 17: | Line 24: | ||
} | } | ||
− | $article = "<table | + | # Use everything before "Calendar" in name as prefix |
+ | $p = preg_replace( '/calendar.*$/i', '', $title ); | ||
+ | |||
+ | # If cal name ends with a year, use that instead of current | ||
+ | $y = ereg( '([0-9]{4})$', $title, $m ) ? $m[1] : date( 'Y' ); | ||
+ | |||
+ | # Append the article content with a table of all the month-tables | ||
+ | $article .= "<table class=xwCalendar>\n<tr>"; | ||
$m = 1; | $m = 1; | ||
− | + | for ( $rows = 3; $rows--; $article .= "\n<tr>" ) | |
− | for ( $rows = | ||
− | |||
for ( $cols = 0; $cols < 4; $cols++ ) | for ( $cols = 0; $cols < 4; $cols++ ) | ||
− | $article .= "\n<td | + | $article .= "\n<td>".month( $m++, $y, $p ); |
− | |||
− | |||
$article .= '</table>'; | $article .= '</table>'; | ||
− | ?> | + | ?></php> |
Latest revision as of 02:13, 24 April 2007
<php><?
- Return a calendar table of the passed month and year
function month( $m, $y, $prefix = ) { $thisDay = date('d'); $thisMonth = date('n');
$thisYear = date('Y');
if ( !$d = date( 'w', $ts = mktime( 0, 0, 0, $m, 1, $y) ) ) $d = 7; $month = date( 'F', $ts );
$article = "
"; $article .= "\n"; if ( $d > 1 ) $article .= ''.str_repeat( '', $d-1 );for ( $i = $day = $d; $day < 32; $i++ ) { $day = $i - $d + 1; $dd = $day < 10 ? "0$day" : $day; if ( $day < 29 or checkdate( $m, $day, $y ) ) {
if ( $i%7 == 1 ) $article .= "\n"; $t = ( $day == $thisDay and $m == $thisMonth and $y == $thisYear ) ? ' class=xwToday' : ; $article .= "<td$t>$day"; } } $article .= "\n$month\n | ||||||
---|---|---|---|---|---|---|
M | T | W | T | F | S | S |
";
return $article; }
- Use everything before "Calendar" in name as prefix
$p = preg_replace( '/calendar.*$/i', , $title );
- If cal name ends with a year, use that instead of current
$y = ereg( '([0-9]{4})$', $title, $m ) ? $m[1] : date( 'Y' );
- Append the article content with a table of all the month-tables
$article .= "
\n"; $m = 1; for ( $rows = 3; $rows--; $article .= "\n" ) for ( $cols = 0; $cols < 4; $cols++ ) $article .= "\n".month( $m++, $y, $p ); $article .= ' |
';
?></php>