From d9022f63880ce039446fba8364f68e656b7bf4cb Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 3 May 2012 13:01:35 +0200 Subject: Update to MediaWiki 1.19.0 --- includes/SkinLegacy.php | 282 +++++++++++++++++------------------------------- 1 file changed, 100 insertions(+), 182 deletions(-) (limited to 'includes/SkinLegacy.php') diff --git a/includes/SkinLegacy.php b/includes/SkinLegacy.php index 53ce6741..77c85a88 100644 --- a/includes/SkinLegacy.php +++ b/includes/SkinLegacy.php @@ -183,54 +183,16 @@ class LegacyTemplate extends BaseTemplate { } function pageStats() { - global $wgOut, $wgLang, $wgRequest, $wgUser; - global $wgDisableCounters, $wgMaxCredits, $wgShowCreditsIfMax, $wgPageShowWatchingUsers; + $ret = array(); + $items = array( 'viewcount', 'credits', 'lastmod', 'numberofwatchingusers', 'copyright' ); - if ( !is_null( $wgRequest->getVal( 'oldid' ) ) || !is_null( $wgRequest->getVal( 'diff' ) ) ) { - return ''; - } - - if ( !$wgOut->isArticle() || !$this->getSkin()->getTitle()->exists() ) { - return ''; - } - - $article = new Article( $this->getSkin()->getTitle(), 0 ); - - $s = ''; - - if ( !$wgDisableCounters ) { - $count = $wgLang->formatNum( $article->getCount() ); - - if ( $count ) { - $s = wfMsgExt( 'viewcount', array( 'parseinline' ), $count ); + foreach( $items as $item ) { + if ( $this->data[$item] !== false ) { + $ret[] = $this->data[$item]; } } - if ( $wgMaxCredits != 0 ) { - $s .= ' ' . Action::factory( 'credits', $article )->getCredits( $wgMaxCredits, $wgShowCreditsIfMax ); - } else { - $s .= $this->data['lastmod']; - } - - if ( $wgPageShowWatchingUsers && $wgUser->getOption( 'shownumberswatching' ) ) { - $dbr = wfGetDB( DB_SLAVE ); - $res = $dbr->select( - 'watchlist', - array( 'COUNT(*) AS n' ), - array( - 'wl_title' => $dbr->strencode( $this->getSkin()->getTitle()->getDBkey() ), - 'wl_namespace' => $this->getSkin()->getTitle()->getNamespace() - ), - __METHOD__ - ); - $x = $dbr->fetchObject( $res ); - - $s .= ' ' . wfMsgExt( 'number_of_watching_users_pageview', - array( 'parseinline' ), $wgLang->formatNum( $x->n ) - ); - } - - return $s . ' ' . $this->getSkin()->getCopyright(); + return implode( ' ', $ret ); } function topLinks() { @@ -269,20 +231,23 @@ class LegacyTemplate extends BaseTemplate { $s = ''; /* show links to different language variants */ - global $wgDisableLangConversion, $wgLang, $wgContLang; + global $wgDisableLangConversion, $wgLang; - $variants = $wgContLang->getVariants(); + $title = $this->getSkin()->getTitle(); + $lang = $title->getPageLanguage(); + $variants = $lang->getVariants(); - if ( !$wgDisableLangConversion && sizeof( $variants ) > 1 ) { + if ( !$wgDisableLangConversion && sizeof( $variants ) > 1 + && !$title->isSpecialPage() ) { foreach ( $variants as $code ) { - $varname = $wgContLang->getVariantname( $code ); + $varname = $lang->getVariantname( $code ); if ( $varname == 'disable' ) { continue; } $s = $wgLang->pipeList( array( $s, - '' . htmlspecialchars( $varname ) . '' + '' . htmlspecialchars( $varname ) . '' ) ); } } @@ -319,7 +284,7 @@ class LegacyTemplate extends BaseTemplate { } function bottomLinks() { - global $wgOut, $wgUser, $wgUseTrackbacks; + global $wgOut, $wgUser; $sep = wfMsgExt( 'pipe-separator', 'escapenoentities' ) . "\n"; $s = ''; @@ -335,16 +300,14 @@ class LegacyTemplate extends BaseTemplate { $element[] = $this->whatLinksHere(); $element[] = $this->watchPageLinksLink(); - if ( $wgUseTrackbacks ) { - $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 ) { @@ -358,7 +321,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 @@ -382,7 +345,7 @@ class LegacyTemplate extends BaseTemplate { } function otherLanguages() { - global $wgOut, $wgContLang, $wgHideInterlanguageLinks; + global $wgOut, $wgLang, $wgContLang, $wgHideInterlanguageLinks; if ( $wgHideInterlanguageLinks ) { return ''; @@ -397,8 +360,8 @@ class LegacyTemplate extends BaseTemplate { $s = wfMsg( 'otherlanguages' ) . wfMsg( 'colon-separator' ); $first = true; - if ( $wgContLang->isRTL() ) { - $s .= ''; + if ( $wgLang->isRTL() ) { + $s .= ''; } foreach ( $a as $l ) { @@ -416,7 +379,7 @@ class LegacyTemplate extends BaseTemplate { $text == '' ? $l : $text ); } - if ( $wgContLang->isRTL() ) { + if ( $wgLang->isRTL() ) { $s .= ''; } @@ -427,34 +390,18 @@ class LegacyTemplate extends BaseTemplate { * Show a drop-down box of special pages */ function specialPagesList() { - global $wgContLang, $wgServer, $wgRedirectScript; + global $wgScript; + $select = new XmlSelect( 'title' ); $pages = SpecialPageFactory::getUsablePages(); - - foreach ( $pages as $name => $page ) { - $pages[$name] = $page->getDescription(); + array_unshift( $pages, SpecialPageFactory::getPage( 'SpecialPages' ) ); + foreach ( $pages as $obj ) { + $select->addOption( $obj->getDescription(), + $obj->getTitle()->getPrefixedDBkey() ); } - $go = wfMsg( 'go' ); - $sp = wfMsg( 'specialpages' ); - $spp = $wgContLang->specialPage( 'Specialpages' ); - - $s = '
\n"; - $s .= "\n"; - $s .= "\n"; - $s .= "
\n"; - - return $s; + return Html::rawElement( 'form', array( 'id' => 'specialpages', 'method' => 'get', + 'action' => $wgScript ), $select->getHTML() . Xml::submitButton( wfMsg( 'go' ) ) ); } function pageTitleLinks() { @@ -464,23 +411,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() ); @@ -491,33 +441,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 @@ -526,7 +471,7 @@ class LegacyTemplate extends BaseTemplate { } } - $undelete = $this->getSkin()->getUndeleteLink(); + $undelete = $skin->getUndeleteLink(); if ( !empty( $undelete ) ) { $s[] = $undelete; @@ -541,7 +486,7 @@ class LegacyTemplate extends BaseTemplate { */ function pageTitle() { global $wgOut; - $s = '

' . $wgOut->getPageTitle() . '

'; + $s = '

' . $wgOut->getPageTitle() . '

'; return $s; } @@ -587,6 +532,7 @@ class LegacyTemplate extends BaseTemplate { * @deprecated in 1.19 */ function getQuickbarCompensator( $rows = 1 ) { + wfDeprecated( __METHOD__, '1.19' ); return " "; } @@ -596,20 +542,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() ); } @@ -620,16 +566,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 = ''; @@ -642,9 +588,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 { @@ -652,12 +599,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 = ''; @@ -690,12 +636,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' ); @@ -706,12 +651,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 @@ -729,32 +673,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' ) ); } @@ -764,31 +699,24 @@ 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' ) ); } } - function trackbackLink() { - return '' - . wfMsg( 'trackbacklink' ) . ''; - } - 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' ); @@ -821,7 +749,7 @@ class LegacyTemplate extends BaseTemplate { $text = wfMsg( 'articlepage' ); } } else { - $link = $this->getSkin()->getTitle()->getTalkPage(); + $link = $title->getTalkPage(); $text = wfMsg( 'talkpage' ); } @@ -833,30 +761,26 @@ class LegacyTemplate extends BaseTemplate { function commentLink() { global $wgOut; - if ( $this->getSkin()->getTitle()->getNamespace() == NS_SPECIAL ) { + $title = $this->getSkin()->getTitle(); + if ( $title->isSpecialPage() ) { 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' ) + ) ); } @@ -867,26 +791,22 @@ 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, $wgContLang; - - $logoutPage = $wgContLang->specialPage( 'Userlogout' ); + global $wgUser, $wgLang, $wgRequest; + $returnTo = $this->getSkin()->getTitle(); $ret = ''; if ( $wgUser->isAnon() ) { if ( $this->getSkin()->showIPinHeader() ) { - $name = wfGetIP(); + $name = $wgRequest->getIP(); $talkLink = Linker::link( $wgUser->getTalkPage(), $wgLang->getNsText( NS_TALK ) ); @@ -896,11 +816,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' ) @@ -911,7 +830,6 @@ class LegacyTemplate extends BaseTemplate { wfMsg( $loginlink ), array(), $query ); } else { - $returnTo = $this->getSkin()->getTitle()->getPrefixedDBkey(); $talkLink = Linker::link( $wgUser->getTalkPage(), $wgLang->getNsText( NS_TALK ) ); @@ -921,7 +839,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' ), ) ); -- cgit v1.2.2