* 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
'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',
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;
\$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
"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 */",
"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 */",
"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]",
collectionsaveascommunitypage
collectionsaveasuserpage
colname
-cologneblue
colonseparator
colorer
colspan
*
* 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(
*/
-!cologneblue/
-!cologneblue/*
!common/
!common/*
-!modern/
-!modern/*
!monobook/
!monobook/*
!vector/
!vector/*
*.php
-!CologneBlue.php
-!Modern.php
!MonoBook.php
!Vector.php
+++ /dev/null
-<?php
-/**
- * Cologne Blue: A nicer-looking alternative to Standard.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @todo document
- * @file
- * @ingroup Skins
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( -1 );
-}
-
-/**
- * @todo document
- * @ingroup Skins
- */
-class SkinCologneBlue extends SkinTemplate {
- public $skinname = 'cologneblue';
- public $stylename = 'cologneblue';
- public $template = 'CologneBlueTemplate';
- public $useHeadElement = true;
-
- /**
- * @param OutputPage $out
- */
- function setupSkinUserCss( OutputPage $out ) {
- parent::setupSkinUserCss( $out );
- $out->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</body></html>";
- 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 !== '' ? "<div class='after-portlet after-portlet-$name'>$content</div>" : '';
-
- 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 ), "<br />\n" ) . "<br />\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();
- ?>
- <div id="content">
- <div id="topbar">
- <p id="sitetitle" role="banner">
- <a href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>">
- <?php echo wfMessage( 'sitetitle' )->escaped() ?>
- </a>
- </p>
-
- <p id="sitesub"><?php echo wfMessage( 'sitesubtitle' )->escaped() ?></p>
-
- <div id="linkcollection" role="navigation">
- <div id="langlinks"><?php echo str_replace( '<br />', '', $this->otherLanguages() ) ?></div>
- <?php echo $this->getSkin()->getCategories() ?>
- <div id="titlelinks"><?php echo $this->pageTitleLinks() ?></div>
- <?php
- if ( $this->data['newtalk'] ) {
- ?>
- <div class="usermessage"><strong><?php echo $this->data['newtalk'] ?></strong></div>
- <?php
- }
- ?>
- </div>
- </div>
- <div id="article" class="mw-body" role="main">
- <?php
- if ( $this->getSkin()->getSiteNotice() ) {
- ?>
- <div id="siteNotice"><?php echo $this->getSkin()->getSiteNotice() ?></div>
- <?php
- }
- ?>
- <h1 id="firstHeading" lang="<?php
- $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
- $this->text( 'pageLanguage' );
- ?>"><span dir="auto"><?php echo $this->data['title'] ?></span></h1>
- <?php
- if ( $this->translator->translate( 'tagline' ) ) {
- ?>
- <p class="tagline"><?php
- echo htmlspecialchars( $this->translator->translate( 'tagline' ) )
- ?></p>
- <?php
- }
- ?>
- <?php
- if ( $this->getSkin()->getOutput()->getSubtitle() ) {
- ?>
- <p class="subtitle"><?php echo $this->getSkin()->getOutput()->getSubtitle() ?></p>
- <?php
- }
- ?>
- <?php
- if ( $this->getSkin()->subPageSubtitle() ) {
- ?>
- <p class="subpages"><?php echo $this->getSkin()->subPageSubtitle() ?></p>
- <?php
- }
- ?>
- <?php
- $s = ob_get_contents();
- ob_end_clean();
-
- return $s;
- }
-
- /**
- * @return string
- */
- function afterContent() {
- ob_start();
- ?>
- </div>
- <div id="footer">
- <div id="footer-navigation" role="navigation">
- <?php
- // Page-related links
- echo $this->bottomLinks();
- echo "\n<br />";
-
- // Footer and second searchbox
- echo $this->getSkin()->getLanguage()->pipeList( array(
- $this->getSkin()->mainPageLink(),
- $this->getSkin()->aboutLink(),
- $this->searchForm( 'footer' )
- ) );
- ?>
- </div>
- <div id="footer-info" role="contentinfo">
- <?php
- // Standard footer info
- $footlinks = $this->getFooterLinks();
- if ( $footlinks['info'] ) {
- foreach ( $footlinks['info'] as $item ) {
- echo $this->data[$item] . ' ';
- }
- }
- ?>
- </div>
- </div>
- </div>
- <div id="mw-navigation">
- <h2><?php echo wfMessage( 'navigation-heading' )->escaped() ?></h2>
-
- <div id="toplinks" role="navigation">
- <p id="syslinks"><?php echo $this->sysLinks() ?></p>
-
- <p id="variantlinks"><?php echo $this->variantLinks() ?></p>
- </div>
- <?php echo $this->quickBar() ?>
- </div>
- <?php
- $s = ob_get_contents();
- ob_end_clean();
-
- return $s;
- }
-
- /**
- * @return string
- */
- function sysLinks() {
- $s = array(
- $this->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 = "<div id='quickbar'>\n";
-
- foreach ( $bar as $heading => $data ) {
- $portletId = Sanitizer::escapeId( "p-$heading" );
- $headingMsg = wfMessage( $idToMessage[$heading] ? $idToMessage[$heading] : $heading );
- $headingHTML = "<h3>";
- $headingHTML .= $headingMsg->exists()
- ? $headingMsg->escaped()
- : htmlspecialchars( $heading );
- $headingHTML .= "</h3>";
- $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 = "<ul>$listHTML</ul>";
- }
- } else {
- // $data is a HTML <ul>-list string
- $listHTML = $data;
- }
-
- if ( $listHTML ) {
- $role = ( $heading == 'search' ) ? 'search' : 'navigation';
- $s .= "<div class=\"portlet\" id=\"$portletId\" "
- . "role=\"$role\">\n$headingHTML\n$listHTML\n</div>\n";
- }
-
- $s .= $this->renderAfterPortlet( $heading );
- }
-
- $s .= "</div>\n";
-
- return $s;
- }
-
- /**
- * @param string $label
- * @return string
- */
- function searchForm( $which ) {
- global $wgUseTwoButtonsSearchForm;
-
- $search = $this->getSkin()->getRequest()->getText( 'search' );
- $action = $this->data['searchaction'];
- $s = "<form id=\"searchform-" . htmlspecialchars( $which )
- . "\" method=\"get\" class=\"inline\" action=\"$action\">";
- if ( $which == 'footer' ) {
- $s .= wfMessage( 'qbfind' )->text() . ": ";
- }
-
- $s .= $this->makeSearchInput( array(
- 'class' => 'mw-searchInput',
- 'type' => 'text',
- 'size' => '14'
- ) );
- $s .= ( $which == 'footer' ? " " : "<br />" );
- $s .= $this->makeSearchButton( 'go', array( 'class' => 'searchButton' ) );
-
- if ( $wgUseTwoButtonsSearchForm ) {
- $s .= $this->makeSearchButton( 'fulltext', array( 'class' => 'searchButton' ) );
- } else {
- $s .= '<div><a href="' . $action . '" rel="search">'
- . wfMessage( 'powersearch-legend' )->escaped() . "</a></div>\n";
- }
-
- $s .= '</form>';
-
- return $s;
- }
-}
+++ /dev/null
-<?php
-/**
- * Modern skin, derived from monobook template.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @todo document
- * @file
- * @ingroup Skins
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( -1 );
-}
-
-/**
- * Inherit main code from SkinTemplate, set the CSS and template filter.
- * @todo document
- * @ingroup Skins
- */
-class SkinModern extends SkinTemplate {
- public $skinname = 'modern';
- public $stylename = 'modern';
- public $template = 'ModernTemplate';
- public $useHeadElement = true;
-
- /**
- * @param OutputPage $out
- */
- function setupSkinUserCss( OutputPage $out ) {
- parent::setupSkinUserCss( $out );
- $out->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' );
- ?>
-
- <!-- heading -->
- <div id="mw_header"><h1 id="firstHeading" lang="<?php
- $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
- $this->text( 'pageLanguage' );
- ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1></div>
-
- <div id="mw_main">
- <div id="mw_contentwrapper">
- <!-- navigation portlet -->
- <?php $this->cactions(); ?>
-
- <!-- content -->
- <div id="mw_content" role="main">
- <!-- contentholder does nothing by default, but it allows users to style the text inside
- the content area without affecting the meaning of 'em' in #mw_content, which is used
- for the margins -->
- <div id="mw_contentholder" class="mw-body">
- <div class='mw-topboxes'>
- <div id="mw-js-message"
- style="display:none;"<?php $this->html( 'userlangattributes' ) ?>></div>
- <div class="mw-topbox" id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
- <?php
- if ( $this->data['newtalk'] ) {
- ?>
- <div class="usermessage mw-topbox"><?php $this->html( 'newtalk' ) ?></div>
- <?php
- }
- ?>
- <?php
- if ( $this->data['sitenotice'] ) {
- ?>
- <div class="mw-topbox" id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div>
- <?php
- }
- ?>
- </div>
-
- <div id="contentSub"<?php
- $this->html( 'userlangattributes' )
- ?>><?php
- $this->html( 'subtitle' )
- ?></div>
-
- <?php
- if ( $this->data['undelete'] ) {
- ?>
- <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div><?php
- }
- ?>
- <div id="jump-to-nav"><?php $this->msg( 'jumpto' ) ?>
- <a href="#mw_portlets"><?php
- $this->msg( 'jumptonavigation' ) ?></a><?php $this->msg( 'comma-separator' )
- ?>
- <a href="#searchInput"><?php $this->msg( 'jumptosearch' ) ?></a>
- </div>
-
- <?php $this->html( 'bodytext' ) ?>
- <div class='mw_clear'></div>
- <?php
- if ( $this->data['catlinks'] ) {
- $this->html( 'catlinks' );
- }
- ?>
- <?php $this->html( 'dataAfterContent' ) ?>
- </div><!-- mw_contentholder -->
- </div><!-- mw_content -->
- </div><!-- mw_contentwrapper -->
-
- <div id="mw_portlets"<?php $this->html( "userlangattributes" ) ?>>
- <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
-
- <!-- portlets -->
- <?php $this->renderPortals( $this->data['sidebar'] ); ?>
-
- </div><!-- mw_portlets -->
-
-
- </div><!-- main -->
-
- <div class="mw_clear"></div>
-
- <!-- personal portlet -->
- <div class="portlet" id="p-personal" role="navigation">
- <h3><?php $this->msg( 'personaltools' ) ?></h3>
-
- <div class="pBody">
- <ul>
- <?php
- foreach ( $this->getPersonalTools() as $key => $item ) {
- ?>
- <?php echo $this->makeListItem( $key, $item ); ?>
-
- <?php
- }
- ?>
- </ul>
- </div>
- </div>
-
-
- <!-- footer -->
- <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
- <ul id="f-list">
- <?php
- foreach ( $this->getFooterLinks( "flat" ) as $aLink ) {
- if ( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
- ?>
- <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
- <?php
- }
- }
- ?>
- </ul>
- <?php
- foreach ( $this->getFooterIcons( "nocopyright" ) as $blockName => $footerIcons ) {
- ?>
- <div id="mw_<?php echo htmlspecialchars( $blockName ); ?>">
- <?php
- foreach ( $footerIcons as $icon ) {
- ?>
- <?php echo $this->getSkin()->makeFooterIcon( $icon, 'withoutImage' ); ?>
-
- <?php
- } ?>
- </div>
- <?php
- }
- ?>
- </div>
-
- <?php $this->printTrail(); ?>
-
- </body>
-</html>
- <?php
- wfRestoreWarnings();
- } // end of execute() method
-} // end of class
+++ /dev/null
-#sitetitle,
-#sitesub,
-#titlelinks,
-#footer-navigation {
- display: none;
-}
+++ /dev/null
-body {
- margin: 0;
- padding: 0;
- color: black;
- font-family: serif;
-}
-
-#specialform {
- display: inline;
-}
-
-#content {
- top: 0;
- margin: 0;
- padding: 0;
-}
-
-#mw-data-after-content {
- font-family: Verdana, Arial, sans-serif;
- color: black;
- font-size: 8pt;
-}
-
-#powersearch {
- background: #DDEEFF;
- border-style: solid;
- border-width: 1px;
- padding: 2px;
-}
-
-#quickbar {
- width: 140px;
- top: 18ex;
- padding: 2px;
- visibility: visible;
- z-index: 99;
-}
-
-#article, #article td, #article th, #article p {
- font-family: Verdana, Arial, sans-serif;
- font-size: 10pt;
- color: black;
-}
-
-#article p {
- padding-top: 0;
- padding-bottom: 0;
- margin-top: 1ex;
- margin-bottom: 0;
-}
-
-p, pre, .mw-code, td, th, li, dd, dt {
- line-height: 12pt;
-}
-
-textarea {
- overflow: auto;
- width: 100%;
- display: block;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-#footer {
- margin-right: 2%;
- margin-top: 1em;
- padding: 4px;
- font-family: verdana, arial, sans-serif;
- font-size: 10pt;
- text-align: center;
-}
-
-#footer form {
- display: inline;
-}
-
-#cb-ca-edit {
- font-weight: bold;
-}
-
-#pagestats {
- font-family: Verdana, Arial, sans-serif;
- color: black;
- font-size: 9pt;
-}
-
-#quickbar {
- font-family: Verdana, Arial, sans-serif;
- font-size: 8pt;
- font-weight: bold;
- line-height: 9.5pt;
- text-decoration: none;
- color: black;
- padding: 0;
- margin-top: 0;
-}
-
-#quickbar a {
- color: #446688;
-}
-
-/* Hide, but keep accessible for screen-readers */
-#mw-navigation h2 {
- position: absolute;
- top: -9999px;
-}
-
-#quickbar h3 {
- font-family: Verdana, Arial, sans-serif;
- font-size: 10pt;
- font-weight: bold;
- line-height: 12pt;
- text-decoration: none;
- color: #666666;
- padding: 0;
- margin-bottom: 2px;
- margin-top: 6px;
-}
-
-#quickbar form {
- padding: 0;
- margin-top: 0;
-}
-
-#quickbar .portlet ul,
-#quickbar .portlet li {
- list-style-type: none;
- margin: 0;
- padding: 0;
- line-height: inherit;
-}
-
-div.after-portlet {
- display: inline;
- padding-left: .5em;
-}
-
-h1 {
- color: #666666;
- font-family: Verdana, Arial, sans-serif;
- font-size: 180%;
- line-height: 21pt;
-}
-
-h1#firstHeading {
- padding-bottom: 0;
- margin-bottom: 0;
-}
-
-#article p.subtitle, #article p.subpages, #article p.tagline {
- color: #666666;
- font-size: 11pt;
- font-weight: bold;
- padding-top: 0;
- margin-top: 0;
- padding-bottom: 1ex;
-}
-
-a {
- color: #223366;
-}
-
-a.external {
- color: #336644;
-}
-
-a:visited {
- color: #8D0749;
-}
-
-a.printable {
- text-decoration: underline;
-}
-
-a.stub, #quickbar a.stub {
- color: #772233;
- text-decoration: none;
-}
-
-a.new, #quickbar span.new a, #footer span.new a {
- color: #CC2200;
-}
-
-h2, h3, h4, h5, h6 {
- margin-bottom: 0;
-}
-
-small {
- font-size: 75%;
-}
-
-input.mw-searchInput {
- width: 106px;
-}
-
-/* Directionality-specific styles */
-#quickbar {
- position: absolute;
- left: 4px;
-}
-
-#article {
- margin-left: 148px;
- margin-right: 4px;
-}
-
-#footer {
- margin-left: 152px;
-}
-
-#sitetitle, #sitesub, #toplinks, #linkcollection {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-#sitetitle, #toplinks {
- color: white;
- text-transform: uppercase;
- height: 32pt;
-}
-
-#sitetitle {
- padding-left: 8px;
- font-family: Times, serif;
- font-weight: normal;
- font-size: 32pt;
- line-height: 32pt;
- background-color: #6688AA;
-}
-
-#sitetitle a, #toplinks a {
- color: white;
- text-decoration: none;
-}
-
-/* Bring #sitetitle to top. Otherwise #toplinks is overlaid over it, making the link unclickable. */
-#sitetitle a {
- position: relative;
- z-index: 10;
-}
-
-#toplinks {
- font-family: Verdana, Arial, sans-serif;
- position: absolute;
- top: 0;
- right: 8px;
- width: 100%;
- font-size: 8pt;
-}
-
-#toplinks a {
- font-size: 10pt;
-}
-
-#toplinks p {
- position: absolute;
- right: 0;
- margin: 0;
- width: 100%;
- text-align: right;
-}
-
-#toplinks #syslinks {
- bottom: 0;
-}
-
-#toplinks #variantlinks {
- bottom: 12pt;
-}
-
-#sitesub {
- float: left;
- margin-left: 8px;
- font-family: Verdana, Arial, sans-serif;
- font-size: 9pt;
- font-weight: bold;
- color: black;
-}
-
-#linkcollection {
- margin-top: 0.5em;
- font-size: small;
- margin-right: 8px;
- text-align: right;
- padding-left: 140px;
-}
-
-/* Override text justification (user preference), see bug 31990 */
-#linkcollection * {
- text-align: right;
-}
+++ /dev/null
-body {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- font-size: x-small;
-
- font-family: sans-serif;
- color: black;
- background-color: #f0f0f0;
-
- direction: ltr;
- unicode-bidi: embed;
-}
-
-#mw_main,
-#p-personal,
-#mw_header,
-.os-suggest {
- font-size: 130%;
-}
-
-#mw_header {
- position: absolute;
- top: 0;
- left: 0;
- margin: 0 0 0 0;
- padding: 0 0em 0 0em;
- border: none;
- height: 2em;
- width: 100%;
-
- background-color: #003366;
- color: white;
-}
-
-#mw_header h1 {
- margin: 0 0 0 0.5em;
- padding: 0 0 0 0;
- text-decoration: none;
- font-size: 150%;
-}
-
-#p-personal {
- position: absolute;
- top: 2em;
- left: 0;
- height: 1.5em;
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- width: 100%;
-
-}
-
-#p-personal div.pBody {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- height: 1.5em;
- font-variant: small-caps;
-}
-
-#p-personal h3 {
- display: none;
-}
-
-#p-personal ul {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- display: block;
- height: 1.5em;
- background-color: #3c78b5;
-}
-
-#p-personal li {
- display: block;
- float: left;
- height: 1.5em;
- margin: 0 0 0 0;
- vertical-align: middle;
-
- font-weight: bold;
- text-transform: lowercase;
-}
-
-#p-personal li a {
- text-decoration: none;
- color: white;
- padding: 0 1em 0 1em;
-}
-
-#p-personal li a:hover {
- text-decoration: none;
- color: white;
-}
-
-#p-personal li:hover {
- background-color: #003366;
-}
-
-#jump-to-nav {
- display: none;
-}
-
-#mw_contentwrapper {
- width: 100%;
- margin: 0 0 0 -15em;
- float: right;
-}
-
-#mw_content {
- margin: 0 0 0 14em;
-
- background-color: white;
- border-top: solid 1px #bbbbbb;
- border-left: solid 1px #bbbbbb;
- border-bottom: solid 1px #bbbbbb;
-
- line-height: 1.5em;
- padding: 0 1em 1em 1em;
-}
-
-#mw_portlets {
- width: 14em;
-
- border-right: solid 1px #bbbbbb;
- background-color: #f0f0f0;
-}
-
-/* Hide, but keep accessible for screen-readers */
-#mw_portlets h2 {
- position: absolute;
- top: -9999px;
-}
-
-#mw_main {
- padding: 0 0 0 0;
- margin: 0 0 0 0;
- margin-top: 3.5em;
-}
-
-div.mw_clear {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- clear: both;
-}
-
-.portlet {
- padding: 0 0 0 0;
- margin: 0 0 0 0;
-}
-
-.portlet div.pBody {
- padding: 0em 0 0.5em 0;
-}
-
-textarea {
- width: 100%;
- padding: .1em;
- display: block;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-#searchBody {
- text-align: center;
-}
-
-#searchInput {
- width: 85%;
- margin-left: auto;
- margin-right: auto;
-}
-
-#p-search #searchform div div {
- margin-top: .4em;
-}
-
-.portlet h3 {
- padding: 0.1em 0 0.3em 1em;
- margin: 0 0 0 0;
- background-color: #dddddd;
- font-weight: bold;
- font-size: 0.83em;
- border-bottom: solid 1px #3c78b5;
- height: 1.1em;
-}
-
-.portlet ul {
- margin: 0 0 0 1.5em;
- padding: 0 0 0 0;
-}
-
-#mw_portlets .portlet ul {
- line-height: 1.4em;
-}
-
-ul {
- /* @embed */
- list-style-image: url(bullet.gif);
-}
-
-#p-cactions {
- height: 1.5em;
- padding: 0 0 0 0;
- margin: 0 0 0 14em;
-}
-
-#p-cactions div.pBody {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
-}
-
-#p-cactions a,
-#p-cactions a:hover {
- color: black;
- text-decoration: none;
-}
-
-#p-cactions ul {
- display: inline;
- margin: 0 0 0 0;
- padding: 0 0 0 0;
-}
-
-#p-cactions li {
- margin: 0 0.5em 0 0.5em;
- padding: 0 0.2em 0 0.2em;
- display: block;
- float: left;
- height: 1.5em;
- text-transform: lowercase;
-}
-
-#p-cactions li.selected {
- background-color: #bbbbbb;
-}
-
-#p-cactions li a,
-#p-cactions li a:hover,
-#p-cactions li a:visited {
- text-decoration: underline;
- color: #003366;
-}
-
-#p-cactions li.selected a,
-#p-cactions li.selected a:hover,
-#p-cactions li.selected a:visited {
- text-decoration: none;
- color: white;
-}
-
-#p-cactions h3 {
- display: none;
-}
-
-#siteSub {
- display: none;
-}
-
-#footer {
- background-color: #f0f0f0;
- /* @embed */
- background: url(footer-grad.png) repeat-x 0 0;
- padding: 10px 1em 1em 1em;
- clear: both;
- color: #444444;
-}
-
-#footer a,
-#footer a:hover,
-#footer a:visited {
- color: #444444;
- text-decoration: underline;
-}
-
-img {
- border: none;
-}
-
-#footer li {
- display: inline;
- list-style-type: none;
- padding: 0 0 0 0;
- margin: 0 0 0 0;
-}
-
-#footer ul {
- padding: 0 0 0 0;
- margin: 0 0 0 0;
-}
-
-p {
- margin: 1em 0 1em 0;
-}
-
-hr {
- height: 1px;
- color: #aaa;
- background-color: #aaa;
- border: 0;
- margin: .2em 0 .2em 0;
-}
-
-#contentSub {
- color: #545454;
- font-size: small;
- padding-left: 2em;
-}
-
-#mw_portlets form {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
-}
-
-a {
- text-decoration: none;
- color: #003366;
- background: none;
-}
-
-a:visited {
- color: #5a3696;
-}
-
-a:active {
- color: #faa700;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-a.stub {
- color: #772233;
-}
-
-a.new {
- color: #ba0000;
-}
-
-a.new:visited {
- color: #a55858;
-}
-
-h1, h2 {
- border-bottom: solid 1px #003366;
-}
-
-h1, h2, h3, h4, h5, h6 {
- overflow: hidden;
-}
-
-#preftoc {
- width: 100%;
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- height: 1.5em;
- clear: right;
-}
-
-#preftoc li {
- margin: 0 0.5em 0 0.5em;
- padding: 0 0.2em 0 0.2em;
- display: block;
- float: left;
- height: 1.5em;
- text-transform: lowercase;
-}
-
-#preferences {
- margin: 0 0 0 0;
- padding: 0em 1em 1em 1em;
- border: solid 1px #bbbbbb;
- clear: left; /* Multi-line toc should not push data to horizontally */
-}
-
-#preferences fieldset {
- margin-top: 0;
- border: none;
-}
-
-.mainLegend {
- display: none;
-}
-
-.htmlform-tip {
- font-size: x-small;
- padding: .2em 2em;
- color: #666;
-}
-
-.prefsection legend {
- font-weight: bold;
-}
-
-#preftoc li.selected {
- background-color: #bbbbbb;
-}
-
-#preftoc li a,
-#preftoc li a:hover,
-#preftoc li a:visited {
- text-decoration: underline;
- color: #003366;
-}
-
-#preftoc li.selected a,
-#preftoc li.selected a:hover,
-#preftoc li.selected a:visited {
- text-decoration: none;
- color: white;
-}
-
-#mw_content a.external {
- /* @embed */
- background: url(external.png) center right no-repeat;
- padding-right: 13px;
-}
-
-#mw_content a.external[href ^="https://"],
-.link-https {
- /* @embed */
- background: url(lock_icon.gif) center right no-repeat;
- padding-right: 16px;
-}
-
-#mw_content a.external[href ^="mailto:"],
-.link-mailto {
- /* @embed */
- background: url(mail_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-
-#mw_content a.external[href ^="news:"] {
- /* @embed */
- background: url(news_icon.png) center right no-repeat;
- padding-right: 18px;
-}
-
-#mw_content a.external[href ^="ftp://"],
-.link-ftp {
- /* @embed */
- background: url(file_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-
-#mw_content a.external[href ^="irc://"],
-#mw_content a.external[href ^="ircs://"],
-.link-irc {
- /* @embed */
- background: url(discussionitem_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-
-#mw_content a.external[href $=".ogg"], #mw_content a.external[href $=".OGG"],
-#mw_content a.external[href $=".mid"], #mw_content a.external[href $=".MID"],
-#mw_content a.external[href $=".midi"], #mw_content a.external[href $=".MIDI"],
-#mw_content a.external[href $=".mp3"], #mw_content a.external[href $=".MP3"],
-#mw_content a.external[href $=".wav"], #mw_content a.external[href $=".WAV"],
-#mw_content a.external[href $=".wma"], #mw_content a.external[href $=".WMA"],
-.link-audio {
- /* @embed */
- background: url(audio.png) center right no-repeat;
- padding-right: 13px;
-}
-
-#mw_content a.external[href $=".ogm"], #mw_content a.external[href $=".OGM"],
-#mw_content a.external[href $=".avi"], #mw_content a.external[href $=".AVI"],
-#mw_content a.external[href $=".mpeg"], #mw_content a.external[href $=".MPEG"],
-#mw_content a.external[href $=".mpg"], #mw_content a.external[href $=".MPG"],
-.link-video {
- /* @embed */
- background: url(video.png) center right no-repeat;
- padding-right: 13px;
-}
-
-#mw_content a.external[href $=".pdf"], #mw_content a.external[href $=".PDF"],
-#mw_content a.external[href *=".pdf#"], #mw_content a.external[href *=".PDF#"],
-#mw_content a.external[href *=".pdf?"], #mw_content a.external[href *=".PDF?"],
-.link-document {
- /* @embed */
- background: url(document.png) center right no-repeat;
- padding-right: 12px;
-}
-
-/* images */
-/* @noflip */div.floatright, table.floatright {
- margin: 0 0 .5em .5em;
- border: 0;
-}
-
-div.floatright p {
- font-style: italic;
-}
-
-/* @noflip */div.floatleft, table.floatleft {
- margin: 0 .5em .5em 0;
- border: 0;
-}
-
-div.floatleft p {
- font-style: italic;
-}
-
-/* thumbnails */
-div.thumb {
- margin-bottom: .5em;
- width: auto;
-}
-
-div.thumbinner {
- border: 1px solid #ccc;
- padding: 3px !important;
- background-color: #f9f9f9;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-
-html .thumbimage {
- border: 1px solid #ccc;
-}
-
-html .thumbcaption {
- border: none;
- text-align: left;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-
-div.magnify {
- float: right;
- border: none !important;
- background: none !important;
- margin-left: 3px;
-}
-
-div.magnify a, div.magnify img {
- display: block;
- border: none !important;
- background: none !important;
-}
-
-/* @noflip */div.tright {
- margin: .5em 0 .8em 1.4em;
-}
-
-/* @noflip */div.tleft {
- margin: .5em 1.4em .8em 0;
-}
-
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-
-.mw-warning {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-
-#toc,
-.toc {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- border-spacing: 0;
- background-color: #f0f0f0;
- border: solid 1px #bbbbbb;
- display: -moz-inline-block;
- display: inline-block;
- display: table;
-
- /* IE7 and earliers */
- zoom: 1;
- *display: inline;
-
- padding: 7px;
-}
-
-/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
-table#toc,
-table.toc {
- border-collapse: collapse;
-}
-
-/* Remove additional paddings inside table-cells that are not present in <div>s */
-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;
-}
+++ /dev/null
-#mw_portlets,
-#p-cactions,
-#p-personal,
-#jump-to-nav,
-#footer,
-.mw-editsection,
-.mw-editsection-like,
-.noprint {
- display: none;
-}