From a9ec0acd3d05160b5d8917938bf4059fb6012477 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 25 Mar 2005 07:25:49 +0000 Subject: [PATCH] * remove 'hover' option; always put in the title attribute on links * convert 'hightlightbroken' to use CSS switching so we don't need a separate parser cache copy of each page depending on this setting ?-mode falls back to normal rendering in IE 6/win ?-mode looks crappy in IE 5.2/mac :( --- includes/Linker.php | 31 +++++-------------------------- includes/Parser.php | 2 +- includes/Skin.php | 37 ++++++++++++++++++++++++++++--------- includes/SkinTemplate.php | 16 ++-------------- includes/User.php | 1 - languages/Language.php | 3 --- 6 files changed, 36 insertions(+), 54 deletions(-) diff --git a/includes/Linker.php b/includes/Linker.php index 833cabd8ac..0c0f3d6b69 100644 --- a/includes/Linker.php +++ b/includes/Linker.php @@ -23,13 +23,6 @@ class Linker { function Linker() { global $wgContLang; $this->linktrail = $wgContLang->linkTrail(); - - # Cache option lookups done very frequently - $options = array( 'highlightbroken', 'hover' ); - foreach( $options as $opt ) { - global $wgUser; - $this->mOptions[$opt] = $wgUser->getOption( $opt ); - } } /** @@ -51,9 +44,7 @@ class Linker { $r = ($class != '') ? " class='$class'" : " class='external'"; - if( !$same && $this->mOptions['hover'] ) { - $r .= " title=\"{$link}\""; - } + $r .= " title=\"{$link}\""; return $r; } @@ -71,9 +62,7 @@ class Linker { $r = ''; } - if( $this->mOptions['hover'] ) { - $r .= " title=\"{$link}\""; - } + $r .= " title=\"{$link}\""; return $r; } @@ -89,9 +78,7 @@ class Linker { $r = ''; } - if( $this->mOptions['hover'] ) { - $r .= ' title="' . $nt->getEscapedText() . '"'; - } + $r .= ' title="' . $nt->getEscapedText() . '"'; return $r; } @@ -333,11 +320,7 @@ class Linker { $trail = $m[2]; } } - if ( $this->mOptions['highlightbroken'] ) { - $s = "{$prefix}{$text}{$inside}{$trail}"; - } else { - $s = "{$prefix}{$text}{$inside}?{$trail}"; - } + $s = "{$prefix}{$text}{$inside}{$trail}"; wfProfileOut( $fname ); return $s; @@ -363,11 +346,7 @@ class Linker { $trail = $m[2]; } } - if ( $this->mOptions['highlightbroken'] ) { - $s = "{$prefix}{$text}{$inside}{$trail}"; - } else { - $s = "{$prefix}{$text}{$inside}!{$trail}"; - } + $s = "{$prefix}{$text}{$inside}{$trail}"; return $s; } diff --git a/includes/Parser.php b/includes/Parser.php index 91c97a8967..99fc1886a6 100644 --- a/includes/Parser.php +++ b/includes/Parser.php @@ -13,7 +13,7 @@ require_once( 'Sanitizer.php' ); * changes in an incompatible way, so the parser cache * can automatically discard old data. */ -define( 'MW_PARSER_VERSION', '1.4.0' ); +define( 'MW_PARSER_VERSION', '1.5.0' ); /** * Variable substitution O(N^2) attack diff --git a/includes/Skin.php b/includes/Skin.php index ed6d4427b2..ff3f92f2d1 100644 --- a/includes/Skin.php +++ b/includes/Skin.php @@ -267,17 +267,36 @@ class Skin extends Linker { $csspage = $wgContLang->getNsText( NS_MEDIAWIKI ) . ':' . $this->getSkinName() . '.css'; $s = '@import "'.$this->makeUrl($csspage, 'action=raw&ctype=text/css')."\";\n"; - if ( 1 == $wgUser->getOption( 'underline' ) ) { - # Don't override browser settings - } else { - # CHECK MERGE @@@ - # Force no underline - $s .= "a { text-decoration: none; }\n"; - } - if ( 1 == $this->mOptions['highlightbroken'] ) { + return $s . $this->reallyDoGetUserStyles(); + } + + function reallyDoGetUserStyles() { + global $wgUser; + $s = ''; + $underline = $wgUser->getOption( "underline" ) ? 'underline' : 'none'; + $s .= "a { text-decoration: $underline; }\n"; + if( $wgUser->getOption( 'highlightbroken' ) ) { $s .= "a.new, #quickbar a.new { color: #CC2200; }\n"; + } else { + $s .= <<getOption( 'justify' ) ) { + if( $wgUser->getOption( 'justify' ) ) { $s .= "#article { text-align: justify; }\n"; } return $s; diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index 4efb48a58f..12029c6f6d 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -879,26 +879,14 @@ class SkinTemplate extends Skin { * returns css with user-specific options * @access public */ + function getUserStylesheet() { $fname = 'SkinTemplate::getUserStylesheet'; wfProfileIn( $fname ); global $wgUser; $s = "/* generated user stylesheet */\n"; - - if( $wgUser->isLoggedIn() ) { - if ( $wgUser->getOption( "underline" ) ) { - $s .= "a { text-decoration: underline; }\n"; - } else { - $s .= "a { text-decoration: none; }\n"; - } - } - if ( !$wgUser->getOption( "highlightbroken" ) ) { - $s .= "a.new, #quickbar a.new { color: #CC2200; }\n"; - } - if ( $wgUser->getOption( "justify" ) ) { - $s .= "#bodyContent { text-align: justify; }\n"; - } + $s .= $this->reallyDoGetUserStyles(); wfProfileOut( $fname ); return $s; } diff --git a/includes/User.php b/includes/User.php index 2f9fad5136..2277171ff5 100644 --- a/includes/User.php +++ b/includes/User.php @@ -1117,7 +1117,6 @@ class User { // it will always be 0 when this function is called by parsercache. $confstr = $this->getOption( 'math' ); - $confstr .= '!' . $this->getOption( 'highlightbroken' ); $confstr .= '!' . $this->getOption( 'stubthreshold' ); $confstr .= '!' . $this->getOption( 'editsection' ); $confstr .= '!' . $this->getOption( 'editsectiononrightclick' ); diff --git a/languages/Language.php b/languages/Language.php index 5f83e2376b..73233950e3 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -53,7 +53,6 @@ if(isset($wgExtraNamespaces)) { /* private */ $wgDefaultUserOptionsEn = array( 'quickbar' => 1, 'underline' => 1, - 'hover' => 1, 'cols' => 80, 'rows' => 25, 'searchlimit' => 20, @@ -131,7 +130,6 @@ define( 'MW_DATE_USER_FORMAT', true ); ); /* private */ $wgUserTogglesEn = array( - 'hover', 'underline', 'highlightbroken', 'justify', @@ -259,7 +257,6 @@ global $wgRightsText; 'special_version_prefix' => ' ', 'special_version_postfix' => ' ', # User preference toggles -'tog-hover' => 'Show hoverbox over wiki links', 'tog-underline' => 'Underline links', 'tog-highlightbroken' => 'Format broken links like this (alternative: like this?).', 'tog-justify' => 'Justify paragraphs', -- 2.20.1