*/ $wgExtensionFunctions[] = "wfExtensionSpecialParse"; $wgExtensionCredits['specialpage'][] = array( 'name' => 'SpecialParse', 'version' => '2007/04/24', 'author' => 'Austin Che', 'url' => 'http://openwetware.org/wiki/User:Austin/Extensions/SpecialParse', 'description' => 'Special page for parsing wiki text', ); function wfExtensionSpecialParse() { global $wgMessageCache, $wgSpecialPages; $wgMessageCache->addMessages(array('parse' => 'Wikitext Parser', 'parsetext' => 'Parse', 'parsegeturl' => 'Get URL', 'parsegetraw' => 'Raw', 'parsepagetitle' => "Page Title")); $wgSpecialPages['Parse'] = array('SpecialPage', 'Parse'); } function wfSpecialParse($par) { global $wgOut, $wgRequest, $wgRawHtml, $wgUser; $oldRawHtml = $wgRawHtml; $wgRawHtml = false; // disable raw html if it's enabled as this could be XSS security risk $mytitle = Title::makeTitle(NS_SPECIAL, "Parse"); $wikitext = $wgRequest->getText('wikitext') ? $wgRequest->getText('wikitext') : $par; if ($wikitext) { $html = $wgOut->parse($wikitext, false); $mode = $wgRequest->getText('mode'); if ($mode == "raw") { echo $html; $wgOut->disable(); } else { $title = $wgRequest->getText('pagetitle'); if ($title) $wgOut->setPageTitle($title); $wgOut->addHTML($html); $skin = $wgUser->getSkin(); if ($wgRequest->getBool('parse')) { $params = "wikitext=" . urlencode($wikitext); if ($title) $params .= "&pagetitle=" . urlencode($title); $wgOut->addHTML("
" . $skin->makeLinkObj($mytitle, wfMsg('parsegeturl'), $params) . " | " . $skin->makeLinkObj($mytitle, wfMsg('parsegetraw'), "mode=raw&" . $params) . "

"); } } } else { $action = $mytitle->escapeLocalUrl(); $wgOut->addHTML("

" . wfMsg("parsepagetitle") . "

" . "" . "

\n"); } $wgRawHtml = $oldRawHtml; // this probably does nothing useful } ?>