'ResourceLoaderSpecialCharacterDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php',
'ResourceLoaderStartUpModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderStartUpModule.php',
'ResourceLoaderUploadDialogModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUploadDialogModule.php',
- 'ResourceLoaderUserCSSPrefsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php',
'ResourceLoaderUserDefaultsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserDefaultsModule.php',
'ResourceLoaderUserModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserModule.php',
'ResourceLoaderUserOptionsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserOptionsModule.php',
'site.styles',
'noscript',
'user.styles',
- 'user.cssprefs',
] );
$this->getSkin()->setupSkinUserCss( $this );
$bodyClasses[] = $userdir;
$bodyClasses[] = "sitedir-$sitedir";
+ $underline = $this->getUser()->getOption( 'underline' );
+ if ( $underline < 2 ) {
+ // The following classes can be used here:
+ // * mw-underline-always
+ // * mw-underline-never
+ $bodyClasses[] = 'mw-underline-' . ( $underline ? 'always' : 'never' );
+ }
+
if ( $this->getLanguage()->capitalizeAllNouns() ) {
# A <body> class is probably not the best way to do this . . .
$bodyClasses[] = 'capitalize-all-nouns';
+++ /dev/null
-<?php
-/**
- * ResourceLoader module for user preference customizations.
- *
- * 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
- *
- * @file
- * @author Trevor Parscal
- * @author Roan Kattouw
- */
-
-/**
- * Module for user preference customizations
- */
-class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
-
- protected $origin = self::ORIGIN_CORE_INDIVIDUAL;
-
- /**
- * @return bool
- */
- public function enableModuleContentVersion() {
- return true;
- }
-
- /**
- * @param ResourceLoaderContext $context
- * @return array
- */
- public function getStyles( ResourceLoaderContext $context ) {
- if ( !$this->getConfig()->get( 'AllowUserCssPrefs' ) ) {
- return [];
- }
-
- $options = $context->getUserObj()->getOptions();
-
- // Build CSS rules
- $rules = [];
-
- // Underline: 2 = skin default, 1 = always, 0 = never
- if ( $options['underline'] < 2 ) {
- $rules[] = "a { text-decoration: " .
- ( $options['underline'] ? 'underline' : 'none' ) . "; }";
- }
- $style = implode( "\n", $rules );
- if ( $this->getFlip( $context ) ) {
- $style = CSSJanus::transform( $style, true, false );
- }
- return [ 'all' => $style ];
- }
-
- /**
- * @param ResourceLoaderContext $context
- * @return bool
- */
- public function isKnownEmpty( ResourceLoaderContext $context ) {
- $styles = $this->getStyles( $context );
- return isset( $styles['all'] ) && $styles['all'] === '';
- }
-
- /**
- * @return string
- */
- public function getGroup() {
- return 'private';
- }
-
- /**
- * @return string
- */
- public function getType() {
- return self::LOAD_STYLES;
- }
-}
$entryWarning = $this->msg( $request->getVal( 'warning', '' ) );
// bc: provide login link as a parameter for messages where the translation
// was not updated
- $loginreqlink = Linker::linkKnown(
+ $loginreqlink = $this->getLinkRenderer()->makeKnownLink(
$this->getPageTitle(),
- $this->msg( 'loginreqlink' )->escaped(),
+ $this->msg( 'loginreqlink' )->text(),
[],
[
'returnto' => $this->mReturnTo,
'type' => 'info',
'raw' => true,
'cssclass' => 'mw-form-related-link-container',
- 'default' => Linker::link(
+ 'default' => $this->getLinkRenderer()->makeLink(
SpecialPage::getTitleFor( 'PasswordReset' ),
- $this->msg( 'userlogin-resetpassword-link' )->escaped()
+ $this->msg( 'userlogin-resetpassword-link' )->text()
),
'weight' => 230,
];
$targetLanguage = Language::factory( $lang );
$attr['lang'] = $attr['hreflang'] = $targetLanguage->getHtmlCode();
- return Linker::linkKnown(
+ return $this->getLinkRenderer()->makeKnownLink(
$this->getPageTitle(),
- htmlspecialchars( $text ),
+ $text,
$attr,
$query
);
* @return string
*/
public function formatResult( $skin, $result ) {
+ $linkRenderer = $this->getLinkRenderer();
$title = Title::makeTitleSafe( $result->namespace, $result->title );
if ( $title instanceof Title ) {
if ( $this->isCached() || $this->forceExistenceCheck() ) {
$pageLink = $this->existenceCheck( $title )
- ? '<del>' . Linker::link( $title ) . '</del>'
- : Linker::link( $title );
+ ? '<del>' . $linkRenderer->makeLink( $title ) . '</del>'
+ : $linkRenderer->makeLink( $title );
} else {
- $pageLink = Linker::link(
+ $pageLink = $linkRenderer->makeLink(
$title,
null,
[],
$displayed = substr( $displayed, $prefixLength );
}
$link = ( $title->isRedirect() ? '<div class="allpagesredirect">' : '' ) .
- Linker::linkKnown(
+ $this->getLinkRenderer()->makeKnownLink(
$title,
- htmlspecialchars( $displayed )
+ $displayed
) .
( $title->isRedirect() ? '</div>' : '' );
$query['namespace'] = $namespace;
}
- $nextLink = Linker::linkKnown(
+ $nextLink = $this->getLinkRenderer()->makeKnownLink(
$this->getPageTitle(),
- $this->msg( 'nextpage', str_replace( '_', ' ', $nextRow->page_title ) )->escaped(),
+ $this->msg( 'nextpage', str_replace( '_', ' ', $nextRow->page_title ) )->text(),
[],
$query
);
* Show some useful links in the subtitle
*/
protected function showConvenienceLinks() {
+ $linkRenderer = $this->getLinkRenderer();
# Give a link to the logs/hist for this page
if ( $this->targetObj ) {
// Also set header tabs to be for the target.
$this->getSkin()->setRelevantTitle( $this->targetObj );
$links = [];
- $links[] = Linker::linkKnown(
+ $links[] = $linkRenderer->makeKnownLink(
SpecialPage::getTitleFor( 'Log' ),
- $this->msg( 'viewpagelogs' )->escaped(),
+ $this->msg( 'viewpagelogs' )->text(),
[],
[ 'page' => $this->targetObj->getPrefixedText() ]
);
if ( !$this->targetObj->isSpecialPage() ) {
# Give a link to the page history
- $links[] = Linker::linkKnown(
+ $links[] = $linkRenderer->makeKnownLink(
$this->targetObj,
- $this->msg( 'pagehist' )->escaped(),
+ $this->msg( 'pagehist' )->text(),
[],
[ 'action' => 'history' ]
);
# Link to deleted edits
if ( $this->getUser()->isAllowed( 'undelete' ) ) {
$undelete = SpecialPage::getTitleFor( 'Undelete' );
- $links[] = Linker::linkKnown(
+ $links[] = $linkRenderer->makeKnownLink(
$undelete,
- $this->msg( 'deletedhist' )->escaped(),
+ $this->msg( 'deletedhist' )->text(),
[],
[ 'target' => $this->targetObj->getPrefixedDBkey() ]
);
$pageClasses[] = 'mw-specialpagerestricted';
}
- $link = Linker::linkKnown( $title, htmlspecialchars( $desc ) );
+ $link = $this->getLinkRenderer()->makeKnownLink( $title, $desc );
$out->addHTML( Html::rawElement(
'li',
[ 'class' => implode( ' ', $pageClasses ) ],
/**
* @ingroup Pager
*/
+use MediaWiki\MediaWikiServices;
+
class NewFilesPager extends ReverseChronologicalPager {
/**
$user = User::newFromId( $row->img_user );
$title = Title::makeTitle( NS_FILE, $name );
- $ul = Linker::link( $user->getUserPage(), $user->getName() );
+ $ul = MediaWikiServices::getInstance()->getLinkRenderer()->makeLink(
+ $user->getUserPage(),
+ $user->getName()
+ );
$time = $this->getLanguage()->userTimeAndDate( $row->img_timestamp, $this->getUser() );
$this->gallery->add(
css
cssclass
csslinks
-cssprefs
cta
ctime
ctor
'user' => [ 'class' => 'ResourceLoaderUserModule' ],
'user.styles' => [ 'class' => 'ResourceLoaderUserStylesModule' ],
- // Scripts generated based on the current user's preferences
- 'user.cssprefs' => [ 'class' => 'ResourceLoaderUserCSSPrefsModule' ],
-
// Populate mediawiki.user placeholders with information about the current user
'user.defaults' => [ 'class' => 'ResourceLoaderUserDefaultsModule' ],
'user.options' => [ 'class' => 'ResourceLoaderUserOptionsModule' ],
font-family: serif;
}
+/* Underline preference */
+
+.mw-underline-always a {
+ text-decoration: underline;
+}
+
+.mw-underline-never a {
+ text-decoration: none;
+}
+
/**
* rev_deleted stuff
*/