From cb564dce13e6cef0425ee28d81dd87263d49434f Mon Sep 17 00:00:00 2001 From: MatmaRex Date: Mon, 6 May 2013 13:38:35 +0200 Subject: [PATCH] Remove SkinLegacy.php Followup to Ia6d73c2d (the great skin removal event of 2013). The two classes this file defined, SkinLegacy and LegacyTemplate, were already removed from AutoLoader.php in the aforementioned commit, but the file itself somehow stayed. The Nostalgia extension includes its own copy, and I've rewritten Cologne Blue to use SkinTemplate last year, which means that nothing needs the legacy classes anymore. I grepped mediawiki/extensions just in case and there were no hits apart from Nostalgia. Change-Id: Ib36edff3f9b617357386914980b56fa5b1f6a83b --- RELEASE-NOTES-1.22 | 6 +- includes/SkinLegacy.php | 840 ---------------------------------------- 2 files changed, 4 insertions(+), 842 deletions(-) delete mode 100644 includes/SkinLegacy.php diff --git a/RELEASE-NOTES-1.22 b/RELEASE-NOTES-1.22 index ff9622a376..1757b26638 100644 --- a/RELEASE-NOTES-1.22 +++ b/RELEASE-NOTES-1.22 @@ -113,8 +113,10 @@ changes to languages because of Bugzilla reports. * redirect.php was removed. It was unused. * ClickTracking integration was dropped from the mediaWiki.user.bucket JavaScript function. The 'tracked' option is now ignored. -* BREAKING CHANGE: Legacy skins Simple, MySkin and Standard were all removed. - Nostalgia was moved to an extension. +* BREAKING CHANGE: Legacy skins Simple, MySkin, Chick, Standard and Nostalgia + were all removed. (Nostalgia was moved to an extension.) The SkinLegacy and + LegacyTemplate classes that supported them were removed as well and are now a + part of the Nostalgia extension. * Event namespace used by jquery.makeCollapsible has been changed from 'mw-collapse' to 'mw-collapsible' for consistency with the module name. * BREAKING CHANGE: The "ExternalAuth" authentication subsystem was removed, along diff --git a/includes/SkinLegacy.php b/includes/SkinLegacy.php deleted file mode 100644 index 6f118371ea..0000000000 --- a/includes/SkinLegacy.php +++ /dev/null @@ -1,840 +0,0 @@ -addModuleStyles( 'mediawiki.legacy.shared' ); - $out->addModuleStyles( 'mediawiki.legacy.oldshared' ); - } - - public function commonPrintStylesheet() { - return true; - } -} - -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(); - $this->html( 'bodytext' ); - echo "\n"; - echo $this->afterContent(); - $this->html( 'dataAfterContent' ); - $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 $wgLang; - wfProfileIn( __METHOD__ ); - - $s = ''; - - $langlinks = $this->otherLanguages(); - if ( $langlinks ) { - $rows = 2; - $borderhack = ''; - } else { - $rows = 1; - $langlinks = false; - $borderhack = 'class="top"'; - } - - $s .= "\n
\n
\n" . - "\n\n"; - - if ( $this->getSkin()->qbSetting() == 0 ) { - $s .= "'; - } - - $l = $wgLang->alignStart(); - $s .= "\n'; - - if ( $langlinks ) { - $s .= "\n\n\n"; - } - - $s .= "\n
\n" . - $this->getSkin()->logoText( $wgLang->alignStart() ) . '\n"; - - $s .= $this->topLinks(); - $s .= '

' . $this->pageTitleLinks() . "

