#3344: Redirected terms cannot be included in categories
authorAntoine Musso <hashar@users.mediawiki.org>
Mon, 5 Sep 2005 19:43:01 +0000 (19:43 +0000)
committerAntoine Musso <hashar@users.mediawiki.org>
Mon, 5 Sep 2005 19:43:01 +0000 (19:43 +0000)
No more strip the whole text when magicword #REDIRECT is found in a text.
Let you categorize redirects but might let some vandals use #REDIRECT in the
middle of a text.

includes/Article.php
includes/Title.php

index b8e38e1..d8be97a 100644 (file)
@@ -1227,17 +1227,7 @@ class Article {
                }
 
                $isminor = ( $minor && $wgUser->isLoggedIn() );
-               if ( $this->isRedirect( $text ) ) {
-                       # Remove all content but redirect
-                       # This could be done by reconstructing the redirect from a title given by
-                       # Title::newFromRedirect(), but then we wouldn't know which synonym the user
-                       # wants to see
-                       if ( preg_match( "/^((" . $wgMwRedir->getBaseRegex() . ')[^\\n]+)/i', $text, $m ) ) {
-                               $redir = 1;
-                               $text = $m[1] . "\n";
-                       }
-               }
-               else { $redir = 0; }
+               $redir = $this->isRedirect( $text ) ? 1 : 0;
 
                $text = $this->preSaveTransform( $text );
                $dbw =& wfGetDB( DB_MASTER );
index 0721c1c..3da010d 100644 (file)
@@ -267,7 +267,7 @@ class Title {
        function newFromRedirect( $text ) {
                global $wgMwRedir;
                $rt = NULL;
-               if ( $wgMwRedir->matchStart( $text ) ) {
+               if ( $wgMwRedir->match( $text ) ) {
                        if ( preg_match( '/\[{2}(.*?)(?:\||\]{2})/', $text, $m ) ) {
                                # categories are escaped using : for example one can enter:
                                # #REDIRECT [[:Category:Music]]. Need to remove it.