r81398 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r81397‎ | r81398 | r81399 >
Date:15:48, 2 February 2011
Author:ialex
Status:deferred
Tags:
Comment:
Use ParserFirstCallInit hook instead of an extension function to register the function
Modified paths:
  • /trunk/extensions/CSS/CSS.php (modified) (history)

Diff [purge]

Index: trunk/extensions/CSS/CSS.php
@@ -15,8 +15,8 @@
1616
1717 define( 'CSS_VERSION', '1.0.7, 2010-10-20' );
1818
19 -$wgCSSMagic = "css";
20 -$wgExtensionFunctions[] = 'wfSetupCSS';
 19+$wgCSSMagic = "css";
 20+$wgHooks['ParserFirstCallInit'][] = 'wfCSSParserFirstCallInit';
2121 $wgHooks['LanguageGetMagic'][] = 'wfCSSLanguageGetMagic';
2222
2323 $wgExtensionCredits['parserhook'][] = array(
@@ -31,56 +31,46 @@
3232 $dir = dirname( __FILE__ ) . '/';
3333 $wgExtensionMessagesFiles['CSS'] = $dir . 'CSS.i18n.php';
3434
35 -class CSS {
 35+function wfCSSRender( &$parser, $css ) {
 36+ global $wgOut, $wgRequest;
3637
37 - function __construct() {
38 - global $wgParser, $wgCSSMagic;
39 - $wgParser->setFunctionHook( $wgCSSMagic, array( $this, 'magicCss' ) );
40 - }
 38+ $parser->mOutput->mCacheTime = -1;
 39+ $url = false;
 40+ if( preg_match( '|\\{|', $css ) ) {
4141
42 - function magicCss( &$parser, $css ) {
43 - global $wgOut, $wgRequest;
44 - $parser->mOutput->mCacheTime = -1;
45 - $url = false;
46 - if( preg_match( '|\\{|', $css ) ) {
47 -
48 - # Inline CSS
49 - $css = htmlspecialchars( trim( Sanitizer::checkCss( $css ) ) );
50 - $parser->mOutput->addHeadItem( <<<EOT
 42+ # Inline CSS
 43+ $css = htmlspecialchars( trim( Sanitizer::checkCss( $css ) ) );
 44+ $parser->mOutput->addHeadItem( <<<EOT
5145 <style type="text/css">
5246 /*<![CDATA[*/
5347 {$css}
5448 /*]]>*/
5549 </style>
5650 EOT
57 - );
58 - } elseif ( $css{0} == '/' ) {
 51+ );
 52+ } elseif ( $css{0} == '/' ) {
5953
60 - # File
61 - $url = $css;
 54+ # File
 55+ $url = $css;
6256
63 - } else {
 57+ } else {
6458
65 - # Article?
66 - $title = Title::newFromText( $css );
67 - if( is_object( $title ) ) {
68 - $url = $title->getLocalURL( 'action=raw&ctype=text/css' );
69 - $url = str_replace( "&", "&amp;", $url );
70 - }
 59+ # Article?
 60+ $title = Title::newFromText( $css );
 61+ if( is_object( $title ) ) {
 62+ $url = $title->getLocalURL( 'action=raw&ctype=text/css' );
 63+ $url = str_replace( "&", "&amp;", $url );
7164 }
72 -
73 - if( $url ) $wgOut->addScript( "<link rel=\"stylesheet\" type=\"text/css\" href=\"$url\" />" );
74 - return '';
7565 }
7666
 67+ if( $url ) $wgOut->addScript( "<link rel=\"stylesheet\" type=\"text/css\" href=\"$url\" />" );
 68+ return '';
7769 }
7870
79 -/**
80 - * Called from $wgExtensionFunctions array when initialising extensions
81 - */
82 -function wfSetupCSS() {
83 - global $wgCSS;
84 - $wgCSS = new CSS();
 71+function wfCSSParserFirstCallInit( $parser ) {
 72+ global $wgCSSMagic;
 73+ $parser->setFunctionHook( $wgCSSMagic, 'wfCSSRender' );
 74+ return true;
8575 }
8676
8777 function wfCSSLanguageGetMagic( &$magicWords, $langCode = 0 ) {

Status & tagging log