\n"; - - $r = $wgLang->alignEnd(); - $s .= "
"; - $s .= $this->nameAndLogin(); - $s .= "\n
" . $this->searchForm() . '
$langlinks
\n
\n"; - $s .= "\n
\n"; - - $notice = $this->getSkin()->getSiteNotice(); - - if ( $notice ) { - $s .= "\n
$notice
\n"; - } - $s .= $this->pageTitle(); - $s .= $this->pageSubtitle(); - $s .= $this->getSkin()->getCategories(); - - wfProfileOut( __METHOD__ ); - return $s; - } - - /** - * This gets called shortly before the "" tag. - * @return String HTML to be put before "" - */ - function afterContent() { - return $this->doAfterContent(); - } - - /** overloaded by derived classes - * @return string - */ - function doAfterContent() { - return '
'; - } - - function searchForm() { - global $wgRequest, $wgUseTwoButtonsSearchForm; - - $search = $wgRequest->getText( 'search' ); - - $s = '
\n" - . '\n" - . ''; - - if ( $wgUseTwoButtonsSearchForm ) { - $s .= ' \n"; - } else { - $s .= ' \n"; - } - - $s .= '
'; - - // Ensure unique id's for search boxes made after the first - $this->searchboxes = $this->searchboxes == '' ? 2 : $this->searchboxes + 1; - - return $s; - } - - function pageStats() { - $ret = array(); - $items = array( 'viewcount', 'credits', 'lastmod', 'numberofwatchingusers', 'copyright' ); - - foreach ( $items as $item ) { - if ( $this->data[$item] !== false ) { - $ret[] = $this->data[$item]; - } - } - - return implode( ' ', $ret ); - } - - function topLinks() { - global $wgOut; - - $s = array( - $this->getSkin()->mainPageLink(), - Linker::specialLink( 'Recentchanges' ) - ); - - if ( $wgOut->isArticleRelated() ) { - $s[] = $this->editThisPage(); - $s[] = $this->historyLink(); - } - - # Many people don't like this dropdown box - # $s[] = $this->specialPagesList(); - - if ( $this->variantLinks() ) { - $s[] = $this->variantLinks(); - } - - if ( $this->extensionTabLinks() ) { - $s[] = $this->extensionTabLinks(); - } - - // @todo FIXME: Is using Language::pipeList impossible here? Do not quite understand the use of the newline - return implode( $s, wfMessage( 'pipe-separator' )->escaped() . "\n" ); - } - - /** - * Language/charset variant links for classic-style skins - * @return string - */ - function variantLinks() { - $s = ''; - - /* show links to different language variants */ - global $wgDisableLangConversion, $wgLang; - - $title = $this->getSkin()->getTitle(); - $lang = $title->getPageLanguage(); - $variants = $lang->getVariants(); - - if ( !$wgDisableLangConversion && count( $variants ) > 1 - && !$title->isSpecialPage() ) { - foreach ( $variants as $code ) { - $varname = $lang->getVariantname( $code ); - - $s = $wgLang->pipeList( array( - $s, - '' . htmlspecialchars( $varname ) . '' - ) ); - } - } - - return $s; - } - - /** - * Compatibility for extensions adding functionality through tabs. - * Eventually these old skins should be replaced with SkinTemplate-based - * versions, sigh... - * @return string - * @todo Exterminate! ...that, and replace it with normal SkinTemplate stuff - */ - function extensionTabLinks() { - $tabs = array(); - $out = ''; - $s = array(); - wfRunHooks( 'SkinTemplateTabs', array( $this->getSkin(), &$tabs ) ); - foreach ( $tabs as $tab ) { - $s[] = Xml::element( 'a', - array( 'href' => $tab['href'] ), - $tab['text'] ); - } - - if ( count( $s ) ) { - global $wgLang; - - $out = wfMessage( 'pipe-separator' )->escaped(); - $out .= $wgLang->pipeList( $s ); - } - - return $out; - } - - function bottomLinks() { - global $wgOut, $wgUser; - $sep = wfMessage( 'pipe-separator' )->escaped() . "\n"; - - $s = ''; - if ( $wgOut->isArticleRelated() ) { - $element[] = '' . $this->editThisPage() . ''; - - if ( $wgUser->isLoggedIn() ) { - $element[] = $this->watchThisPage(); - } - - $element[] = $this->talkLink(); - $element[] = $this->historyLink(); - $element[] = $this->whatLinksHere(); - $element[] = $this->watchPageLinksLink(); - - $title = $this->getSkin()->getTitle(); - - if ( - $title->getNamespace() == NS_USER || - $title->getNamespace() == NS_USER_TALK - ) { - $id = User::idFromName( $title->getText() ); - $ip = User::isIP( $title->getText() ); - - # Both anons and non-anons have contributions list - if ( $id || $ip ) { - $element[] = $this->userContribsLink(); - } - - if ( $this->getSkin()->showEmailUser( $id ) ) { - $element[] = $this->emailUserLink(); - } - } - - $s = implode( $element, $sep ); - - if ( $title->getArticleID() ) { - $s .= "\n
"; - - // Delete/protect/move links for privileged users - if ( $wgUser->isAllowed( 'delete' ) ) { - $s .= $this->deleteThisPage(); - } - - if ( $wgUser->isAllowed( 'protect' ) && $title->getRestrictionTypes() ) { - $s .= $sep . $this->protectThisPage(); - } - - if ( $wgUser->isAllowed( 'move' ) ) { - $s .= $sep . $this->moveThisPage(); - } - } - - $s .= "
\n" . $this->otherLanguages(); - } - - return $s; - } - - function otherLanguages() { - global $wgOut, $wgLang, $wgHideInterlanguageLinks; - - if ( $wgHideInterlanguageLinks ) { - return ''; - } - - $a = $wgOut->getLanguageLinks(); - - if ( 0 == count( $a ) ) { - return ''; - } - - $s = wfMessage( 'otherlanguages' )->text() . wfMessage( 'colon-separator' )->text(); - $first = true; - - if ( $wgLang->isRTL() ) { - $s .= ''; - } - - foreach ( $a as $l ) { - if ( !$first ) { - $s .= wfMessage( 'pipe-separator' )->escaped(); - } - - $first = false; - - $nt = Title::newFromText( $l ); - $text = Language::fetchLanguageName( $nt->getInterwiki() ); - - $s .= Html::element( 'a', - array( 'href' => $nt->getFullURL(), 'title' => $nt->getText(), 'class' => "external" ), - $text == '' ? $l : $text ); - } - - if ( $wgLang->isRTL() ) { - $s .= ''; - } - - return $s; - } - - /** - * Show a drop-down box of special pages - * @return string - */ - function specialPagesList() { - global $wgScript; - - $select = new XmlSelect( 'title' ); - $pages = SpecialPageFactory::getUsablePages(); - array_unshift( $pages, SpecialPageFactory::getPage( 'SpecialPages' ) ); - foreach ( $pages as $obj ) { - $select->addOption( $obj->getDescription(), - $obj->getTitle()->getPrefixedDBkey() ); - } - - return Html::rawElement( 'form', - array( 'id' => 'specialpages', 'method' => 'get', 'action' => $wgScript ), - $select->getHTML() . Xml::submitButton( wfMessage( 'go' )->text() ) ); - } - - function pageTitleLinks() { - global $wgOut, $wgUser, $wgRequest, $wgLang; - - $oldid = $wgRequest->getVal( 'oldid' ); - $diff = $wgRequest->getVal( 'diff' ); - $action = $wgRequest->getText( 'action' ); - - $skin = $this->getSkin(); - $title = $skin->getTitle(); - - $s[] = $this->printableLink(); - $disclaimer = $skin->disclaimerLink(); # may be empty - - if ( $disclaimer ) { - $s[] = $disclaimer; - } - - $privacy = $skin->privacyLink(); # may be empty too - - if ( $privacy ) { - $s[] = $privacy; - } - - if ( $wgOut->isArticleRelated() ) { - if ( $title->getNamespace() == NS_FILE ) { - $image = wfFindFile( $title ); - - if ( $image ) { - $href = $image->getURL(); - $s[] = Html::element( 'a', array( 'href' => $href, - 'title' => $href ), $title->getText() ); - - } - } - } - - if ( 'history' == $action || isset( $diff ) || isset( $oldid ) ) { - $s[] .= Linker::linkKnown( - $title, - wfMessage( 'currentrev' )->text() - ); - } - - if ( $wgUser->getNewtalk() ) { - # do not show "You have new messages" text when we are viewing our - # own talk page - if ( !$title->equals( $wgUser->getTalkPage() ) ) { - $tl = Linker::linkKnown( - $wgUser->getTalkPage(), - wfMessage( 'newmessageslink' )->escaped(), - array(), - array( 'redirect' => 'no' ) - ); - - $dl = Linker::linkKnown( - $wgUser->getTalkPage(), - wfMessage( 'newmessagesdifflink' )->escaped(), - array(), - array( 'diff' => 'cur' ) - ); - $s[] = '' . wfMessage( 'youhavenewmessages', $tl, $dl )->text() . ''; - # disable caching - $wgOut->setSquidMaxage( 0 ); - $wgOut->enableClientCache( false ); - } - } - - $undelete = $skin->getUndeleteLink(); - - if ( !empty( $undelete ) ) { - $s[] = $undelete; - } - - return $wgLang->pipeList( $s ); - } - - /** - * Gets the h1 element with the page title. - * @return string - */ - function pageTitle() { - global $wgOut; - $s = '

' . $wgOut->getPageTitle() . '

'; - return $s; - } - - function pageSubtitle() { - global $wgOut; - - $sub = $wgOut->getSubtitle(); - - if ( $sub == '' ) { - global $wgExtraSubtitle; - $sub = wfMessage( 'tagline' )->parse() . $wgExtraSubtitle; - } - - $subpages = $this->getSkin()->subPageSubtitle(); - $sub .= !empty( $subpages ) ? "

$subpages" : ''; - $s = "

{$sub}

\n"; - - return $s; - } - - function printableLink() { - global $wgOut, $wgRequest, $wgLang; - - $s = array(); - - if ( !$wgOut->isPrintable() ) { - $printurl = htmlspecialchars( $this->getSkin()->getTitle()->getLocalURL( - $wgRequest->appendQueryValue( 'printable', 'yes', true ) ) ); - $s[] = "" - . wfMessage( 'printableversion' )->text() . ''; - } - - if ( $wgOut->isSyndicated() ) { - foreach ( $wgOut->getSyndicationLinks() as $format => $link ) { - $feedurl = htmlspecialchars( $link ); - $s[] = "" . wfMessage( "feed-$format" )->escaped() . ""; - } - } - return $wgLang->pipeList( $s ); - } - - /** - * @deprecated in 1.19 - * @return string - */ - function getQuickbarCompensator( $rows = 1 ) { - wfDeprecated( __METHOD__, '1.19' ); - return " "; - } - - function editThisPage() { - global $wgOut; - - if ( !$wgOut->isArticleRelated() ) { - $s = wfMessage( 'protectedpage' )->text(); - } else { - $title = $this->getSkin()->getTitle(); - if ( $title->quickUserCan( 'edit' ) && $title->exists() ) { - $t = wfMessage( 'editthispage' )->text(); - } elseif ( $title->quickUserCan( 'create' ) && !$title->exists() ) { - $t = wfMessage( 'create-this-page' )->text(); - } else { - $t = wfMessage( 'viewsource' )->text(); - } - - $s = Linker::linkKnown( - $title, - $t, - array(), - $this->getSkin()->editUrlOptions() - ); - } - - return $s; - } - - function deleteThisPage() { - global $wgUser, $wgRequest; - - $diff = $wgRequest->getVal( 'diff' ); - $title = $this->getSkin()->getTitle(); - - if ( $title->getArticleID() && ( !$diff ) && $wgUser->isAllowed( 'delete' ) ) { - $t = wfMessage( 'deletethispage' )->text(); - - $s = Linker::linkKnown( - $title, - $t, - array(), - array( 'action' => 'delete' ) - ); - } else { - $s = ''; - } - - return $s; - } - - function protectThisPage() { - global $wgUser, $wgRequest; - - $diff = $wgRequest->getVal( 'diff' ); - $title = $this->getSkin()->getTitle(); - - if ( $title->getArticleID() && ( ! $diff ) && $wgUser->isAllowed( 'protect' ) && $title->getRestrictionTypes() ) { - if ( $title->isProtected() ) { - $text = wfMessage( 'unprotectthispage' )->text(); - $query = array( 'action' => 'unprotect' ); - } else { - $text = wfMessage( 'protectthispage' )->text(); - $query = array( 'action' => 'protect' ); - } - - $s = Linker::linkKnown( - $title, - $text, - array(), - $query - ); - } else { - $s = ''; - } - - return $s; - } - - function watchThisPage() { - global $wgOut, $wgUser; - ++$this->mWatchLinkNum; - - // Cache - $title = $this->getSkin()->getTitle(); - - if ( $wgOut->isArticleRelated() ) { - if ( $wgUser->isWatched( $title ) ) { - $text = wfMessage( 'unwatchthispage' )->text(); - $query = array( - 'action' => 'unwatch', - 'token' => UnwatchAction::getUnwatchToken( $title, $wgUser ), - ); - $id = 'mw-unwatch-link' . $this->mWatchLinkNum; - } else { - $text = wfMessage( 'watchthispage' )->text(); - $query = array( - 'action' => 'watch', - 'token' => WatchAction::getWatchToken( $title, $wgUser ), - ); - $id = 'mw-watch-link' . $this->mWatchLinkNum; - } - - $s = Linker::linkKnown( - $title, - $text, - array( 'id' => $id ), - $query - ); - } else { - $s = wfMessage( 'notanarticle' )->text(); - } - - return $s; - } - - function moveThisPage() { - if ( $this->getSkin()->getTitle()->quickUserCan( 'move' ) ) { - return Linker::linkKnown( - SpecialPage::getTitleFor( 'Movepage' ), - wfMessage( 'movethispage' )->text(), - array(), - array( 'target' => $this->getSkin()->getTitle()->getPrefixedDBkey() ) - ); - } else { - // no message if page is protected - would be redundant - return ''; - } - } - - function historyLink() { - return Linker::link( - $this->getSkin()->getTitle(), - wfMessage( 'history' )->escaped(), - array( 'rel' => 'archives' ), - array( 'action' => 'history' ) - ); - } - - function whatLinksHere() { - return Linker::linkKnown( - SpecialPage::getTitleFor( 'Whatlinkshere', $this->getSkin()->getTitle()->getPrefixedDBkey() ), - wfMessage( 'whatlinkshere' )->escaped() - ); - } - - function userContribsLink() { - return Linker::linkKnown( - SpecialPage::getTitleFor( 'Contributions', $this->getSkin()->getTitle()->getDBkey() ), - wfMessage( 'contributions' )->escaped() - ); - } - - function emailUserLink() { - return Linker::linkKnown( - SpecialPage::getTitleFor( 'Emailuser', $this->getSkin()->getTitle()->getDBkey() ), - wfMessage( 'emailuser' )->escaped() - ); - } - - function watchPageLinksLink() { - global $wgOut; - - if ( !$wgOut->isArticleRelated() ) { - return wfMessage( 'parentheses', wfMessage( 'notanarticle' )->text() )->escaped(); - } else { - return Linker::linkKnown( - SpecialPage::getTitleFor( 'Recentchangeslinked', $this->getSkin()->getTitle()->getPrefixedDBkey() ), - wfMessage( 'recentchangeslinked-toolbox' )->escaped() - ); - } - } - - function talkLink() { - $title = $this->getSkin()->getTitle(); - if ( NS_SPECIAL == $title->getNamespace() ) { - # No discussion links for special pages - return ''; - } - - $linkOptions = array(); - - if ( $title->isTalkPage() ) { - $link = $title->getSubjectPage(); - switch ( $link->getNamespace() ) { - case NS_MAIN: - $text = wfMessage( 'articlepage' ); - break; - case NS_USER: - $text = wfMessage( 'userpage' ); - break; - case NS_PROJECT: - $text = wfMessage( 'projectpage' ); - break; - case NS_FILE: - $text = wfMessage( 'imagepage' ); - # Make link known if image exists, even if the desc. page doesn't. - if ( wfFindFile( $link ) ) { - $linkOptions[] = 'known'; - } - break; - case NS_MEDIAWIKI: - $text = wfMessage( 'mediawikipage' ); - break; - case NS_TEMPLATE: - $text = wfMessage( 'templatepage' ); - break; - case NS_HELP: - $text = wfMessage( 'viewhelppage' ); - break; - case NS_CATEGORY: - $text = wfMessage( 'categorypage' ); - break; - default: - $text = wfMessage( 'articlepage' ); - } - } else { - $link = $title->getTalkPage(); - $text = wfMessage( 'talkpage' ); - } - - $s = Linker::link( $link, $text->text(), array(), array(), $linkOptions ); - - return $s; - } - - function commentLink() { - global $wgOut; - - $title = $this->getSkin()->getTitle(); - if ( $title->isSpecialPage() ) { - return ''; - } - - # __NEWSECTIONLINK___ changes behavior here - # If it is present, the link points to this page, otherwise - # it points to the talk page - if ( !$title->isTalkPage() && !$wgOut->showNewSectionLink() ) { - $title = $title->getTalkPage(); - } - - return Linker::linkKnown( - $title, - wfMessage( 'postcomment' )->text(), - array(), - array( - 'action' => 'edit', - 'section' => 'new' - ) - ); - } - - function getUploadLink() { - global $wgUploadNavigationUrl; - - if ( $wgUploadNavigationUrl ) { - # Using an empty class attribute to avoid automatic setting of "external" class - return Linker::makeExternalLink( $wgUploadNavigationUrl, - wfMessage( 'upload' )->escaped(), - false, null, array( 'class' => '' ) ); - } else { - return Linker::linkKnown( - SpecialPage::getTitleFor( 'Upload' ), - wfMessage( 'upload' )->escaped() - ); - } - } - - function nameAndLogin() { - global $wgUser, $wgLang, $wgRequest; - - $returnTo = $this->getSkin()->getTitle(); - $ret = ''; - - if ( $wgUser->isAnon() ) { - if ( $this->getSkin()->showIPinHeader() ) { - $name = $wgRequest->getIP(); - - $talkLink = Linker::link( $wgUser->getTalkPage(), - $wgLang->getNsText( NS_TALK ) ); - $talkLink = wfMessage( 'parentheses' )->rawParams( $talkLink )->escaped(); - - $ret .= "$name $talkLink"; - } else { - $ret .= wfMessage( 'notloggedin' )->text(); - } - - $query = array(); - - if ( !$returnTo->isSpecial( 'Userlogout' ) ) { - $query['returnto'] = $returnTo->getPrefixedDBkey(); - } - - $loginlink = $wgUser->isAllowed( 'createaccount' ) - ? 'nav-login-createaccount' - : 'login'; - $ret .= "\n
" . Linker::link( - SpecialPage::getTitleFor( 'Userlogin' ), - wfMessage( $loginlink )->text(), array(), $query - ); - } else { - $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 .= $wgLang->pipeList( array( - Linker::link( - SpecialPage::getTitleFor( 'Userlogout' ), wfMessage( 'logout' )->text(), - array(), array( 'returnto' => $returnTo->getPrefixedDBkey() ) - ), - Linker::specialLink( 'Preferences' ), - ) ); - } - - $ret = $wgLang->pipeList( array( - $ret, - Linker::link( - Title::newFromText( wfMessage( 'helppage' )->inContentLanguage()->text() ), - wfMessage( 'help' )->text() - ), - ) ); - - return $ret; - } -} -- 2.20.1