From 47bd06bb4581e71a8b6506ba7b2f45722f10dc38 Mon Sep 17 00:00:00 2001 From: Alexandre Emsenhuber Date: Mon, 10 Oct 2011 18:05:59 +0000 Subject: [PATCH] * Factorise calls to getTitle() and getSkin() * Use Linker::linkKnown() instead of link() where possible * Escape some messages that are escaped in other usages * Use Title::isSpecial() instead of checking that getPrefixedDBkey() is equals to $wgContLang->specialPage() --- includes/SkinLegacy.php | 177 ++++++++++++++++++---------------------- 1 file changed, 78 insertions(+), 99 deletions(-) diff --git a/includes/SkinLegacy.php b/includes/SkinLegacy.php index c11b08926b..1d043ed9cb 100644 --- a/includes/SkinLegacy.php +++ b/includes/SkinLegacy.php @@ -190,11 +190,13 @@ class LegacyTemplate extends BaseTemplate { return ''; } - if ( !$wgOut->isArticle() || !$this->getSkin()->getTitle()->exists() ) { + $title = $this->getSkin()->getTitle(); + + if ( !$wgOut->isArticle() || !$title->exists() ) { return ''; } - $article = new Article( $this->getSkin()->getTitle(), 0 ); + $article = new Article( $title, 0 ); $s = ''; @@ -218,8 +220,8 @@ class LegacyTemplate extends BaseTemplate { 'watchlist', array( 'COUNT(*) AS n' ), array( - 'wl_title' => $dbr->strencode( $this->getSkin()->getTitle()->getDBkey() ), - 'wl_namespace' => $this->getSkin()->getTitle()->getNamespace() + 'wl_title' => $dbr->strencode( $title->getDBkey() ), + 'wl_namespace' => $title->getNamespace() ), __METHOD__ ); @@ -285,7 +287,7 @@ class LegacyTemplate extends BaseTemplate { } $s = $wgLang->pipeList( array( $s, - '' . htmlspecialchars( $varname ) . '' + '' . htmlspecialchars( $varname ) . '' ) ); } } @@ -342,12 +344,14 @@ class LegacyTemplate extends BaseTemplate { $element[] = $this->trackbackLink(); } + $title = $this->getSkin()->getTitle(); + if ( - $this->getSkin()->getTitle()->getNamespace() == NS_USER || - $this->getSkin()->getTitle()->getNamespace() == NS_USER_TALK + $title->getNamespace() == NS_USER || + $title->getNamespace() == NS_USER_TALK ) { - $id = User::idFromName( $this->getSkin()->getTitle()->getText() ); - $ip = User::isIP( $this->getSkin()->getTitle()->getText() ); + $id = User::idFromName( $title->getText() ); + $ip = User::isIP( $title->getText() ); # Both anons and non-anons have contributions list if ( $id || $ip ) { @@ -361,7 +365,7 @@ class LegacyTemplate extends BaseTemplate { $s = implode( $element, $sep ); - if ( $this->getSkin()->getTitle()->getArticleId() ) { + if ( $title->getArticleId() ) { $s .= "\n
"; // Delete/protect/move links for privileged users @@ -451,23 +455,26 @@ class LegacyTemplate extends BaseTemplate { $diff = $wgRequest->getVal( 'diff' ); $action = $wgRequest->getText( 'action' ); + $skin = $this->getSkin(); + $title = $skin->getTitle(); + $s[] = $this->printableLink(); - $disclaimer = $this->getSkin()->disclaimerLink(); # may be empty + $disclaimer = $skin->disclaimerLink(); # may be empty if ( $disclaimer ) { $s[] = $disclaimer; } - $privacy = $this->getSkin()->privacyLink(); # may be empty too + $privacy = $skin->privacyLink(); # may be empty too if ( $privacy ) { $s[] = $privacy; } if ( $wgOut->isArticleRelated() ) { - if ( $this->getSkin()->getTitle()->getNamespace() == NS_FILE ) { - $name = $this->getSkin()->getTitle()->getDBkey(); - $image = wfFindFile( $this->getSkin()->getTitle() ); + if ( $title->getNamespace() == NS_FILE ) { + $name = $title->getDBkey(); + $image = wfFindFile( $title ); if ( $image ) { $link = htmlspecialchars( $image->getURL() ); @@ -478,33 +485,28 @@ class LegacyTemplate extends BaseTemplate { } if ( 'history' == $action || isset( $diff ) || isset( $oldid ) ) { - $s[] .= Linker::link( - $this->getSkin()->getTitle(), - wfMsg( 'currentrev' ), - array(), - array(), - array( 'known', 'noclasses' ) + $s[] .= Linker::linkKnown( + $title, + wfMsg( 'currentrev' ) ); } if ( $wgUser->getNewtalk() ) { # do not show "You have new messages" text when we are viewing our # own talk page - if ( !$this->getSkin()->getTitle()->equals( $wgUser->getTalkPage() ) ) { - $tl = Linker::link( + if ( !$title->equals( $wgUser->getTalkPage() ) ) { + $tl = Linker::linkKnown( $wgUser->getTalkPage(), wfMsgHtml( 'newmessageslink' ), array(), - array( 'redirect' => 'no' ), - array( 'known', 'noclasses' ) + array( 'redirect' => 'no' ) ); - $dl = Linker::link( + $dl = Linker::linkKnown( $wgUser->getTalkPage(), wfMsgHtml( 'newmessagesdifflink' ), array(), - array( 'diff' => 'cur' ), - array( 'known', 'noclasses' ) + array( 'diff' => 'cur' ) ); $s[] = '' . wfMsg( 'youhavenewmessages', $tl, $dl ) . ''; # disable caching @@ -513,7 +515,7 @@ class LegacyTemplate extends BaseTemplate { } } - $undelete = $this->getSkin()->getUndeleteLink(); + $undelete = $skin->getUndeleteLink(); if ( !empty( $undelete ) ) { $s[] = $undelete; @@ -583,20 +585,20 @@ class LegacyTemplate extends BaseTemplate { if ( !$wgOut->isArticleRelated() ) { $s = wfMsg( 'protectedpage' ); } else { - if ( $this->getSkin()->getTitle()->quickUserCan( 'edit' ) && $this->getSkin()->getTitle()->exists() ) { + $title = $this->getSkin()->getTitle(); + if ( $title->quickUserCan( 'edit' ) && $title->exists() ) { $t = wfMsg( 'editthispage' ); - } elseif ( $this->getSkin()->getTitle()->quickUserCan( 'create' ) && !$this->getSkin()->getTitle()->exists() ) { + } elseif ( $title->quickUserCan( 'create' ) && !$title->exists() ) { $t = wfMsg( 'create-this-page' ); } else { $t = wfMsg( 'viewsource' ); } - $s = Linker::link( - $this->getSkin()->getTitle(), + $s = Linker::linkKnown( + $title, $t, array(), - $this->getSkin()->editUrlOptions(), - array( 'known', 'noclasses' ) + $this->getSkin()->editUrlOptions() ); } @@ -607,16 +609,16 @@ class LegacyTemplate extends BaseTemplate { global $wgUser, $wgRequest; $diff = $wgRequest->getVal( 'diff' ); + $title = $this->getSkin()->getTitle(); - if ( $this->getSkin()->getTitle()->getArticleId() && ( !$diff ) && $wgUser->isAllowed( 'delete' ) ) { + if ( $title->getArticleId() && ( !$diff ) && $wgUser->isAllowed( 'delete' ) ) { $t = wfMsg( 'deletethispage' ); - $s = Linker::link( - $this->getSkin()->getTitle(), + $s = Linker::linkKnown( + $title, $t, array(), - array( 'action' => 'delete' ), - array( 'known', 'noclasses' ) + array( 'action' => 'delete' ) ); } else { $s = ''; @@ -629,9 +631,10 @@ class LegacyTemplate extends BaseTemplate { global $wgUser, $wgRequest; $diff = $wgRequest->getVal( 'diff' ); + $title = $this->getSkin()->getTitle(); - if ( $this->getSkin()->getTitle()->getArticleId() && ( ! $diff ) && $wgUser->isAllowed( 'protect' ) ) { - if ( $this->getSkin()->getTitle()->isProtected() ) { + if ( $title->getArticleId() && ( ! $diff ) && $wgUser->isAllowed( 'protect' ) ) { + if ( $title->isProtected() ) { $text = wfMsg( 'unprotectthispage' ); $query = array( 'action' => 'unprotect' ); } else { @@ -639,12 +642,11 @@ class LegacyTemplate extends BaseTemplate { $query = array( 'action' => 'protect' ); } - $s = Linker::link( - $this->getSkin()->getTitle(), + $s = Linker::linkKnown( + $title, $text, array(), - $query, - array( 'known', 'noclasses' ) + $query ); } else { $s = ''; @@ -677,12 +679,11 @@ class LegacyTemplate extends BaseTemplate { $id = 'mw-watch-link' . $this->mWatchLinkNum; } - $s = Linker::link( + $s = Linker::linkKnown( $title, $text, array( 'id' => $id ), - $query, - array( 'known', 'noclasses' ) + $query ); } else { $s = wfMsg( 'notanarticle' ); @@ -693,12 +694,11 @@ class LegacyTemplate extends BaseTemplate { function moveThisPage() { if ( $this->getSkin()->getTitle()->quickUserCan( 'move' ) ) { - return Linker::link( + return Linker::linkKnown( SpecialPage::getTitleFor( 'Movepage' ), wfMsg( 'movethispage' ), array(), - array( 'target' => $this->getSkin()->getTitle()->getPrefixedDBkey() ), - array( 'known', 'noclasses' ) + array( 'target' => $this->getSkin()->getTitle()->getPrefixedDBkey() ) ); } else { // no message if page is protected - would be redundant @@ -716,32 +716,23 @@ class LegacyTemplate extends BaseTemplate { } function whatLinksHere() { - return Linker::link( + return Linker::linkKnown( SpecialPage::getTitleFor( 'Whatlinkshere', $this->getSkin()->getTitle()->getPrefixedDBkey() ), - wfMsgHtml( 'whatlinkshere' ), - array(), - array(), - array( 'known', 'noclasses' ) + wfMsgHtml( 'whatlinkshere' ) ); } function userContribsLink() { - return Linker::link( + return Linker::linkKnown( SpecialPage::getTitleFor( 'Contributions', $this->getSkin()->getTitle()->getDBkey() ), - wfMsgHtml( 'contributions' ), - array(), - array(), - array( 'known', 'noclasses' ) + wfMsgHtml( 'contributions' ) ); } function emailUserLink() { - return Linker::link( + return Linker::linkKnown( SpecialPage::getTitleFor( 'Emailuser', $this->getSkin()->getTitle()->getDBkey() ), - wfMsg( 'emailuser' ), - array(), - array(), - array( 'known', 'noclasses' ) + wfMsgHtml( 'emailuser' ) ); } @@ -751,12 +742,9 @@ class LegacyTemplate extends BaseTemplate { if ( !$wgOut->isArticleRelated() ) { return '(' . wfMsg( 'notanarticle' ) . ')'; } else { - return Linker::link( + return Linker::linkKnown( SpecialPage::getTitleFor( 'Recentchangeslinked', $this->getSkin()->getTitle()->getPrefixedDBkey() ), - wfMsg( 'recentchangeslinked-toolbox' ), - array(), - array(), - array( 'known', 'noclasses' ) + wfMsgHtml( 'recentchangeslinked-toolbox' ) ); } } @@ -767,15 +755,16 @@ class LegacyTemplate extends BaseTemplate { } function talkLink() { - if ( NS_SPECIAL == $this->getSkin()->getTitle()->getNamespace() ) { + $title = $this->getSkin()->getTitle(); + if ( NS_SPECIAL == $title->getNamespace() ) { # No discussion links for special pages return ''; } $linkOptions = array(); - if ( $this->getSkin()->getTitle()->isTalkPage() ) { - $link = $this->getSkin()->getTitle()->getSubjectPage(); + if ( $title->isTalkPage() ) { + $link = $title->getSubjectPage(); switch( $link->getNamespace() ) { case NS_MAIN: $text = wfMsg( 'articlepage' ); @@ -808,7 +797,7 @@ class LegacyTemplate extends BaseTemplate { $text = wfMsg( 'articlepage' ); } } else { - $link = $this->getSkin()->getTitle()->getTalkPage(); + $link = $title->getTalkPage(); $text = wfMsg( 'talkpage' ); } @@ -820,30 +809,26 @@ class LegacyTemplate extends BaseTemplate { function commentLink() { global $wgOut; - if ( $this->getSkin()->getTitle()->getNamespace() == NS_SPECIAL ) { + $title = $this->getSkin()->getTitle(); + if ( $title->getNamespace() == NS_SPECIAL ) { return ''; } # __NEWSECTIONLINK___ changes behaviour here # If it is present, the link points to this page, otherwise # it points to the talk page - if ( $this->getSkin()->getTitle()->isTalkPage() ) { - $title = $this->getSkin()->getTitle(); - } elseif ( $wgOut->showNewSectionLink() ) { - $title = $this->getSkin()->getTitle(); - } else { - $title = $this->getSkin()->getTitle()->getTalkPage(); + if ( !$title->isTalkPage() && !$wgOut->showNewSectionLink() ) { + $title = $title->getTalkPage(); } - return Linker::link( + return Linker::linkKnown( $title, wfMsg( 'postcomment' ), array(), array( 'action' => 'edit', 'section' => 'new' - ), - array( 'known', 'noclasses' ) + ) ); } @@ -854,21 +839,17 @@ class LegacyTemplate extends BaseTemplate { # Using an empty class attribute to avoid automatic setting of "external" class return Linker::makeExternalLink( $wgUploadNavigationUrl, wfMsgHtml( 'upload' ), false, null, array( 'class' => '' ) ); } else { - return Linker::link( + return Linker::linkKnown( SpecialPage::getTitleFor( 'Upload' ), - wfMsgHtml( 'upload' ), - array(), - array(), - array( 'known', 'noclasses' ) + wfMsgHtml( 'upload' ) ); } } function nameAndLogin() { - global $wgUser, $wgLang, $wgRequest, $wgContLang; - - $logoutPage = $wgContLang->specialPage( 'Userlogout' ); + global $wgUser, $wgLang, $wgRequest; + $returnTo = $this->getSkin()->getTitle(); $ret = ''; if ( $wgUser->isAnon() ) { @@ -883,11 +864,10 @@ class LegacyTemplate extends BaseTemplate { $ret .= wfMsg( 'notloggedin' ); } - $returnTo = $this->getSkin()->getTitle()->getPrefixedDBkey(); $query = array(); - if ( $logoutPage != $returnTo ) { - $query['returnto'] = $returnTo; + if ( !$returnTo->isSpecial( 'Userlogout' ) ) { + $query['returnto'] = $returnTo->getPrefixedDBkey(); } $loginlink = $wgUser->isAllowed( 'createaccount' ) @@ -898,7 +878,6 @@ class LegacyTemplate extends BaseTemplate { wfMsg( $loginlink ), array(), $query ); } else { - $returnTo = $this->getSkin()->getTitle()->getPrefixedDBkey(); $talkLink = Linker::link( $wgUser->getTalkPage(), $wgLang->getNsText( NS_TALK ) ); @@ -908,7 +887,7 @@ class LegacyTemplate extends BaseTemplate { $ret .= $wgLang->pipeList( array( Linker::link( SpecialPage::getTitleFor( 'Userlogout' ), wfMsg( 'logout' ), - array(), array( 'returnto' => $returnTo ) + array(), array( 'returnto' => $returnTo->getPrefixedDBkey() ) ), Linker::specialLink( 'Preferences' ), ) ); -- 2.20.1