add new option $wgRestrictDisplayTitle
authorDaniel Kinzler <daniel@users.mediawiki.org>
Sun, 17 Aug 2008 21:08:58 +0000 (21:08 +0000)
committerDaniel Kinzler <daniel@users.mediawiki.org>
Sun, 17 Aug 2008 21:08:58 +0000 (21:08 +0000)
RELEASE-NOTES
includes/DefaultSettings.php
includes/parser/CoreParserFunctions.php

index d67e7de..1b73c19 100644 (file)
@@ -19,7 +19,9 @@ Those wishing to use the latest code instead of a branch release can obtain
 it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 
 === Configuration changes in 1.14 ===
-
+* $wgRestrictDisplayTitle controls if the use of the {{DISPLAYTITLE}} magic
+  word is restricted to titles equivalent to the actual page title. This
+  is true per default, but can be set to false to allow any title.
 * $wgExemptFromUserRobotsControl is an array of namespaces to be exempt from
   the effect of the new __INDEX__/__NOINDEX__ magic words.  (Default: null, ex-
   empt all content namespaces.)
index be75dc1..692e1ff 100644 (file)
@@ -3156,6 +3156,11 @@ $wgAjaxLicensePreview = true;
  */
 $wgAllowDisplayTitle = true;
 
+/**
+ * for consistency, restrict DISPLAYTITLE to titles that normalize to the same canonical DB key 
+ */
+$wgRestrictDisplayTitle = true;
+
 /**
  * Array of usernames which may not be registered or logged in from
  * Maintenance scripts can still use these
index 8ae1e0a..14c75d0 100644 (file)
@@ -170,10 +170,16 @@ class CoreParserFunctions {
         * @return string
         */
        static function displaytitle( $parser, $text = '' ) {
+               global $wgRestrictDisplayTitle;
                $text = trim( Sanitizer::decodeCharReferences( $text ) );
-               $title = Title::newFromText( $text );
-               if( $title instanceof Title && $title->getFragment() == '' && $title->equals( $parser->mTitle ) )
+
+               if ( !$wgRestrictDisplayTitle ) {
                        $parser->mOutput->setDisplayTitle( $text );
+               } else {
+                       $title = Title::newFromText( $text );
+                       if( $title instanceof Title && $title->getFragment() == '' && $title->equals( $parser->mTitle ) )
+                               $parser->mOutput->setDisplayTitle( $text );
+               }
                return '';
        }