* remove 'hover' option; always put in the title attribute on links
authorBrion Vibber <brion@users.mediawiki.org>
Fri, 25 Mar 2005 07:25:49 +0000 (07:25 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Fri, 25 Mar 2005 07:25:49 +0000 (07:25 +0000)
* 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
includes/Parser.php
includes/Skin.php
includes/SkinTemplate.php
includes/User.php
languages/Language.php

index 833cabd..0c0f3d6 100644 (file)
@@ -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 = "<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;
@@ -363,11 +346,7 @@ class Linker {
                                $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;
        }
 
index 91c97a8..99fc188 100644 (file)
@@ -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
index ed6d442..ff3f92f 100644 (file)
@@ -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 .= <<<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;
index 4efb48a..12029c6 100644 (file)
@@ -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;
        }
index 2f9fad5..2277171 100644 (file)
@@ -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' );
index 5f83e23..7323395 100644 (file)
@@ -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' => '&nbsp;',
 'special_version_postfix' => '&nbsp;',
 # 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',