User:Nx/Extensions/pagecss/pagecss.php
< User:Nx | Extensions
Jump to navigation
Jump to search
<?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;
}