Difference between revisions of "Extension:SimpleCalendar"
From Organic Design wiki
m |
(use wikitext syntax for generated tables) |
||
| Line 24: | Line 24: | ||
if ($y == false) $y = date('Y'); | if ($y == false) $y = date('Y'); | ||
$m = 1; | $m = 1; | ||
| − | $table = "{| | + | $table = "{| class=\"calendar\"\n"; |
for ($rows = 3; $rows--; $table .= "|-\n") | for ($rows = 3; $rows--; $table .= "|-\n") | ||
for ($cols = 0; $cols < 4; $cols++) | for ($cols = 0; $cols < 4; $cols++) | ||
| Line 38: | Line 38: | ||
if (!$d = date('w',$ts = mktime(0,0,0,$m,1,$y))) $d = 7; | if (!$d = date('w',$ts = mktime(0,0,0,$m,1,$y))) $d = 7; | ||
$month = date('F',$ts); | $month = date('F',$ts); | ||
| − | $table = " | + | $table = "\n{| class=\"month\"\n|- class=\"heading\"\n|colspan=\"7\"|$month\n|- class=\"dow\"\n"; |
| − | $table .= " | + | $table .= "|M||T||W||T||F||S||S\n"; |
| − | if ($d > 1) $table .= " | + | if ($d > 1) $table .= "|-".str_repeat("\n| \n",$d-1); |
for ($i = $day = $d; $day < 32; $i++) { | for ($i = $day = $d; $day < 32; $i++) { | ||
$day = $i - $d + 1; | $day = $i - $d + 1; | ||
$dd = $day < 10 ? "0$day" : $day; | $dd = $day < 10 ? "0$day" : $day; | ||
if ($day < 29 or checkdate($m,$day,$y)) { | if ($day < 29 or checkdate($m,$day,$y)) { | ||
| − | if ($i%7 == 1) $table .= " | + | if ($i%7 == 1) $table .= "\n|-\n"; |
$t = ($day == $thisDay and $m == $thisMonth and $y == $thisYear) ? ' class="today"' : ''; | $t = ($day == $thisDay and $m == $thisMonth and $y == $thisYear) ? ' class="today"' : ''; | ||
| − | $table .= " | + | $table .= "|$t|[[$prefix$dd $month $y|$day]]\n"; |
} | } | ||
} | } | ||
| − | return "$table\n | + | return "$table\n|}"; |
} | } | ||
?> | ?> | ||
Revision as of 08:19, 24 April 2007
<?
- MediaWiki Simple Calendar Extension {{#Security:*|dev}}{{#Security:view|*}}Template:Php
- - Version 1.00 (2007-04-24)
- - See http://www.mediawiki.org/wiki/Extension:Simple_Calendar for installation and usage details
- - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
- - Author: http://www.organicdesign.co.nz/nad
$wgExtensionFunctions[] = 'wfSetupSimpleCalendar'; $wgHooks['LanguageGetMagic'][] = 'wfCalendarLanguageGetMagic'; function wfCalendarLanguageGetMagic(&$magicWords,$langCode = 0) {
$magicWords['calendar'] = array(0,'calendar');
return true;
}
function wfSetupSimpleCalendar() {
global $wgParser;
$wgParser->setFunctionHook('calendar','wfRenderCalendar');
return true;
}
- Renders a table of all the individual month tables
function wfRenderCalendar(&$parser,$p = ,$y = false) {
if ($p) $p .= '/';
if ($y == false) $y = date('Y');
$m = 1;
$table = "{| class=\"calendar\"\n";
for ($rows = 3; $rows--; $table .= "|-\n")
for ($cols = 0; $cols < 4; $cols++)
$table .= '|'.wfRenderMonth($m++,$y,$p)."\n";
return "$table\n|}\n";
}
- Return a calendar table of the passed month and year
function wfRenderMonth($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);
$table = "\n{| class=\"month\"\n|- class=\"heading\"\n|colspan=\"7\"|$month\n|- class=\"dow\"\n";
$table .= "|M||T||W||T||F||S||S\n";
if ($d > 1) $table .= "|-".str_repeat("\n| \n",$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) $table .= "\n|-\n";
$t = ($day == $thisDay and $m == $thisMonth and $y == $thisYear) ? ' class="today"' : ;
$table .= "|$t|$day\n";
}
}
return "$table\n|}";
}
?>



