http://www.mediawiki.org/wiki/Special:Code/MediaWiki/72339

Revision: 72339
Author:   kaldari
Date:     2010-09-04 00:49:17 +0000 (Sat, 04 Sep 2010)

Log Message:
-----------
adding support for stand alone banner loading

Modified Paths:
--------------
    trunk/extensions/CentralNotice/BannerLoader.php

Modified: trunk/extensions/CentralNotice/BannerLoader.php
===================================================================
--- trunk/extensions/CentralNotice/BannerLoader.php     2010-09-04 00:48:47 UTC 
(rev 72338)
+++ trunk/extensions/CentralNotice/BannerLoader.php     2010-09-04 00:49:17 UTC 
(rev 72339)
@@ -22,14 +22,17 @@
                $this->sendHeaders();
                
                // Get user language from the query string
-               $this->language = $wgRequest->getText( 'language', 'en' );
+               $this->language = $wgRequest->getText( 'userlang', 'en' );
                
                // Get site name from the query string
-               $this->siteName = $wgRequest->getText( 'site', 'Wikipedia' );
+               $this->siteName = $wgRequest->getText( 'sitename', 'Wikipedia' 
);
                
+               // If we're not pulling the banner into another page, we'll 
need to add some extra HTML
+               $standAlone = $wgRequest->getBool( 'standalone' );
+               
                if ( $wgRequest->getText( 'banner' ) ) {
                        $bannerName = $wgRequest->getText( 'banner' );
-                       $content = $this->getHtmlNotice( $bannerName );
+                       $content = $this->getHtmlNotice( $bannerName, 
$standAlone );
                        if ( strlen( $content ) == 0 ) {
                                // Hack for IE/Mac 0-length keepalive problem, 
see RawPage.php
                                echo "/* Empty */";
@@ -52,15 +55,32 @@
        /**
         * Generate the HTML for the requested banner
         */
-       function getHtmlNotice( $bannerName ) {
+       function getHtmlNotice( $bannerName, $standAlone = false ) {
                // Make sure the banner exists
                if ( SpecialNoticeTemplate::templateExists( $bannerName ) ) {
                        $this->bannerName = $bannerName;
-                       return preg_replace_callback(
+                       $bannerHtml = '';
+                       if ( $standAlone ) {
+                               $bannerHtml .= <<<EOT
+<html>
+<head>
+       <script type="text/javascript" 
src="http://bits.wikimedia.org/skins-1.5/common/jquery.min.js";></script>
+</head>
+<body>
+EOT;
+                       }
+                       $bannerHtml .= preg_replace_callback(
                                '/{{{(.*?)}}}/',
                                array( $this, 'getNoticeField' ),
                                $this->getNoticeTemplate()
                        );
+                       if ( $standAlone ) {
+                               $bannerHtml .= <<<EOT
+</body>
+</html>
+EOT;
+                       }
+                       return $bannerHtml;
                }
        }
 



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to