From fb33b959dba0c971ea1f32319fcca71a0ffd333b Mon Sep 17 00:00:00 2001 From: jrobson Date: Thu, 20 Mar 2014 15:10:05 -0700 Subject: [PATCH] Move Modern and CologneBlue out of core Import in the new repositories: - Modern: I5348fedddf14affcee2688833f4e759e5af6499c - CologneBlue: I9cc051f48074a033c684e5efa56a7b4dde51d366 Change-Id: I65768b4c29faf46895a7005a3090f43cf6e86258 --- RELEASE-NOTES-1.24 | 4 + includes/AutoLoader.php | 4 - includes/Skin.php | 2 +- includes/installer/LocalSettingsGenerator.php | 2 +- languages/i18n/en.json | 6 - maintenance/dictionary/mediawiki.dic | 1 - resources/Resources.php | 16 - skins/.gitignore | 6 - skins/CologneBlue.php | 650 ------------ skins/Modern.php | 207 ---- skins/cologneblue/print.css | 6 - skins/cologneblue/screen.css | 292 ------ skins/modern/audio.png | Bin 186 -> 0 bytes skins/modern/bullet.gif | Bin 50 -> 0 bytes skins/modern/discussionitem_icon.gif | Bin 549 -> 0 bytes skins/modern/document.png | Bin 152 -> 0 bytes skins/modern/external.png | Bin 141 -> 0 bytes skins/modern/file_icon.gif | Bin 323 -> 0 bytes skins/modern/footer-grad.png | Bin 81 -> 0 bytes skins/modern/link_icon.gif | Bin 342 -> 0 bytes skins/modern/lock_icon.gif | Bin 321 -> 0 bytes skins/modern/mail_icon.gif | Bin 321 -> 0 bytes skins/modern/main.css | 948 ------------------ skins/modern/news_icon.png | Bin 284 -> 0 bytes skins/modern/print.css | 10 - skins/modern/video.png | Bin 113 -> 0 bytes 26 files changed, 6 insertions(+), 2148 deletions(-) delete mode 100644 skins/CologneBlue.php delete mode 100644 skins/Modern.php delete mode 100644 skins/cologneblue/print.css delete mode 100644 skins/cologneblue/screen.css delete mode 100644 skins/modern/audio.png delete mode 100644 skins/modern/bullet.gif delete mode 100644 skins/modern/discussionitem_icon.gif delete mode 100644 skins/modern/document.png delete mode 100644 skins/modern/external.png delete mode 100644 skins/modern/file_icon.gif delete mode 100644 skins/modern/footer-grad.png delete mode 100644 skins/modern/link_icon.gif delete mode 100644 skins/modern/lock_icon.gif delete mode 100644 skins/modern/mail_icon.gif delete mode 100644 skins/modern/main.css delete mode 100644 skins/modern/news_icon.png delete mode 100644 skins/modern/print.css delete mode 100644 skins/modern/video.png diff --git a/RELEASE-NOTES-1.24 b/RELEASE-NOTES-1.24 index 36efccc99c..f83ed469c3 100644 --- a/RELEASE-NOTES-1.24 +++ b/RELEASE-NOTES-1.24 @@ -91,6 +91,10 @@ changes to languages because of Bugzilla reports. * Added pp_sortkey column to page_props table, so pages can be efficiently queried and sorted by property value (bug 58032). See $wgPagePropsHaveSortkey if you want to postpone the schema change. +* BREAKING CHANGE: The Modern and Cologne Blue skins were moved out of MediaWiki + core to their own respective repositories. See also + https://www.mediawiki.org/wiki/Skin:Modern and + https://www.mediawiki.org/wiki/Skin:CologneBlue. ==== Renamed classes ==== * CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 450112c319..69f0e2f8e3 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -1179,11 +1179,7 @@ $wgAutoloadLocalClasses = array( 'MyLocalSettingsGenerator' => 'mw-config/overrides.php', # skins - 'CologneBlueTemplate' => 'skins/CologneBlue.php', - 'ModernTemplate' => 'skins/Modern.php', 'MonoBookTemplate' => 'skins/MonoBook.php', - 'SkinCologneBlue' => 'skins/CologneBlue.php', - 'SkinModern' => 'skins/Modern.php', 'SkinMonoBook' => 'skins/MonoBook.php', 'SkinVector' => 'skins/Vector.php', 'VectorTemplate' => 'skins/Vector.php', diff --git a/includes/Skin.php b/includes/Skin.php index 1664c913bd..10502c2d01 100644 --- a/includes/Skin.php +++ b/includes/Skin.php @@ -82,7 +82,7 @@ abstract class Skin extends ContextSource { static function getSkinNameMessages() { $messages = array(); foreach ( self::getSkinNames() as $skinKey => $skinName ) { - // Messages: skinname-cologneblue, skinname-monobook, skinname-modern, skinname-vector + // Messages: skinname-vector, skinname-monobook $messages[] = "skinname-$skinKey"; } return $messages; diff --git a/includes/installer/LocalSettingsGenerator.php b/includes/installer/LocalSettingsGenerator.php index 4416aff863..5e89ca4aa9 100644 --- a/includes/installer/LocalSettingsGenerator.php +++ b/includes/installer/LocalSettingsGenerator.php @@ -351,7 +351,7 @@ ${serverSetting} \$wgUpgradeKey = \"{$this->values['wgUpgradeKey']}\"; ## Default skin: you can change the default skin. Use the internal symbolic -## names, ie 'cologneblue', 'monobook', 'vector': +## names, ie 'vector', 'monobook': \$wgDefaultSkin = \"{$this->values['wgDefaultSkin']}\"; ## For attaching licensing metadata to pages, and displaying an diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 27a08c46d2..2ed480e5c0 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -2471,9 +2471,7 @@ "interlanguage-link-title": "$1 – $2", "interlanguage-link-title-langonly": "$1", "common.css": "/* CSS placed here will be applied to all skins */", - "cologneblue.css": "/* CSS placed here will affect users of the Cologne Blue skin */", "monobook.css": "/* CSS placed here will affect users of the MonoBook skin */", - "modern.css": "/* CSS placed here will affect users of the Modern skin */", "vector.css": "/* CSS placed here will affect users of the Vector skin */", "print.css": "/* CSS placed here will affect the print output */", "noscript.css": "/* CSS placed here will affect users with JavaScript disabled */", @@ -2483,9 +2481,7 @@ "group-sysop.css": "/* CSS placed here will affect sysops only */", "group-bureaucrat.css": "/* CSS placed here will affect bureaucrats only */", "common.js": "/* Any JavaScript here will be loaded for all users on every page load. */", - "cologneblue.js": "/* Any JavaScript here will be loaded for users using the Cologne Blue skin */", "monobook.js": "/* Any JavaScript here will be loaded for users using the MonoBook skin */", - "modern.js": "/* Any JavaScript here will be loaded for users using the Modern skin */", "vector.js": "/* Any JavaScript here will be loaded for users using the Vector skin */", "group-autoconfirmed.js": "/* Any JavaScript here will be loaded for autoconfirmed users only */", "group-user.js": "/* Any JavaScript here will be loaded for registered users only */", @@ -2558,9 +2554,7 @@ "pageinfo-category-pages": "Number of pages", "pageinfo-category-subcats": "Number of subcategories", "pageinfo-category-files": "Number of files", - "skinname-cologneblue": "Cologne Blue", "skinname-monobook": "MonoBook", - "skinname-modern": "Modern", "skinname-vector": "Vector", "markaspatrolleddiff": "Mark as patrolled", "markaspatrolledlink": "[$1]", diff --git a/maintenance/dictionary/mediawiki.dic b/maintenance/dictionary/mediawiki.dic index bf13c38050..f555113b5e 100644 --- a/maintenance/dictionary/mediawiki.dic +++ b/maintenance/dictionary/mediawiki.dic @@ -939,7 +939,6 @@ collapsable collectionsaveascommunitypage collectionsaveasuserpage colname -cologneblue colonseparator colorer colspan diff --git a/resources/Resources.php b/resources/Resources.php index 9a13423cad..f3528bd37c 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -152,22 +152,6 @@ return array( * * See Vector for an example. */ - 'skins.cologneblue' => array( - 'styles' => array( - 'cologneblue/screen.css' => array( 'media' => 'screen' ), - 'cologneblue/print.css' => array( 'media' => 'print' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'skins.modern' => array( - 'styles' => array( - 'modern/main.css' => array( 'media' => 'screen' ), - 'modern/print.css' => array( 'media' => 'print' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), 'skins.vector.styles' => array( // Used in the web installer. Test it after modifying this definition! 'styles' => array( diff --git a/skins/.gitignore b/skins/.gitignore index 967fd9f427..3ab8af25b8 100644 --- a/skins/.gitignore +++ b/skins/.gitignore @@ -1,17 +1,11 @@ */ -!cologneblue/ -!cologneblue/* !common/ !common/* -!modern/ -!modern/* !monobook/ !monobook/* !vector/ !vector/* *.php -!CologneBlue.php -!Modern.php !MonoBook.php !Vector.php diff --git a/skins/CologneBlue.php b/skins/CologneBlue.php deleted file mode 100644 index ad500ea422..0000000000 --- a/skins/CologneBlue.php +++ /dev/null @@ -1,650 +0,0 @@ -addModuleStyles( 'mediawiki.legacy.oldshared' ); - $out->addModuleStyles( 'skins.cologneblue' ); - } - - /** - * Override langlink formatting behavior not to uppercase the language names. - * See otherLanguages() in CologneBlueTemplate. - * @param string $name - * @return string - */ - function formatLanguageName( $name ) { - return $name; - } -} - -class CologneBlueTemplate extends BaseTemplate { - function execute() { - // Suppress warnings to prevent notices about missing indexes in $this->data - wfSuppressWarnings(); - $this->html( 'headelement' ); - echo $this->beforeContent(); - $this->html( 'bodytext' ); - echo "\n"; - echo $this->afterContent(); - $this->html( 'dataAfterContent' ); - $this->printTrail(); - echo "\n"; - wfRestoreWarnings(); - } - - /** - * Language/charset variant links for classic-style skins - * @return string - */ - function variantLinks() { - $s = array(); - - $variants = $this->data['content_navigation']['variants']; - - foreach ( $variants as $key => $link ) { - $s[] = $this->makeListItem( $key, $link, array( 'tag' => 'span' ) ); - } - - return $this->getSkin()->getLanguage()->pipeList( $s ); - } - - function otherLanguages() { - global $wgHideInterlanguageLinks; - if ( $wgHideInterlanguageLinks ) { - return ""; - } - - $html = ''; - - // We override SkinTemplate->formatLanguageName() in SkinCologneBlue - // not to capitalize the language names. - $language_urls = $this->data['language_urls']; - if ( !empty( $language_urls ) ) { - $s = array(); - foreach ( $language_urls as $key => $data ) { - $s[] = $this->makeListItem( $key, $data, array( 'tag' => 'span' ) ); - } - - $html = wfMessage( 'otherlanguages' )->text() - . wfMessage( 'colon-separator' )->text() - . $this->getSkin()->getLanguage()->pipeList( $s ); - } - - $html .= $this->renderAfterPortlet( 'lang' ); - - return $html; - } - - /** - * @param string $name - */ - protected function renderAfterPortlet( $name ) { - $content = ''; - wfRunHooks( 'BaseTemplateAfterPortlet', array( $this, $name, &$content ) ); - - $html = $content !== '' ? "
$content
" : ''; - - return $html; - } - - function pageTitleLinks() { - $s = array(); - $footlinks = $this->getFooterLinks(); - - foreach ( $footlinks['places'] as $item ) { - $s[] = $this->data[$item]; - } - - return $this->getSkin()->getLanguage()->pipeList( $s ); - } - - /** - * Used in bottomLinks() to eliminate repetitive code. - * - * @param string $key Key to be passed to makeListItem() - * @param array $navlink Navlink suitable for processNavlinkForDocument() - * @param string $message Key of the message to use in place of standard text - * - * @return string - */ - function processBottomLink( $key, $navlink, $message = null ) { - if ( !$navlink ) { - // Empty navlinks might be passed. - return null; - } - - if ( $message ) { - $navlink['text'] = wfMessage( $message )->escaped(); - } - - return $this->makeListItem( - $key, - $this->processNavlinkForDocument( $navlink ), - array( 'tag' => 'span' ) - ); - } - - function bottomLinks() { - $toolbox = $this->getToolbox(); - $content_nav = $this->data['content_navigation']; - - $lines = array(); - - if ( $this->getSkin()->getOutput()->isArticleRelated() ) { - // First row. Regular actions. - $element = array(); - - $editLinkMessage = $this->getSkin()->getTitle()->exists() ? 'editthispage' : 'create-this-page'; - $element[] = $this->processBottomLink( 'edit', $content_nav['views']['edit'], $editLinkMessage ); - $element[] = $this->processBottomLink( - 'viewsource', - $content_nav['views']['viewsource'], - 'viewsource' - ); - - $element[] = $this->processBottomLink( - 'watch', - $content_nav['actions']['watch'], - 'watchthispage' - ); - $element[] = $this->processBottomLink( - 'unwatch', - $content_nav['actions']['unwatch'], - 'unwatchthispage' - ); - - $element[] = $this->talkLink(); - - $element[] = $this->processBottomLink( 'history', $content_nav['views']['history'], 'history' ); - $element[] = $this->processBottomLink( 'info', $toolbox['info'] ); - $element[] = $this->processBottomLink( 'whatlinkshere', $toolbox['whatlinkshere'] ); - $element[] = $this->processBottomLink( 'recentchangeslinked', $toolbox['recentchangeslinked'] ); - - $element[] = $this->processBottomLink( 'contributions', $toolbox['contributions'] ); - $element[] = $this->processBottomLink( 'emailuser', $toolbox['emailuser'] ); - - $lines[] = $this->getSkin()->getLanguage()->pipeList( array_filter( $element ) ); - - // Second row. Privileged actions. - $element = array(); - - $element[] = $this->processBottomLink( - 'delete', - $content_nav['actions']['delete'], - 'deletethispage' - ); - $element[] = $this->processBottomLink( - 'undelete', - $content_nav['actions']['undelete'], - 'undeletethispage' - ); - - $element[] = $this->processBottomLink( - 'protect', - $content_nav['actions']['protect'], - 'protectthispage' - ); - $element[] = $this->processBottomLink( - 'unprotect', - $content_nav['actions']['unprotect'], - 'unprotectthispage' - ); - - $element[] = $this->processBottomLink( 'move', $content_nav['actions']['move'], 'movethispage' ); - - $lines[] = $this->getSkin()->getLanguage()->pipeList( array_filter( $element ) ); - - // Third row. Language links. - $lines[] = $this->otherLanguages(); - } - - return implode( array_filter( $lines ), "
\n" ) . "
\n"; - } - - function talkLink() { - $title = $this->getSkin()->getTitle(); - - if ( $title->getNamespace() == NS_SPECIAL ) { - // No discussion links for special pages - return ""; - } - - $companionTitle = $title->isTalkPage() ? $title->getSubjectPage() : $title->getTalkPage(); - $companionNamespace = $companionTitle->getNamespace(); - - // TODO these messages are only be used by CologneBlue, - // kill and replace with something more sensibly named? - $nsToMessage = array( - NS_MAIN => 'articlepage', - NS_USER => 'userpage', - NS_PROJECT => 'projectpage', - NS_FILE => 'imagepage', - NS_MEDIAWIKI => 'mediawikipage', - NS_TEMPLATE => 'templatepage', - NS_HELP => 'viewhelppage', - NS_CATEGORY => 'categorypage', - NS_FILE => 'imagepage', - ); - - // Find out the message to use for link text. Use either the array above or, - // for non-talk pages, a generic "discuss this" message. - // Default is the same as for main namespace. - if ( isset( $nsToMessage[$companionNamespace] ) ) { - $message = $nsToMessage[$companionNamespace]; - } else { - $message = $companionTitle->isTalkPage() ? 'talkpage' : 'articlepage'; - } - - // Obviously this can't be reasonable and just return the key for talk - // namespace, only for content ones. Thus we have to mangle it in - // exactly the same way SkinTemplate does. (bug 40805) - $key = $companionTitle->getNamespaceKey( '' ); - if ( $companionTitle->isTalkPage() ) { - $key = ( $key == 'main' ? 'talk' : $key . "_talk" ); - } - - // Use the regular navigational link, but replace its text. Everything else stays unmodified. - $namespacesLinks = $this->data['content_navigation']['namespaces']; - - return $this->processBottomLink( $message, $namespacesLinks[$key], $message ); - } - - /** - * Takes a navigational link generated by SkinTemplate in whichever way - * and mangles attributes unsuitable for repeated use. In particular, this - * modifies the ids and removes the accesskeys. This is necessary to be - * able to use the same navlink twice, e.g. in sidebar and in footer. - * - * @param array $navlink Navigational link generated by SkinTemplate - * @param mixed $idPrefix Prefix to add to id of this navlink. If false, id - * is removed entirely. Default is 'cb-'. - */ - function processNavlinkForDocument( $navlink, $idPrefix = 'cb-' ) { - if ( $navlink['id'] ) { - $navlink['single-id'] = $navlink['id']; // to allow for tooltip generation - $navlink['tooltiponly'] = true; // but no accesskeys - - // mangle or remove the id - if ( $idPrefix === false ) { - unset( $navlink['id'] ); - } else { - $navlink['id'] = $idPrefix . $navlink['id']; - } - } - - return $navlink; - } - - /** - * @return string - */ - function beforeContent() { - ob_start(); - ?> -
-
- - -

