From 67d589450e4ea93d677eb342f2bbec4711a5de97 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Mon, 12 Sep 2016 21:43:56 -0700 Subject: [PATCH] SkinTemplate: Improve remote content handling in content navigation URLs Use Title::isKnown() to determine whether to display the "view" view link instead of checking $isForeignFile, since that includes all remote content. This allows us to remove the GlobalUserPage hook that made the tab look as if it existed. Change-Id: Ibee7b64511fba8c2934da3c7a3bdd52090dcb58c --- includes/skins/SkinTemplate.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php index f18578959e..2351ab84d7 100644 --- a/includes/skins/SkinTemplate.php +++ b/includes/skins/SkinTemplate.php @@ -909,11 +909,8 @@ class SkinTemplate extends Skin { $content_navigation['namespaces'][$talkId]['context'] = 'talk'; if ( $userCanRead ) { - $isForeignFile = $title->inNamespace( NS_FILE ) && $this->canUseWikiPage() && - $this->getWikiPage() instanceof WikiFilePage && !$this->getWikiPage()->isLocal(); - - // Adds view view link - if ( $title->exists() || $isForeignFile ) { + // Adds "view" view link + if ( $title->isKnown() ) { $content_navigation['views']['view'] = $this->tabAction( $isTalk ? $talkPage : $subjectPage, [ "$skname-view-view", 'view' ], @@ -923,7 +920,11 @@ class SkinTemplate extends Skin { $content_navigation['views']['view']['redundant'] = true; } + $isForeignFile = $title->inNamespace( NS_FILE ) && $this->canUseWikiPage() && + $this->getWikiPage() instanceof WikiFilePage && !$this->getWikiPage()->isLocal(); + // If it is a non-local file, show a link to the file in its own repository + // @todo abstract this for remote content that isn't a file if ( $isForeignFile ) { $file = $this->getWikiPage()->getFile(); $content_navigation['views']['view-foreign'] = [ @@ -981,7 +982,7 @@ class SkinTemplate extends Skin { 'href' => $title->getLocalURL( 'action=edit§ion=new' ) ]; } - // Checks if the page has some kind of viewable content + // Checks if the page has some kind of viewable source content } elseif ( $title->hasSourceText() ) { // Adds view source view link $content_navigation['views']['viewsource'] = [ -- 2.20.1