From 73838c6ee3193f90ab67f83e7a643c0edd15ef20 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sat, 30 Apr 2005 11:14:11 +0000 Subject: [PATCH] Restore the display of username and check for userpage/talkpage existence on the user page / talk page links in SkinTemplate-based skins. In the future we may do fancy ESI or something, but for now we weren't getting anything out of hiding the changes and it harmed usability. --- includes/SkinTemplate.php | 49 ++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index 8404dbcee1..edd4975043 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -420,14 +420,16 @@ class SkinTemplate extends Skin { global $wgShowIPinHeader; $personal_urls = array(); if ($this->loggedin) { - /* Logged in users personal toolbar */ $personal_urls['userpage'] = array( - 'text' => wfMsg('mypage'), - 'href' => $this->makeSpecialUrl('Mypage') + 'text' => $this->username, + 'href' => &$this->userpageUrlDetails['href'], + 'class' => $this->userpageUrlDetails['exists']?false:'new' ); + $usertalkUrlDetails = $this->makeTalkUrlDetails($this->userpage); $personal_urls['mytalk'] = array( 'text' => wfMsg('mytalk'), - 'href' => $this->makeSpecialUrl('Mytalk') + 'href' => &$usertalkUrlDetails['href'], + 'class' => $usertalkUrlDetails['exists']?false:'new' ); $personal_urls['preferences'] = array( 'text' => wfMsg('preferences'), @@ -439,7 +441,7 @@ class SkinTemplate extends Skin { ); $personal_urls['mycontris'] = array( 'text' => wfMsg('mycontris'), - 'href' => $this->makeSpecialUrl('Mycontributions') + 'href' => $this->makeSpecialUrl('Contributions','target=' . urlencode( $this->username ) ) ); $personal_urls['logout'] = array( 'text' => wfMsg('userlogout'), @@ -447,22 +449,23 @@ class SkinTemplate extends Skin { ); } else { if( $wgShowIPinHeader && isset( $_COOKIE[ini_get("session.name")] ) ) { - /* Anonymous with session users personal toolbar */ $personal_urls['anonuserpage'] = array( - 'text' => wfMsg('mypage'), - 'href' => $this->makeSpecialUrl('Mypage') + 'text' => $this->username, + 'href' => &$this->userpageUrlDetails['href'], + 'class' => $this->userpageUrlDetails['exists']?false:'new' ); - $personal_urls['mytalk'] = array( - 'text' => wfMsg('mytalk'), - 'href' => $this->makeSpecialUrl('Mytalk') + $usertalkUrlDetails = $this->makeTalkUrlDetails($this->userpage); + $personal_urls['anontalk'] = array( + 'text' => wfMsg('anontalk'), + 'href' => &$usertalkUrlDetails['href'], + 'class' => $usertalkUrlDetails['exists']?false:'new' ); - $personal_urls['anonlogin'] = array( 'text' => wfMsg('userlogin'), 'href' => $this->makeSpecialUrl('Userlogin', 'returnto=' . $this->thisurl ) ); } else { - /* Anonymous users personal toolbar */ + $personal_urls['login'] = array( 'text' => wfMsg('userlogin'), 'href' => $this->makeSpecialUrl('Userlogin', 'returnto=' . $this->thisurl ) @@ -487,6 +490,26 @@ class SkinTemplate extends Skin { 'text' => wfMsg( $message ), 'href' => $title->getLocalUrl( $query ) ); } + + function makeTalkUrlDetails( $name, $urlaction='' ) { + $title = Title::newFromText( $name ); + $title = $title->getTalkPage(); + $this->checkTitle($title, $name); + return array( + 'href' => $title->getLocalURL( $urlaction ), + 'exists' => $title->getArticleID() != 0?true:false + ); + } + + function makeArticleUrlDetails( $name, $urlaction='' ) { + $title = Title::newFromText( $name ); + $title= $title->getSubjectPage(); + $this->checkTitle($title, $name); + return array( + 'href' => $title->getLocalURL( $urlaction ), + 'exists' => $title->getArticleID() != 0?true:false + ); + } /** * an array of edit links by default used for the tabs -- 2.20.1