From 47ab7f9e808ffd109664132b78f3b6a276e03bf9 Mon Sep 17 00:00:00 2001 From: Derk-Jan Hartman Date: Mon, 17 May 2010 15:15:09 +0000 Subject: [PATCH] Let old skins take into account $wgUploadNavigationUrl. Also fixes old skins to take into account the actual uploadrights of users. Fixes bug 23563 --- RELEASE-NOTES | 1 + includes/Skin.php | 19 +++++++++++++++++++ skins/CologneBlue.php | 4 ++-- skins/Nostalgia.php | 5 +++-- skins/Standard.php | 5 +++-- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 471bc3cb97..d6a4160795 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -166,6 +166,7 @@ in a negative namespace (which is invalid). * Special:Userrights didn't recognize user as changing his/her own rights if user did not capitalize first letter of username. * (bug 23507) Add styles for printing wikitables * (bug 19586) Avoid JS errors in mwsuggest when using old browsers such as Opera 8. +* (bug 23563) Old skins now support $wgUploadNavigationUrl and take into account upload rights. === API changes in 1.17 === * (bug 22738) Allow filtering by action type on query=logevent diff --git a/includes/Skin.php b/includes/Skin.php index fda45fb38b..c26a92289c 100644 --- a/includes/Skin.php +++ b/includes/Skin.php @@ -1988,6 +1988,25 @@ CSS; ); } + function uploadLink() { + global $wgUploadNavigationUrl; + + if( $wgUploadNavigationUrl ) { + $title = Title::newFromText( $wgUploadNavigationUrl ); + } + if( !$title ) { + $title = SpecialPage::getTitleFor('Upload'); + } + + return $this->link( + $title, + wfMsgHtml( 'upload' ), + array(), + array(), + array( 'known', 'noclasses' ) + ); + } + /* these are used extensively in SkinTemplate, but also some other places */ static function makeMainPageUrl( $urlaction = '' ) { $title = Title::newMainPage(); diff --git a/skins/CologneBlue.php b/skins/CologneBlue.php index d12333a766..3aabf1c856 100644 --- a/skins/CologneBlue.php +++ b/skins/CologneBlue.php @@ -307,8 +307,8 @@ class SkinCologneBlue extends Skin { . $this->specialLink( 'newpages' ) . $sep . $this->specialLink( 'listfiles' ) . $sep . $this->specialLink( 'statistics' ); - if ( $wgUser->isLoggedIn() && $wgEnableUploads ) { - $s .= $sep . $this->specialLink( 'upload' ); + if( UploadBase::isEnabled() && UploadBase::isAllowed( $wgUser ) === true ) { + $s .= $sep . $this->uploadLink(); } global $wgSiteSupportPage; diff --git a/skins/Nostalgia.php b/skins/Nostalgia.php index d4f3f06f0a..c57ea98b27 100644 --- a/skins/Nostalgia.php +++ b/skins/Nostalgia.php @@ -89,9 +89,10 @@ class SkinNostalgia extends Skin { /* show my preferences link */ $s .= $sep . $this->specialLink( 'preferences' ); /* show upload file link */ - if ( $wgEnableUploads ) { - $s .= $sep . $this->specialLink( 'upload' ); + if( UploadBase::isEnabled() && UploadBase::isAllowed( $wgUser ) === true ) { + $s .= $sep . $this->uploadLink(); } + /* show log out link */ $s .= $sep . $this->specialLink( 'userlogout' ); } diff --git a/skins/Standard.php b/skins/Standard.php index e57cfaf9c9..4942729849 100644 --- a/skins/Standard.php +++ b/skins/Standard.php @@ -264,9 +264,10 @@ class SkinStandard extends Skin { $s .= "\n

"; } - if ( $wgUser->isLoggedIn() && ( $wgEnableUploads || $wgRemoteUploads ) ) { - $s .= $this->specialLink( 'upload' ) . $sep; + if( UploadBase::isEnabled() && UploadBase::isAllowed( $wgUser ) === true ) { + $s .= $this->uploadLink() . $sep; } + $s .= $this->specialLink( 'specialpages' ); global $wgSiteSupportPage; -- 2.20.1