* Move image page redirect checking to ImagePage. Should now also work on foreign...
authorBryan Tong Minh <btongminh@users.mediawiki.org>
Thu, 8 May 2008 20:55:13 +0000 (20:55 +0000)
committerBryan Tong Minh <btongminh@users.mediawiki.org>
Thu, 8 May 2008 20:55:13 +0000 (20:55 +0000)
* Changed File::getRedirected to return a DBkey instead of a formatted text

includes/ImagePage.php
includes/Wiki.php
includes/filerepo/FileRepo.php

index 3b8a1f5..5013adb 100644 (file)
@@ -44,6 +44,9 @@ class ImagePage extends Article {
        function view() {
                global $wgOut, $wgShowEXIF, $wgRequest, $wgUser;
 
+               if ( $this->img->getRedirected() )
+                       return Article::view();
+
                $diff = $wgRequest->getVal( 'diff' );
                $diffOnly = $wgRequest->getBool( 'diffonly', $wgUser->getOption( 'diffonly' ) );
 
@@ -100,6 +103,15 @@ class ImagePage extends Article {
                                "<script type=\"text/javascript\">attachMetadataToggle('mw_metadata', '$expand', '$collapse');</script>\n" );
                }
        }
+       
+       public function getRedirectTarget() {
+               if ( $this->img->isLocal() )
+                       return parent::getRedirectTarget();
+               
+               // Foreign image page
+               $from = $this->img->getRedirected();
+               return $this->mRedirectTarget = Title::makeTitle( NS_IMAGE, $from );
+       }
 
        /**
         * Create the TOC
index 8f9368a..2241c22 100644 (file)
@@ -252,10 +252,6 @@ class MediaWiki {
 
                switch( $title->getNamespace() ) {
                case NS_IMAGE:
-                       $file = wfFindFile( $title );
-                       if( $file && $file->getRedirected() ) {
-                               return new Article( $title );
-                       }
                        return new ImagePage( $title );
                case NS_CATEGORY:
                        return new CategoryPage( $title );
index b7559e8..5c847e1 100644 (file)
@@ -115,7 +115,7 @@ abstract class FileRepo {
                                return false;
                        }
                        if( $img->exists() ) {
-                               $img->redirectedFrom( $title->getText() );
+                               $img->redirectedFrom( $title->getDBkey() );
                                return $img;
                        }
                }