User:Nx/Extensions/pagecss/pagecss.php
From RationalWiki
< User:Nx | Extensions
<?php // Extension credits that show up on Special:Version $wgExtensionCredits['parserhook'][] = array( 'name' => '<css> tag', 'author' => '[http://rationalwiki.com/wiki/User:Nx Nx]', 'url' => 'http://rationalwiki.com/', 'description' => 'Embed css into a page using the css tag.' ); //Avoid unstubbing $wgParser on setHook() too early on modern (1.12+) MW versions, as per r35980 if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) { $wgHooks['ParserFirstCallInit'][] = 'pagecssinit'; } else { // Otherwise do things the old fashioned way $wgExtensionFunctions[] = 'pagecssinit'; } $wgHooks['OutputPageParserOutput'][] = 'efPageCss_ParserOutput'; function pagecssinit() { global $wgParser; $wgParser->setHook('css','cssrender'); return true; } function cssrender($input, $args, $parser) { /* global $wgRequest; $nopagecss = $wgRequest->getVal( 'nopagecss', false); if (!$nopagecss) {*/ $parser->mOutput->setProperty('pagecss', $parser->mOutput->getProperty('pagecss') . htmlspecialchars( Sanitizer::checkCss($input) ) ); /* } */ return ""; } function efPageCss_ParserOutput( &$out, $parseroutput ) { $cssentry = '<style type="text/css">/*<![CDATA[*/ ' . $parseroutput->getProperty('pagecss') . ' /*]]>*/</style>'; $out->addScript($cssentry); return true; }