* 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 :(
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 );
- }
}
/**
$r = ($class != '') ? " class='$class'" : " class='external'";
- if( !$same && $this->mOptions['hover'] ) {
- $r .= " title=\"{$link}\"";
- }
+ $r .= " title=\"{$link}\"";
return $r;
}
$r = '';
}
- if( $this->mOptions['hover'] ) {
- $r .= " title=\"{$link}\"";
- }
+ $r .= " title=\"{$link}\"";
return $r;
}
$r = '';
}
- if( $this->mOptions['hover'] ) {
- $r .= ' title="' . $nt->getEscapedText() . '"';
- }
+ $r .= ' title="' . $nt->getEscapedText() . '"';
return $r;
}
$trail = $m[2];
}
}
- if ( $this->mOptions['highlightbroken'] ) {
- $s = "<a href=\"{$u}\"{$style}>{$prefix}{$text}{$inside}</a>{$trail}";
- } else {
- $s = "{$prefix}{$text}{$inside}<a href=\"{$u}\"{$style}>?</a>{$trail}";
- }
+ $s = "<a href=\"{$u}\"{$style}>{$prefix}{$text}{$inside}</a>{$trail}";
wfProfileOut( $fname );
return $s;
$trail = $m[2];
}
}
- if ( $this->mOptions['highlightbroken'] ) {
- $s = "<a href=\"{$u}\"{$style}>{$prefix}{$text}{$inside}</a>{$trail}";
- } else {
- $s = "{$prefix}{$text}{$inside}<a href=\"{$u}\"{$style}>!</a>{$trail}";
- }
+ $s = "<a href=\"{$u}\"{$style}>{$prefix}{$text}{$inside}</a>{$trail}";
return $s;
}
* 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
$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 .= <<<END
+a.new, #quickbar a.new,
+a.stub, #quickbar a.stub {
+ color: inherit;
+ text-decoration: inherit;
+}
+a.new:after, #quickbar a.new:after {
+ content: "?";
+ color: #CC2200;
+ text-decoration: $underline;
+}
+a.stub:after, #quickbar a.stub:after {
+ content: "!";
+ color: #772233;
+ text-decoration: $underline;
+}
+END;
}
- if ( 1 == $wgUser->getOption( 'justify' ) ) {
+ if( $wgUser->getOption( 'justify' ) ) {
$s .= "#article { text-align: justify; }\n";
}
return $s;
* 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;
}
// 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' );
/* private */ $wgDefaultUserOptionsEn = array(
'quickbar' => 1,
'underline' => 1,
- 'hover' => 1,
'cols' => 80,
'rows' => 25,
'searchlimit' => 20,
);
/* private */ $wgUserTogglesEn = array(
- 'hover',
'underline',
'highlightbroken',
'justify',
'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 <a href="" class="new">like this</a> (alternative: like this<a href="" class="internal">?</a>).',
'tog-justify' => 'Justify paragraphs',