function renderCalendar($paramstring, $params = array(), $parser) { global $wgTitle, $wgUser, $wgOut, $wgVersion; if (!$parser) { $parser =& new Parser(); } $p = array("view" => "year", "day" => 0, "month" => 0, "year" => 0, "days" => 7, "months" => 2, "weekstart" => 1, "formattitle" => "%j.%n.%Y %l", "skipempty" => 0, "showempty" => 1, "weekformat" => "text", "weekdaylen" => 1, "enddate" => false, "mergemonth" => false); preg_match_all('/([\\w]+)\\s*=\\s*(?:"([^"]+)"|([^"\\s]+))/', $paramstring, $matches); for ($i = 0; $i < count($matches[0]); $i++) { $p[$matches[1][$i]] = $matches[2][$i] . $matches[3][$i]; } foreach (array('view', 'day', 'month', 'year', 'days', 'weekstart', 'formattitle', 'format', 'name', 'date', 'skipempty', 'showempty', 'weekformat', 'weekdaylen', 'enddate', 'months', 'mergemonth') as $i) { if (isset($params[$i])) { $p[$i] = $params[$i]; } } if (!isset($p['name'])) { $p['name'] = 'calendar'; } if (!isset($p['format'])) { $p['format'] = '%name_%year_%month_%day'; } if (isset($p['date'])) { $time = strtotime($p['date']); $p['day'] = date('d', $time); $p['month'] = date('n', $time); $p['year'] = date('Y', $time); } $cal = new WikiCalendarClass($p["year"], $p["month"], $p["day"]); $cal->format = $p['format']; $cal->formattitle = $p['formattitle']; $cal->name = $p['name']; $cal->weekstart = $p['weekstart']; $cal->skipempty = $p['skipempty']; $cal->showempty = $p['showempty']; $cal->weekdaylen = $p['weekdaylen']; $cal->mergemonth = $p['mergemonth']; if (isset($p["merge"])) { $cal->merge = explode(',', $p["merge"]); } switch ($p['weekformat']) { case 'list': $cal->weekformat = new WikiCalendarFormatList(); break; case 'table': $cal->weekformat = new WikiCalendarFormatTable(); break; case 'ical': $cal->weekformat = new WikiCalendarFormatIcal(); break; default: $cal->weekformat = new WikiCalendarFormatText(); } switch ($p["view"]) { case "week": $calstr = $cal->displayDays(); break; case "month": $calstr = $cal->displayMonth(); break; case "today": $calstr = $cal->displayDays(1); break; case "threemonths": $calstr = $cal->displayThreeMonths(); break; case "months": $calstr = $cal->displayMonths($p['months']); break; case "days": $calstr = $cal->displayDays($p["days"]); break; case "rdays": $calstr = $cal->displayDays($p["days"], true); break; case "weeks": $calstr = $cal->displayWeeks($p['enddate']); break; case "year": default: $calstr = $cal->displayYear(); } $o =& $parser->parse($calstr, $wgTitle, ParserOptions::newFromUser($wgUser), true, false); clearCache(); return $o->getText(); }
require_once '../../includes/Defines.php'; # Include this site setttings require_once './LocalSettings.php'; # Prepare MediaWiki require_once 'includes/Setup.php'; require_once 'extensions/CalendarClass.php'; require_once "extensions/WikiCalendarFormatIcal.php"; # Initialize MediaWiki base class require_once "includes/Wiki.php"; $mediaWiki = new MediaWiki(); # Setting global variables in mediaWiki $mediaWiki->setVal('Server', $wgServer); $mediaWiki->setVal('DisableInternalSearch', $wgDisableInternalSearch); $mediaWiki->setVal('action', $action); $mediaWiki->setVal('SquidMaxage', $wgSquidMaxage); $mediaWiki->setVal('EnableDublinCoreRdf', $wgEnableDublinCoreRdf); $mediaWiki->setVal('EnableCreativeCommonsRdf', $wgEnableCreativeCommonsRdf); $mediaWiki->setVal('CommandLineMode', $wgCommandLineMode); $mediaWiki->setVal('UseExternalEditor', $wgUseExternalEditor); $mediaWiki->setVal('DisabledActions', $wgDisabledActions); header("Content-Type: text/plain;charset=us-ascii"); $cal = new WikiCalendarClass(); $cal->weekformat = new WikiCalendarFormatIcal(); $cal->name = "krass"; $cal->format = "%day.%month.%year"; $cal->formattitle = "%day.%month.%year"; $cal->skipempty = 0; $cal->showempty = 1; $cal->merge = array(); echo $cal->displayDays(60);