Gracefully handle redirects in SpecialMyLanguage
authorErik Bernhardson <ebernhardson@wikimedia.org>
Fri, 27 Feb 2015 00:19:27 +0000 (16:19 -0800)
committerErik Bernhardson <ebernhardson@wikimedia.org>
Fri, 27 Feb 2015 00:22:45 +0000 (16:22 -0800)
Currently if you have a link that goes through SpecialMyLanguage
and that page is redirected you will no longer get it in your
language. This adjusts to follow redirects before resolving language.

Bug: T58036
Change-Id: I88fcfeb86d81a33a8eccc6119693c2ecb857afb2

includes/specials/SpecialMyLanguage.php

index 71b1893..6cea158 100644 (file)
@@ -80,6 +80,11 @@ class SpecialMyLanguage extends RedirectSpecialArticle {
                        return null;
                }
 
+               if ( $base->isRedirect() ) {
+                       $page = new WikiPage( $base );
+                       $base = $page->getRedirectTarget();
+               }
+
                $uiCode = $this->getLanguage()->getCode();
                $proposed = $base->getSubpage( $uiCode );
                if ( $uiCode !== $this->getConfig()->get( 'LanguageCode' ) && $proposed && $proposed->exists() ) {