Add link to anon's user page; remove "Not logged in"
authorStephan Gambke <s7eph4n@gmail.com>
Sat, 27 Feb 2016 14:27:54 +0000 (15:27 +0100)
committerStephan Gambke <s7eph4n@gmail.com>
Fri, 11 Mar 2016 22:47:02 +0000 (23:47 +0100)
Improve the personal tools:
* Remove the "Not logged in" text message. It is misleading. Being among the
  personal tool links people click on it expecting it to have some function.
* Instead add a proper link "Unknown user" to the IP user page.

Bug: T121793
Change-Id: I049d0671a7050585659fc8b9dcf21e0f92393bcf

includes/skins/SkinTemplate.php
languages/i18n/en.json
languages/i18n/qqq.json

index 92311b5..419c4b4 100644 (file)
@@ -650,42 +650,33 @@ class SkinTemplate extends Skin {
                                'active' => false
                        ];
                } else {
-                       $useCombinedLoginLink = $this->useCombinedLoginLink();
-                       $loginlink = $this->getUser()->isAllowed( 'createaccount' ) && $useCombinedLoginLink
-                               ? 'nav-login-createaccount'
-                               : 'pt-login';
-                       $is_signup = $request->getText( 'type' ) == 'signup';
-
-                       $login_url = [
-                               'text' => $this->msg( $loginlink )->text(),
-                               'href' => self::makeSpecialUrl( 'Userlogin', $returnto ),
-                               'active' => $title->isSpecial( 'Userlogin' )
-                                       && ( $loginlink == 'nav-login-createaccount' || !$is_signup ),
-                       ];
-                       $createaccount_url = [
-                               'text' => $this->msg( 'pt-createaccount' )->text(),
-                               'href' => self::makeSpecialUrl( 'Userlogin', "$returnto&type=signup" ),
-                               'active' => $title->isSpecial( 'Userlogin' ) && $is_signup,
-                       ];
-
                        // No need to show Talk and Contributions to anons if they can't contribute!
                        if ( User::groupHasPermission( '*', 'edit' ) ) {
-                               // Show the text "Not logged in"
-                               $personal_urls['anonuserpage'] = [
-                                       'text' => $this->msg( 'notloggedin' )->text()
-                               ];
 
-                               // Because of caching, we can't link directly to the IP talk and
-                               // contributions pages. Instead we use the special page shortcuts
-                               // (which work correctly regardless of caching). This means we can't
-                               // determine whether these links are active or not, but since major
-                               // skins (MonoBook, Vector) don't use this information, it's not a
-                               // huge loss.
+                               // Because of caching, we can't link directly to the anonymous
+                               // user page (for example [[User:127.0.0.1]]), talk page, and
+                               // contributions pages. Instead we use the special page
+                               // shortcuts (which work correctly regardless of caching). This
+                               // means we can't determine whether these links are active or
+                               // not, but since major skins (MonoBook, Vector) don't use this
+                               // information, it's not a huge loss.
+
+                               // Only show (red) link to anon user page if anon users are
+                               // allowed to create that page
+                               if ( User::groupHasPermission( '*', 'createpage' ) ) {
+                                       $personal_urls[ 'anonuserpage' ] = [
+                                               'text'   => $this->msg( 'anonuserpage' )->text(),
+                                               'href'   => self::makeSpecialUrlSubpage( 'Mypage', false ),
+                                               'active' => false
+                                       ];
+                               }
+
                                $personal_urls['anontalk'] = [
                                        'text' => $this->msg( 'anontalk' )->text(),
                                        'href' => self::makeSpecialUrlSubpage( 'Mytalk', false ),
                                        'active' => false
                                ];
+
                                $personal_urls['anoncontribs'] = [
                                        'text' => $this->msg( 'anoncontribs' )->text(),
                                        'href' => self::makeSpecialUrlSubpage( 'Mycontributions', false ),
@@ -693,11 +684,21 @@ class SkinTemplate extends Skin {
                                ];
                        }
 
-                       if ( $this->getUser()->isAllowed( 'createaccount' ) && !$useCombinedLoginLink ) {
-                               $personal_urls['createaccount'] = $createaccount_url;
+                       $is_signup = $request->getText( 'type' ) === 'signup';
+
+                       if ( $this->getUser()->isAllowed( 'createaccount' ) && !( $this->useCombinedLoginLink() ) ) {
+                               $personal_urls[ 'createaccount' ] = [
+                                       'text' => $this->msg( 'pt-createaccount' )->text(),
+                                       'href' => self::makeSpecialUrl( 'Userlogin', "$returnto&type=signup" ),
+                                       'active' => $title->isSpecial( 'Userlogin' ) && $is_signup,
+                               ];
                        }
 
-                       $personal_urls['login'] = $login_url;
+                       $personal_urls['login'] = [
+                               'text' => $this->msg( 'pt-login' )->text(),
+                               'href' => self::makeSpecialUrl( 'Userlogin', $returnto ),
+                               'active' => $title->isSpecial( 'Userlogin' ) && !$is_signup,
+                       ];
                }
 
                Hooks::run( 'PersonalUrls', [ &$personal_urls, &$title, $this ] );
index 03b50be..5b32b97 100644 (file)
        "moredotdotdot": "More...",
        "morenotlisted": "This list is not complete.",
        "mypage": "Page",
+       "anonuserpage": "Unknown user",
        "mytalk": "Talk",
        "anontalk": "Talk",
        "navigation": "Navigation",
index 4058d83..adf24c5 100644 (file)
        "moredotdotdot": "Used as \"More...\" link for {{msg-mw|pageinfo-transclusions}} field, in the \"templates used on this page\" list.\n\nSimilar to {{msg-mw|morenotlisted}}.\n{{Identical|More...}}",
        "morenotlisted": "An indication that more of a templates list is not shown.\n\nUsed as \"More...\" link for {{msg-mw|pageinfo-templates}} field.\n\nSimilar to {{msg-mw|moredotdotdot}}.",
        "mypage": "A text for the link to the user's user page in the links at the top of the page.\n{{Identical|Page}}",
+       "anonuserpage": "Same as {{msg-mw|mypage}} but used for non-logged-in users.\nA text for the link to the IP user page in the links at the top of the page.\n\nSee also:\n* {{msg-mw|Accesskey-pt-anonuserpage}}\n* {{msg-mw|Tooltip-pt-anonuserpage}}\n{{Identical|Page}}",
        "mytalk": "In the personal URLs page section - right upper corner.\n\nUsed as link title in your personal toolbox.\n\nSee also:\n* {{msg-mw|Mytalk}}\n* {{msg-mw|Accesskey-pt-mytalk}}\n* {{msg-mw|Tooltip-pt-mytalk}}\n{{Identical|Talk}}",
        "anontalk": "Same as {{msg-mw|mytalk}} but used for non-logged-in users.\n{{Identical|Talk}}\n\nSee also:\n* {{msg-mw|Accesskey-pt-anontalk}}\n* {{msg-mw|Tooltip-pt-anontalk}}",
        "navigation": "This is shown as a section header in the sidebar of most skins.\n\n{{Identical|Navigation}}",