revert apparently accidental change to defaults in r18775
[lhc/web/wiklou.git] / includes / StubObject.php
index ed3b117..1501d96 100644 (file)
@@ -89,9 +89,16 @@ class StubUserLang extends StubObject {
 
        function _newObject() {
                global $wgContLanguageCode, $wgRequest, $wgUser, $wgContLang;
-               $code = $wgRequest->getVal('uselang', '');
-               if ($code == '')
-                       $code = $wgUser->getOption('language');
+               $code = $wgRequest->getVal('uselang', $wgUser->getOption('language') );
+
+               // if variant is explicitely selected, use it instead the one from wgUser
+               // see bug #7605
+               if($wgContLang->hasVariants()){
+                       $variant = $wgContLang->getPreferredVariant();
+                       if($variant != $wgContLanguageCode)
+                               $code = $variant;
+               }        
+
                # Validate $code
                if( empty( $code ) || !preg_match( '/^[a-z]+(-[a-z]+)?$/', $code ) ) {
                        $code = $wgContLanguageCode;
@@ -118,10 +125,9 @@ class StubUser extends StubObject {
                global $wgCommandLineMode;
                if( $wgCommandLineMode ) {
                        $user = new User;
-                       $user->setLoaded( true );
                } else {
-                       $user = User::loadFromSession();
-                       wfRunHooks('AutoAuthenticate',array($user));
+                       $user = User::newFromSession();
+                       wfRunHooks('AutoAuthenticate',array(&$user));
                }
                return $user;
        }