X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSkinLegacy.php;h=480f3eb6dfc0257ab099c93362c3f2c59498943f;hb=3d0abce217b73d9e3a0ae79d205cf7c10d957873;hp=f8ff1e3b351c982a240e00884030f6bec29745a1;hpb=c48b41201acd7c97ee3fd0cc5b6c8cdfe7a4c57c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SkinLegacy.php b/includes/SkinLegacy.php index f8ff1e3b35..480f3eb6df 100644 --- a/includes/SkinLegacy.php +++ b/includes/SkinLegacy.php @@ -66,10 +66,10 @@ class SkinLegacy extends SkinTemplate { } class LegacyTemplate extends BaseTemplate { - + // How many search boxes have we made? Avoid duplicate id's. protected $searchboxes = ''; - + function execute() { $this->html( 'headelement' ); echo $this->beforeContent(); @@ -80,21 +80,21 @@ class LegacyTemplate extends BaseTemplate { $this->printTrail(); echo "\n"; } - + /** * This will be called immediately after the tag. Split into * two functions to make it easier to subclass. + * @return string */ function beforeContent() { return $this->doBeforeContent(); } function doBeforeContent() { - global $wgContLang; + global $wgLang; wfProfileIn( __METHOD__ ); $s = ''; - $qb = $this->getSkin()->qbSetting(); $langlinks = $this->otherLanguages(); if ( $langlinks ) { @@ -107,25 +107,20 @@ class LegacyTemplate extends BaseTemplate { } $s .= "\n
\n
\n" . - "\n\n"; - - $shove = ( $qb != 0 ); - $left = ( $qb == 1 || $qb == 3 ); + "
\n\n"; - if ( !$shove ) { + if ( $this->getSkin()->qbSetting() == 0 ) { $s .= "'; - } elseif ( $left ) { - $s .= $this->getQuickbarCompensator( $rows ); + $this->getSkin()->logoText( $wgLang->alignStart() ) . ''; } - $l = $wgContLang->alignStart(); + $l = $wgLang->alignStart(); $s .= "\n'; @@ -134,10 +129,6 @@ class LegacyTemplate extends BaseTemplate { $s .= "\n\n\n"; } - if ( $shove && !$left ) { # Right - $s .= $this->getQuickbarCompensator( $rows ); - } - $s .= "\n
\n" . - $this->getSkin()->logoText() . '\n"; $s .= $this->topLinks(); $s .= '

' . $this->pageTitleLinks() . "

\n"; - $r = $wgContLang->alignEnd(); + $r = $wgLang->alignEnd(); $s .= "
"; $s .= $this->nameAndLogin(); $s .= "\n
" . $this->searchForm() . '
$langlinks
\n
\n"; $s .= "\n
\n"; @@ -162,7 +153,9 @@ class LegacyTemplate extends BaseTemplate { return $this->doAfterContent(); } - /** overloaded by derived classes */ + /** overloaded by derived classes + * @return string + */ function doAfterContent() { return '
'; } @@ -193,54 +186,16 @@ class LegacyTemplate extends BaseTemplate { } function pageStats() { - global $wgOut, $wgLang, $wgRequest, $wgUser; - global $wgDisableCounters, $wgMaxCredits, $wgShowCreditsIfMax, $wgPageShowWatchingUsers; - - if ( !is_null( $wgRequest->getVal( 'oldid' ) ) || !is_null( $wgRequest->getVal( 'diff' ) ) ) { - return ''; - } - - if ( !$wgOut->isArticle() || !$this->getSkin()->getTitle()->exists() ) { - return ''; - } + $ret = array(); + $items = array( 'viewcount', 'credits', 'lastmod', 'numberofwatchingusers', 'copyright' ); - $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() { @@ -279,20 +234,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 ) . '' ) ); } } @@ -329,7 +287,7 @@ class LegacyTemplate extends BaseTemplate { } function bottomLinks() { - global $wgOut, $wgUser, $wgUseTrackbacks; + global $wgOut, $wgUser; $sep = wfMsgExt( 'pipe-separator', 'escapenoentities' ) . "\n"; $s = ''; @@ -345,16 +303,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 ) { @@ -368,7 +324,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 @@ -392,7 +348,7 @@ class LegacyTemplate extends BaseTemplate { } function otherLanguages() { - global $wgOut, $wgContLang, $wgHideInterlanguageLinks; + global $wgOut, $wgLang, $wgHideInterlanguageLinks; if ( $wgHideInterlanguageLinks ) { return ''; @@ -407,8 +363,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 ) { @@ -419,14 +375,14 @@ class LegacyTemplate extends BaseTemplate { $first = false; $nt = Title::newFromText( $l ); - $text = $wgContLang->getLanguageName( $nt->getInterwiki() ); + $text = Language::fetchLanguageName( $nt->getInterwiki() ); $s .= Html::element( 'a', array( 'href' => $nt->getFullURL(), 'title' => $nt->getText(), 'class' => "external" ), $text == '' ? $l : $text ); } - if ( $wgContLang->isRTL() ) { + if ( $wgLang->isRTL() ) { $s .= ''; } @@ -435,36 +391,21 @@ class LegacyTemplate extends BaseTemplate { /** * Show a drop-down box of special pages + * @return string */ function specialPagesList() { - global $wgContLang, $wgServer, $wgRedirectScript; + global $wgScript; + $select = new XmlSelect( 'title' ); $pages = SpecialPageFactory::getUsablePages(); - - foreach ( $pages as $name => $page ) { - $pages[$name] = $page->getDescription(); - } - - $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() { @@ -474,60 +415,58 @@ 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() ); - $style = $this->getInternalLinkAttributes( $link, $name ); + $style = Linker::getInternalLinkAttributes( $link, $name ); $s[] = "{$name}"; } } } 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 @@ -536,7 +475,7 @@ class LegacyTemplate extends BaseTemplate { } } - $undelete = $this->getSkin()->getUndeleteLink(); + $undelete = $skin->getUndeleteLink(); if ( !empty( $undelete ) ) { $s[] = $undelete; @@ -551,7 +490,7 @@ class LegacyTemplate extends BaseTemplate { */ function pageTitle() { global $wgOut; - $s = '

' . $wgOut->getPageTitle() . '

'; + $s = '

' . $wgOut->getPageTitle() . '

'; return $s; } @@ -593,7 +532,12 @@ class LegacyTemplate extends BaseTemplate { return $wgLang->pipeList( $s ); } + /** + * @deprecated in 1.19 + * @return string + */ function getQuickbarCompensator( $rows = 1 ) { + wfDeprecated( __METHOD__, '1.19' ); return " "; } @@ -603,20 +547,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() ); } @@ -627,16 +571,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 = ''; @@ -649,9 +593,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 { @@ -659,12 +604,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 = ''; @@ -697,12 +641,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' ); @@ -713,12 +656,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 @@ -736,32 +678,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' ) ); } @@ -769,33 +702,26 @@ class LegacyTemplate extends BaseTemplate { global $wgOut; if ( !$wgOut->isArticleRelated() ) { - return '(' . wfMsg( 'notanarticle' ) . ')'; + return wfMessage( 'parentheses', wfMessage( 'notanarticle' )->text() )->escaped(); } 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' ); @@ -828,7 +754,7 @@ class LegacyTemplate extends BaseTemplate { $text = wfMsg( 'articlepage' ); } } else { - $link = $this->getSkin()->getTitle()->getTalkPage(); + $link = $title->getTalkPage(); $text = wfMsg( 'talkpage' ); } @@ -840,30 +766,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' ) + ) ); } @@ -874,21 +796,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() ) { @@ -897,17 +815,17 @@ class LegacyTemplate extends BaseTemplate { $talkLink = Linker::link( $wgUser->getTalkPage(), $wgLang->getNsText( NS_TALK ) ); + $talkLink = wfMessage( 'parentheses' )->rawParams( $talkLink )->escaped(); - $ret .= "$name ($talkLink)"; + $ret .= "$name $talkLink"; } else { $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' ) @@ -918,17 +836,17 @@ class LegacyTemplate extends BaseTemplate { wfMsg( $loginlink ), array(), $query ); } else { - $returnTo = $this->getSkin()->getTitle()->getPrefixedDBkey(); $talkLink = Linker::link( $wgUser->getTalkPage(), $wgLang->getNsText( NS_TALK ) ); + $talkLink = wfMessage( 'parentheses' )->rawParams( $talkLink )->escaped(); $ret .= Linker::link( $wgUser->getUserPage(), htmlspecialchars( $wgUser->getName() ) ); - $ret .= " ($talkLink)
"; + $ret .= " $talkLink
"; $ret .= $wgLang->pipeList( array( Linker::link( SpecialPage::getTitleFor( 'Userlogout' ), wfMsg( 'logout' ), - array(), array( 'returnto' => $returnTo ) + array(), array( 'returnto' => $returnTo->getPrefixedDBkey() ) ), Linker::specialLink( 'Preferences' ), ) ); @@ -944,6 +862,4 @@ class LegacyTemplate extends BaseTemplate { return $ret; } - } -