| Index: trunk/extensions/CSS/CSS.php |
| — | — | @@ -15,8 +15,8 @@ |
| 16 | 16 | |
| 17 | 17 | define( 'CSS_VERSION', '1.0.7, 2010-10-20' ); |
| 18 | 18 | |
| 19 | | -$wgCSSMagic = "css"; |
| 20 | | -$wgExtensionFunctions[] = 'wfSetupCSS'; |
| | 19 | +$wgCSSMagic = "css"; |
| | 20 | +$wgHooks['ParserFirstCallInit'][] = 'wfCSSParserFirstCallInit'; |
| 21 | 21 | $wgHooks['LanguageGetMagic'][] = 'wfCSSLanguageGetMagic'; |
| 22 | 22 | |
| 23 | 23 | $wgExtensionCredits['parserhook'][] = array( |
| — | — | @@ -31,56 +31,46 @@ |
| 32 | 32 | $dir = dirname( __FILE__ ) . '/'; |
| 33 | 33 | $wgExtensionMessagesFiles['CSS'] = $dir . 'CSS.i18n.php'; |
| 34 | 34 | |
| 35 | | -class CSS { |
| | 35 | +function wfCSSRender( &$parser, $css ) { |
| | 36 | + global $wgOut, $wgRequest; |
| 36 | 37 | |
| 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 ) ) { |
| 41 | 41 | |
| 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 |
| 51 | 45 | <style type="text/css"> |
| 52 | 46 | /*<![CDATA[*/ |
| 53 | 47 | {$css} |
| 54 | 48 | /*]]>*/ |
| 55 | 49 | </style> |
| 56 | 50 | EOT |
| 57 | | - ); |
| 58 | | - } elseif ( $css{0} == '/' ) { |
| | 51 | + ); |
| | 52 | + } elseif ( $css{0} == '/' ) { |
| 59 | 53 | |
| 60 | | - # File |
| 61 | | - $url = $css; |
| | 54 | + # File |
| | 55 | + $url = $css; |
| 62 | 56 | |
| 63 | | - } else { |
| | 57 | + } else { |
| 64 | 58 | |
| 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( "&", "&", $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( "&", "&", $url ); |
| 71 | 64 | } |
| 72 | | - |
| 73 | | - if( $url ) $wgOut->addScript( "<link rel=\"stylesheet\" type=\"text/css\" href=\"$url\" />" ); |
| 74 | | - return ''; |
| 75 | 65 | } |
| 76 | 66 | |
| | 67 | + if( $url ) $wgOut->addScript( "<link rel=\"stylesheet\" type=\"text/css\" href=\"$url\" />" ); |
| | 68 | + return ''; |
| 77 | 69 | } |
| 78 | 70 | |
| 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; |
| 85 | 75 | } |
| 86 | 76 | |
| 87 | 77 | function wfCSSLanguageGetMagic( &$magicWords, $langCode = 0 ) { |