Fix regression in transclusion of {{MediaWiki:}} messages that don't exist locally.
authorBrion Vibber <brion@users.mediawiki.org>
Sun, 7 Jan 2007 12:30:46 +0000 (12:30 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Sun, 7 Jan 2007 12:30:46 +0000 (12:30 +0000)
(Regression because they used to be in the database and now aren't in most cases.)
Some UI messages use this to get page names, for instance.
Now grabs the value out of the message system if the page doesn't exist.

includes/Parser.php
maintenance/parserTests.txt

index 31e6fb3..f4679b6 100644 (file)
@@ -3239,10 +3239,19 @@ class Parser
                for ( $i = 0; $i < 2 && is_object( $title ); $i++ ) {
                        $rev = Revision::newFromTitle( $title );
                        $this->mOutput->addTemplate( $title, $title->getArticleID() );
-                       if ( !$rev ) {
+                       if ( $rev ) {
+                               $text = $rev->getText();
+                       } elseif( $title->getNamespace() == NS_MEDIAWIKI ) {
+                               global $wgLang;
+                               $message = $wgLang->lcfirst( $title->getText() );
+                               $text = wfMsgForContentNoTrans( $message );
+                               if( wfEmptyMsg( $message, $text ) ) {
+                                       $text = false;
+                                       break;
+                               }
+                       } else {
                                break;
                        }
-                       $text = $rev->getText();
                        if ( $text === false ) {
                                break;
                        }
index 221d257..730b038 100644 (file)
@@ -4759,6 +4759,24 @@ Special page transclusion twice (bug 5021)
 
 !! end
 
+!! test
+Transclusion of default MediaWiki message
+!! input
+{{MediaWiki:Mainpage}}
+!!result
+<p>Main Page
+</p>
+!! end
+
+!! test
+Transclusion of nonexistent MediaWiki message
+!! input
+{{MediaWiki:Mainpagexxx}}
+!!result
+<p><a href="/index.php?title=MediaWiki:Mainpagexxx&amp;action=edit" class="new" title="MediaWiki:Mainpagexxx">MediaWiki:Mainpagexxx</a>
+</p>
+!! end
+
 !! test
 Invalid header with following text
 !! input