* Make tests work better together. Tests are now skipped or marked incomplete.
[lhc/web/wiklou.git] / includes / Preferences.php
index 196b83b..70d88ec 100644 (file)
@@ -114,7 +114,7 @@ class Preferences {
        }
 
        static function profilePreferences( $user, &$defaultPreferences ) {
-               global $wgLang;
+               global $wgLang, $wgUser;
                ## User info #####################################
                // Information panel
                $defaultPreferences['username'] =
@@ -209,7 +209,6 @@ class Preferences {
                                );
 
                if( $wgAuth->allowPasswordChange() ) {
-                       global $wgUser; // For skin.
                        $link = $wgUser->getSkin()->link( SpecialPage::getTitleFor( 'Resetpass' ),
                                wfMsgHtml( 'prefs-resetpass' ), array(),
                                array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' ) ) );
@@ -362,7 +361,6 @@ class Preferences {
                                                $disableEmailPrefs = false;
                                        } else {
                                                $disableEmailPrefs = true;
-                                               global $wgUser; // wgUser is okay here, it's for display
                                                $skin = $wgUser->getSkin();
                                                $emailauthenticated = wfMsgExt( 'emailnotauthenticated', 'parseinline' ) . '<br />' .
                                                        $skin->link(
@@ -559,6 +557,7 @@ class Preferences {
                                        'label-message' => 'timezonelegend',
                                        'options' => self::getTimezoneOptions(),
                                        'default' => $tzSetting,
+                                       'size' => 20,
                                        'section' => 'datetime/timeoffset',
                                );
        }
@@ -588,6 +587,7 @@ class Preferences {
                                        'type' => 'selectorother',
                                        'section' => 'rendering/advancedrendering',
                                        'options' => $stubThresholdOptions,
+                                       'size' => 20,
                                        'label' => wfMsg( 'stub-threshold' ), // Raw HTML message. Yay?
                                );
                $defaultPreferences['highlightbroken'] =
@@ -779,7 +779,6 @@ class Preferences {
                                        'section' => 'rc/advancedrc',
                                );
 
-               global $wgUseRCPatrol;
                if( $wgUseRCPatrol ) {
                        $defaultPreferences['hidepatrolled'] =
                                        array(
@@ -1002,8 +1001,12 @@ class Preferences {
                }
        }
 
+       /**
+        * @param object $user The user object
+        * @return array Text/links to display as key; $skinkey as value
+        */
        static function generateSkinOptions( $user ) {
-               global $wgDefaultSkin;
+               global $wgDefaultSkin, $wgLang, $wgAllowUserCss, $wgAllowUserJs;
                $ret = array();
 
                $mptitle = Title::newMainPage();
@@ -1024,23 +1027,28 @@ class Preferences {
                $sk = $user->getSkin();
 
                foreach( $validSkinNames as $skinkey => $sn ) {
+                       $linkTools = array();
+
+                       # Mark the default skin
+                       if( $skinkey == $wgDefaultSkin ) {
+                               $linkTools[] = wfMsgHtml( 'default' );
+                       }
+
+                       # Create preview link
                        $mplink = htmlspecialchars( $mptitle->getLocalURL( "useskin=$skinkey" ) );
-                       $previewlink = "(<a target='_blank' href=\"$mplink\">$previewtext</a>)";
-                       $extraLinks = '';
-                       global $wgAllowUserCss, $wgAllowUserJs;
+                       $linkTools[] = "<a target='_blank' href=\"$mplink\">$previewtext</a>";
+
+                       # Create links to user CSS/JS pages
                        if( $wgAllowUserCss ) {
                                $cssPage = Title::makeTitleSafe( NS_USER, $user->getName() . '/' . $skinkey . '.css' );
-                               $customCSS = $sk->link( $cssPage, wfMsgHtml( 'prefs-custom-css' ) );
-                               $extraLinks .= " ($customCSS)";
+                               $linkTools[] = $sk->link( $cssPage, wfMsgHtml( 'prefs-custom-css' ) );
                        }
                        if( $wgAllowUserJs ) {
                                $jsPage = Title::makeTitleSafe( NS_USER, $user->getName() . '/' . $skinkey . '.js' );
-                               $customJS = $sk->link( $jsPage, wfMsgHtml( 'prefs-custom-js' ) );
-                               $extraLinks .= " ($customJS)";
+                               $linkTools[] = $sk->link( $jsPage, wfMsgHtml( 'prefs-custom-js' ) );
                        }
-                       if( $skinkey == $wgDefaultSkin )
-                               $sn .= ' (' . wfMsgHtml( 'default' ) . ')';
-                       $display = "$sn $previewlink{$extraLinks}";
+
+                       $display = $sn . ' ' . wfMsg( 'parentheses', $wgLang->pipeList( $linkTools ) );
                        $ret[$display] = $skinkey;
                }
 
@@ -1060,7 +1068,7 @@ class Preferences {
                        }
 
                        $idCnt = 0;
-                       $epoch = '20010115161234'; # Wikipedia day
+                       $epoch = wfTimestampNow();
                        foreach( $dateopts as $key ) {
                                if( $key == 'default' ) {
                                        $formatted = wfMsgHtml( 'datedefault' );