Simplify redirect linking in InfoAction
authorUmherirrender <umherirrender_de.wp@web.de>
Fri, 17 Aug 2018 17:11:54 +0000 (19:11 +0200)
committerUmherirrender <umherirrender_de.wp@web.de>
Fri, 17 Aug 2018 17:11:54 +0000 (19:11 +0200)
- Only call WikiPage::getRedirectTarget once
- Use the result of getRedirectTarget to determine if the page info must
be shown,
  because sometimes Title::isRedirect gets wrong state, see T172016 for
more information

Bug: T172016
Change-Id: Ic789207ba00d057a35e82a4c22628207eeb7b5fd

includes/actions/InfoAction.php

index dc661aa..11b8bad 100644 (file)
@@ -233,13 +233,14 @@ class InfoAction extends FormlessAction {
                ];
 
                // Is it a redirect? If so, where to?
-               if ( $title->isRedirect() ) {
+               $redirectTarget = $this->page->getRedirectTarget();
+               if ( $redirectTarget !== null ) {
                        $pageInfo['header-basic'][] = [
                                $this->msg( 'pageinfo-redirectsto' ),
-                               $linkRenderer->makeLink( $this->page->getRedirectTarget() ) .
+                               $linkRenderer->makeLink( $redirectTarget ) .
                                $this->msg( 'word-separator' )->escaped() .
                                $this->msg( 'parentheses' )->rawParams( $linkRenderer->makeLink(
-                                       $this->page->getRedirectTarget(),
+                                       $redirectTarget,
                                        $this->msg( 'pageinfo-redirectsto-info' )->text(),
                                        [],
                                        [ 'action' => 'info' ]