Fix for wikibits.js loading when $wgStylePath != "$wgScriptPath/skins"
authorBrion Vibber <brion@users.mediawiki.org>
Wed, 16 Sep 2009 21:31:17 +0000 (21:31 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Wed, 16 Sep 2009 21:31:17 +0000 (21:31 +0000)
includes/OutputPage.php

index 3843787..a5da831 100644 (file)
@@ -171,7 +171,7 @@ class OutputPage {
         * Add the core scripts that are included on every page, for later output into the header
         */
        function addCoreScripts2Top(){
-               global $wgEnableScriptLoader, $wgJSAutoloadLocalClasses, $wgScriptPath, $wgEnableJS2system;
+               global $wgEnableScriptLoader, $wgJSAutoloadLocalClasses, $wgScriptPath, $wgStylePath, $wgEnableJS2system;
                // @todo We should deprecate wikibits in favor of mv_embed and jQuery
 
                if( $wgEnableJS2system ){
@@ -186,7 +186,16 @@ class OutputPage {
                        $so = '';
                        foreach( $core_classes as $s ){
                                if( isset( $wgJSAutoloadLocalClasses[$s] ) ){
-                                       $so .= Html::linkedScript( "{$wgScriptPath}/{$wgJSAutoloadLocalClasses[$s]}?" . $this->getURIDparam() );
+                                       $path = $wgJSAutoloadLocalClasses[$s];
+                                       // @fixme this is an awful hack
+                                       if( substr( $path, 0, 4 ) == "http"  || substr( $path, 0, 1 ) == '/' ) {
+                                               // Assume a full or local path
+                                       } elseif( substr( $path, 0, 6 ) == "skins/" ) {
+                                               $path = $wgStylePath . substr( $path, 5 );
+                                       } else {
+                                               $path = $wgScriptPath . "/" . $path;
+                                       }
+                                       $so .= Html::linkedScript( $path . "?" . $this->getURIDparam() );
                                }
                        }
                        $this->mScripts =  $so . $this->mScripts;