escaped() ?>

- - -
-
- getSkin()->getSiteNotice() ) { - ?> -
getSkin()->getSiteNotice() ?>
- -

data['title'] ?>

- translator->translate( 'tagline' ) ) { - ?> -

translator->translate( 'tagline' ) ) - ?>

- - getSkin()->getOutput()->getSubtitle() ) { - ?> -

getSkin()->getOutput()->getSubtitle() ?>

- - getSkin()->subPageSubtitle() ) { - ?> -

getSkin()->subPageSubtitle() ?>

- - -
- -
-
-

escaped() ?>

- - - quickBar() ?> -
- getSkin()->mainPageLink(), - Linker::linkKnown( - Title::newFromText( wfMessage( 'aboutpage' )->inContentLanguage()->text() ), - wfMessage( 'about' )->text() - ), - Linker::makeExternalLink( - Skin::makeInternalOrExternalUrl( wfMessage( 'helppage' )->inContentLanguage()->text() ), - wfMessage( 'help' )->text(), - false - ), - Linker::linkKnown( - Title::newFromText( wfMessage( 'faqpage' )->inContentLanguage()->text() ), - wfMessage( 'faq' )->text() - ), - ); - - $personalUrls = $this->getPersonalTools(); - foreach ( array( 'logout', 'createaccount', 'login' ) as $key ) { - if ( $personalUrls[$key] ) { - $s[] = $this->makeListItem( $key, $personalUrls[$key], array( 'tag' => 'span' ) ); - } - } - - return $this->getSkin()->getLanguage()->pipeList( $s ); - } - - /** - * Adds CologneBlue-specific items to the sidebar: qbedit, qbpageoptions and qbmyoptions menus. - * - * @param array $bar Sidebar data - * @return array Modified sidebar data - */ - function sidebarAdditions( $bar ) { - // "This page" and "Edit" menus - // We need to do some massaging here... we reuse all of the items, - // except for $...['views']['view'], as $...['namespaces']['main'] and - // $...['namespaces']['talk'] together serve the same purpose. We also - // don't use $...['variants'], these are displayed in the top menu. - $content_navigation = $this->data['content_navigation']; - $qbpageoptions = array_merge( - $content_navigation['namespaces'], - array( - 'history' => $content_navigation['views']['history'], - 'watch' => $content_navigation['actions']['watch'], - 'unwatch' => $content_navigation['actions']['unwatch'], - ) - ); - $content_navigation['actions']['watch'] = null; - $content_navigation['actions']['unwatch'] = null; - $qbedit = array_merge( - array( - 'edit' => $content_navigation['views']['edit'], - 'addsection' => $content_navigation['views']['addsection'], - ), - $content_navigation['actions'] - ); - - // Personal tools ("My pages") - $qbmyoptions = $this->getPersonalTools(); - foreach ( array( 'logout', 'createaccount', 'login', ) as $key ) { - $qbmyoptions[$key] = null; - } - - // Use the closest reasonable name - $bar['cactions'] = $qbedit; - $bar['pageoptions'] = $qbpageoptions; // this is a non-standard portlet name, but nothing fits - $bar['personal'] = $qbmyoptions; - - return $bar; - } - - /** - * Compute the sidebar - * @access private - * - * @return string - */ - function quickBar() { - // Massage the sidebar. We want to: - // * place SEARCH at the beginning - // * add new portlets before TOOLBOX (or at the end, if it's missing) - // * remove LANGUAGES (langlinks are displayed elsewhere) - $orig_bar = $this->data['sidebar']; - $bar = array(); - $hasToolbox = false; - - // Always display search first - $bar['SEARCH'] = true; - // Copy everything except for langlinks, inserting new items before toolbox - foreach ( $orig_bar as $heading => $data ) { - if ( $heading == 'TOOLBOX' ) { - // Insert the stuff - $bar = $this->sidebarAdditions( $bar ); - $hasToolbox = true; - } - - if ( $heading != 'LANGUAGES' ) { - $bar[$heading] = $data; - } - } - // If toolbox is missing, add our items at the end - if ( !$hasToolbox ) { - $bar = $this->sidebarAdditions( $bar ); - } - - // Fill out special sidebar items with content - $orig_bar = $bar; - $bar = array(); - foreach ( $orig_bar as $heading => $data ) { - if ( $heading == 'SEARCH' ) { - $bar['search'] = $this->searchForm( 'sidebar' ); - } elseif ( $heading == 'TOOLBOX' ) { - $bar['tb'] = $this->getToolbox(); - } else { - $bar[$heading] = $data; - } - } - - // Output the sidebar - // CologneBlue uses custom messages for some portlets, but we should keep the ids for consistency - $idToMessage = array( - 'search' => 'qbfind', - 'navigation' => 'qbbrowse', - 'tb' => 'toolbox', - 'cactions' => 'qbedit', - 'personal' => 'qbmyoptions', - 'pageoptions' => 'qbpageoptions', - ); - - $s = "
\n"; - - foreach ( $bar as $heading => $data ) { - $portletId = Sanitizer::escapeId( "p-$heading" ); - $headingMsg = wfMessage( $idToMessage[$heading] ? $idToMessage[$heading] : $heading ); - $headingHTML = "

"; - $headingHTML .= $headingMsg->exists() - ? $headingMsg->escaped() - : htmlspecialchars( $heading ); - $headingHTML .= "

"; - $listHTML = ""; - - if ( is_array( $data ) ) { - // $data is an array of links - foreach ( $data as $key => $link ) { - // Can be empty due to how the sidebar additions are done - if ( $link ) { - $listHTML .= $this->makeListItem( $key, $link ); - } - } - if ( $listHTML ) { - $listHTML = ""; - } - } else { - // $data is a HTML
\n"; - - return $s; - } - - /** - * @param string $label - * @return string - */ - function searchForm( $which ) { - global $wgUseTwoButtonsSearchForm; - - $search = $this->getSkin()->getRequest()->getText( 'search' ); - $action = $this->data['searchaction']; - $s = "
"; - if ( $which == 'footer' ) { - $s .= wfMessage( 'qbfind' )->text() . ": "; - } - - $s .= $this->makeSearchInput( array( - 'class' => 'mw-searchInput', - 'type' => 'text', - 'size' => '14' - ) ); - $s .= ( $which == 'footer' ? " " : "
" ); - $s .= $this->makeSearchButton( 'go', array( 'class' => 'searchButton' ) ); - - if ( $wgUseTwoButtonsSearchForm ) { - $s .= $this->makeSearchButton( 'fulltext', array( 'class' => 'searchButton' ) ); - } else { - $s .= '
\n"; - } - - $s .= '
'; - - return $s; - } -} diff --git a/skins/Modern.php b/skins/Modern.php deleted file mode 100644 index d1d11c36a2..0000000000 --- a/skins/Modern.php +++ /dev/null @@ -1,207 +0,0 @@ -addModuleStyles( 'skins.modern' ); - } -} - -/** - * @todo document - * @ingroup Skins - */ -class ModernTemplate extends MonoBookTemplate { - - /** - * Template filter callback for Modern skin. - * Takes an associative array of data set from a SkinTemplate-based - * class, and a wrapper for MediaWiki's localization database, and - * outputs a formatted page. - * - * @access private - */ - function execute() { - // Suppress warnings to prevent notices about missing indexes in $this->data - wfSuppressWarnings(); - - $this->html( 'headelement' ); - ?> - - -

html( 'title' ) ?>

- -
-
- - cactions(); ?> - - -
- -
-
- -
msg( 'tagline' ) ?>
- data['newtalk'] ) { - ?> -
html( 'newtalk' ) ?>
- - data['sitenotice'] ) { - ?> -
html( 'sitenotice' ) ?>
- -
- -
html( 'userlangattributes' ) - ?>>html( 'subtitle' ) - ?>
- - data['undelete'] ) { - ?> -
html( 'undelete' ) ?>
-
msg( 'jumpto' ) ?> - msg( 'jumptonavigation' ) ?>msg( 'comma-separator' ) - ?> - msg( 'jumptosearch' ) ?> -
- - html( 'bodytext' ) ?> -
- data['catlinks'] ) { - $this->html( 'catlinks' ); - } - ?> - html( 'dataAfterContent' ) ?> -
-
-
- -
html( "userlangattributes" ) ?>> -

msg( 'navigation-heading' ) ?>

- - - renderPortals( $this->data['sidebar'] ); ?> - -
- - -
- -
- - - - - - - - - printTrail(); ?> - - - - W8rUU$VjxfSRb22WQ%mvv4FO#rGcNfH16 diff --git a/skins/modern/bullet.gif b/skins/modern/bullet.gif deleted file mode 100644 index b43de48a4701e5123846ee5f0357b65065eca04a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50 zcmZ?wbhEHbWM$xGXkcJS?wRxd|9{1wEQ|~cj0`#qKmd|qVB+lQU%C4M|KgUF4AuZl Cg$<e4KpXQG};@9n0zwW&DZTIzWdv1I`eE9IGBbP27zkK-4kK^}#oVfqv?4uv& zAN{=i^w*VVzpg&}b?eoyyRU!Wd;RXm4%CqN2&d zFD=fuafySCxv`#>n!JpJFxP>l7AE>Ef(k60BHT;|rW@*LD9K8S@-Qf4g?PF+hE&|DJ>SU5pupi0Se~U0 zLc5e&&IhW6h{BqBd~ShVvv>@Jq9P@H!n@<7}?#T8fh m=iR%Y?|Fc4!mk76GI~D`XnAXW(wGG_pTX1B&t;ucLK6V<3ofew diff --git a/skins/modern/file_icon.gif b/skins/modern/file_icon.gif deleted file mode 100644 index 69dbeaf77b7a420ee34974d1b058bf6888f5100a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmZ?wbhEHb6krfwSgOI`=jZoda8h@7ckkX0E6#q|aPjM=%U^d~`?l-)x4k#N9k~7d z@SX3+?tMS`;K!MVKh8h?dGX25tIvO4dG_o2i=Ve%{<`z}*WK5@?!Wo<=-uxp?|(n} z@cY@vKQBN1dGqDZyRUygeE<9D``<4={(bxP@5k@|zyAFH{pbJRfB*me`%f*P_>+Z^ zfx(_ZhXDvceqvxtI55A!Lr1FLy|IYX;UCKi4X#^0Udu0L2}gvc~4FKl8)9U~L diff --git a/skins/modern/footer-grad.png b/skins/modern/footer-grad.png deleted file mode 100644 index 72b87247b249a032a9fadeafbe3c81569e82f4e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr60VEh?3s21jQWBmnjv*Yf$q5N7Qi2jDrA$f^ cN_mu+#LfWJ^>>PT!ZnauPgg&ebxsLQ0DxQ*8UO$Q diff --git a/skins/modern/link_icon.gif b/skins/modern/link_icon.gif deleted file mode 100644 index 168c1a2fe96248cec4162e6d9a59835983b9e2dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmZ?wbhEHb6krfwSgOxpRv=?lA?xSoXWJlW-y-KVSut>yO6Y90u(|3{^EKiY>ZB|; zOkZxCv&yVstySqp`?_r&VM~4{tofO<@n^y2pVhm6{ui9oveU17U)b~`X|s=J%{`X8 z_+)8!cX!*qpKH!EbshRO`{b|rr+=-w_-os>Upue;I&ts!&F7~tKmL2;#ot%2UOjpD z@5TFnAHM$k_VeF=(t+Yn7DfgJdj=f_AOQJ^fvxz!`~nXhseX^dbWM+c(>PmJs$@u6 zb00rEu}Fg}Ea`dS!I&_CHpMkEu|_iDuP+(!+>i~){G7SgFH5vSO;c4$RZ~q)SfoN# yO+Z{gQAJ5kD94|RhnI&-Nuf8Km5rT^RZc{3rk5-WGb2N&pKRzFza2Xq8LR=FSFhFp diff --git a/skins/modern/lock_icon.gif b/skins/modern/lock_icon.gif deleted file mode 100644 index 8284403306ce5243ffd783b8d4dd3b90d37f2cce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmZ?wbhEHb6kygqaky7k&s78}-D?A&I)Z>QO@L#8K>np`|*eD{X({oDFi zE*RgsW_bIC;e*=-5AFbw(b-ecPae2GdEoWzQPlG%u`iyaPntAo(V|7`)~&m7ZO+@* z-S6Kn{P1r1M_wNsX|9<)Z@9%%g zfZ|UUMg|6Z1|0?<0Qrf5E$+blfEk)%?I#k`mN@mAG%P9F!W3aSafL~6Xwa6EJ)Cm_ z8zy=eJs */ -table#toc td, -table.toc td { - padding: 0; -} - -#toc tr, #toc td { - margin: 0 0 0 0; - padding: 0 0 0 0; -} - -#toctitle { - border-bottom: solid 1px #3c78b5; - background-color: #dddddd; - margin: 0 0 0 0; -} - -#toc h2, -.toc h2 { - display: inline; - border: none; - padding: 0; - font-size: 100%; - font-weight: bold; -} - -#toc #toctitle, -.toc #toctitle, -#toc .toctitle, -.toc .toctitle { - text-align: center; -} - -#toc ul, -.toc ul { - list-style-type: none; - list-style-image: none; - margin: 0 1em 0 1em; - padding: 0; - text-align: left; -} - -#toc ul ul, -.toc ul ul { - margin: 0 0 0 2em; -} - -#toc .toctoggle, -.toc .toctoggle { - font-size: 94%; -} - -.mw-warning { - margin-left: 50px; - margin-right: 50px; - text-align: center; -} - -.catlinks { - border: solid 1px #bbbbbb; - background-color: #f0f0f0; - padding: 0.1em 0.3em 0.1em 0.3em; - margin: 0 0 0 0; -} - -#mw_header h1, -#p-personal, -#p-cactions { - overflow: hidden; -} - -/* disable interwiki styling */ -#mw_content a.extiw, -#mw_content a.extiw:active { - color: #36b; -} - -#mw_content a.external { - color: #36b; -} - -.redirectText { - font-size: 150%; - margin: 5px; -} - -.printfooter { - display: none; -} - -.sharedUploadNotice { - font-style: italic; -} - -span.updatedmarker { - color: black; - background-color: #0f0; -} - -.previewnote { - text-indent: 3em; - color: #c00; - border-bottom: 1px solid #aaa; - padding-bottom: 1em; - margin-bottom: 1em; -} - -.previewnote p { - margin: 0; - padding: 0; -} - -.editExternally { - border: 1px solid gray; - background-color: #ffffff; - padding: 3px; - margin-top: 0.5em; - float: left; - font-size: small; - text-align: center; -} - -.editExternallyHelp { - font-style: italic; - color: gray; -} - -.toggle { - margin-left: 2em; - text-indent: -2em; -} - -table.collapsed tr.collapsable { - display: none; -} - -input#wpSummary { - width: 80%; -} - -/* @bug 1714 */ -input#wpSave, input#wpDiff { - margin-right: 0.33em; -} - -#wpSave { - font-weight: bold; -} - -/* noarticletext */ -div.noarticletext { - border: 1px solid #ccc; - background: #fff; - padding: .2em 1em; - color: #000; -} - -div#searchTargetContainer { - left: 10px; - top: 10px; - width: 90%; - background: white; -} - -div#searchTarget { - padding: 3px; - margin: 5px; - background: #F0F0F0; - border: solid 1px blue; -} - -div#searchTarget ul li { - list-style: none; -} - -div#searchTarget ul li:before { - color: orange; - content: "\00BB \0020"; -} - -div#searchTargetHide { - float: right; - border: solid 1px black; - background: #DCDCDC; - padding: 2px; -} - -div.multipageimagenavbox { - border: solid 1px silver; - padding: 4px; - margin: 1em; - background: #f0f0f0; -} - -div.multipageimagenavbox div.thumb { - border: none; - margin-left: 2em; - margin-right: 2em; -} - -div.multipageimagenavbox hr { - margin: 6px; -} - -table.multipageimage td { - text-align: center; -} - -.templatesUsed { - margin-top: 1.5em; -} - -.mw-summary-preview { - margin: 0.1em 0; -} - -/* Friendlier slave lag warnings */ -div.mw-lag-warn-normal, -div.mw-lag-warn-high { - padding: 3px; - text-align: center; - margin: 3px auto; -} - -div.mw-lag-warn-normal { - border: 1px solid #FFCC66; - background-color: #FFFFCC; -} - -div.mw-lag-warn-high { - font-weight: bold; - border: 2px solid #FF0033; - background-color: #FFCCCC; -} - -.MediaTransformError { - background-color: #ccc; - padding: 0.1em; -} - -.MediaTransformError td { - text-align: center; - vertical-align: middle; - font-size: 90%; -} - -ul { - line-height: 1.5em; - list-style-type: square; - margin: .3em 0 0 1.5em; - padding: 0; - /* @embed */ - list-style-image: url(bullet.gif); -} - -ol { - line-height: 1.5em; - margin: .3em 0 0 3.2em; - padding: 0; - list-style-image: none; -} - -li { - margin-bottom: .1em; -} - -dt { - font-weight: bold; - margin-bottom: .1em; -} - -dl { - margin-top: .2em; - margin-bottom: .5em; -} - -#p-cactions li.new a { - color: #cc2200; -} - -span.subpages { - font-size: 80%; - display: block; -} - -pre, .mw-code { - border: solid 1px #3c78b5; - padding: 0.4em; - background-color: #f0f0f0; -} - -.usermessage { - background-color: #dadaff; -} - -.mw-topboxes { - border-collapse: collapse; - margin: 0 -1em 1em -1em; - padding: 0 0 8px 0; - /* @embed */ - background: url(footer-grad.png) repeat-x bottom left; -} - -.mw-topbox p { - padding: 0 0 0 0; - margin: 0 0 0 0; -} - -.mw-topbox { - color: black; - font-weight: bold; - margin: 0 0 0 0; - padding: 0 1em 0 1em; - vertical-align: middle; - border-collapse: collapse; - border-bottom: solid 1px #bbbbbb; -} - -#siteSub { - background-color: #dddddd; -} - -/* emulate center */ -.center { - width: 100%; - text-align: center; -} - -*.center * { - margin-left: auto; - margin-right: auto; -} - -/* table standards */ -.toccolours { - border: 1px solid #bbbbbb; - background-color: #f0f0f0; - border-spacing: 0pt; - margin: 0pt; - padding: 0pt; -} - -/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */ -.tipsy { - font-size: 130%; -} - -/** - * Lists: - * The following lines don't have a visible effect on non-Gecko browsers - * They fix a problem ith Gecko browsers rendering lists to the right of - * left-floated objects in an RTL layout. - */ -/* @noflip */ -html > body.rtl div#mw_contentholder ul { - display: table; -} - -/* @noflip */ -html > body.rtl div#mw_contentholder ul#filetoc { - display: block; -} diff --git a/skins/modern/news_icon.png b/skins/modern/news_icon.png deleted file mode 100644 index 4d3cb476840cb794214424d62c0f89eb7a54ef82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmV+%0ptFOP)a6dGYc0{WrfpCHjAG(Z`~Jc!wc05a}@N8t^y_MMKKM zr%jt*0Z9mY{rS(sx4*7E`vFw_&RhYZ0mwqO0ogIPUV74*S{b%04YoxfQ-AZ zeqMb1{p7uG`)+*McKI_@10=8@8X!*p^!@M4PavlQ9dqjbw?ntS?!5YWUtj! -- 2.20.1