From 95d080d7497ab271fa5c56fe28acd356617e8b30 Mon Sep 17 00:00:00 2001 From: Rob Church Date: Sun, 7 May 2006 00:52:12 +0000 Subject: [PATCH] (bug 5846) Link to individual group description pages in Special:Listusers --- RELEASE-NOTES | 1 + includes/SpecialListusers.php | 22 +++++++++++++++++----- includes/User.php | 18 ++++++++++++++++++ languages/Messages.php | 3 +++ languages/MessagesHe.php | 4 ++++ 5 files changed, 43 insertions(+), 5 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 5eb22afd08..0efba697c6 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -221,6 +221,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * (bug 5853) Update for Portuguese messages (pt) * (bug 5851) Use Cyrillic for Kirghiz language name * (bug 5841) Allow the 'EditFilter' hook to return a non-fatal error message +* (bug 5846) Link to individual group description pages in Special:Listusers == Compatibility == diff --git a/includes/SpecialListusers.php b/includes/SpecialListusers.php index a7379699ca..6b1ebb431b 100644 --- a/includes/SpecialListusers.php +++ b/includes/SpecialListusers.php @@ -1,7 +1,10 @@ +# # http://www.mediawiki.org/ # # This program is free software; you can redistribute it and/or modify @@ -185,17 +188,26 @@ class ListUsersPage extends QueryPage { 'ListUsersPage::formatResult' ); $groups = array(); while( $row = $dbr->fetchObject( $result ) ) { - $groups[] = User::getGroupMember( $row->ug_group ); + $groups[$row->ug_group] = User::getGroupMember( $row->ug_group ); } $dbr->freeResult( $result ); if( count( $groups ) > 0 ) { - $groups = $skin->makeLink( wfMsgForContent( 'administrators' ), - htmlspecialchars( implode( ', ', $groups ) ) ); - } + foreach( $groups as $group => $desc ) { + if( $page = User::getGroupPage( $group ) ) { + $list[] = $skin->makeLinkObj( $page, htmlspecialchars( $desc ) ); + } else { + $list[] = htmlspecialchars( $desc ); + } + } + $groups = implode( ', ', $list ); + } else { + $groups = ''; + } + } - return wfSpecialList($name, $groups); + return wfSpecialList( $name, $groups ); } } diff --git a/includes/User.php b/includes/User.php index d2f5501c2d..65e49f4857 100644 --- a/includes/User.php +++ b/includes/User.php @@ -1924,6 +1924,24 @@ class User { array_keys( $wgGroupPermissions ), array( '*', 'user', 'autoconfirmed' ) ); } + + /** + * Get the title of a page describing a particular group + * + * @param $group Name of the group + * @return mixed + */ + function getGroupPage( $group ) { + $page = wfMsgForContent( 'grouppage-' . $group ); + if( !wfEmptyMsg( 'grouppage-' . $group, $page ) ) { + $title = Title::newFromText( $page ); + if( is_object( $title ) ) + return $title; + } + return false; + } + + } ?> diff --git a/languages/Messages.php b/languages/Messages.php index b010952a4e..14daaca1ab 100644 --- a/languages/Messages.php +++ b/languages/Messages.php @@ -755,6 +755,9 @@ Unselected groups will not be changed. You can deselect a group with CTRL + Left 'group-bureaucrat-member' => 'Bureaucrat', 'group-steward-member' => 'Steward', +'grouppage-bot' => 'Project:Bots', +'grouppage-sysop' => 'Project:Administrators', +'grouppage-bureaucrat' => 'Project:Bureaucrats', # Recent changes # diff --git a/languages/MessagesHe.php b/languages/MessagesHe.php index 992c5e802a..2a00bf7b2e 100644 --- a/languages/MessagesHe.php +++ b/languages/MessagesHe.php @@ -693,6 +693,10 @@ $3 $9", "group-bureaucrat-member" => "ביורוקרט", "group-steward-member" => "דייל", +"grouppage-bot" => "Project:בוט", +"grouppage-sysop" => "Project:מפעיל מערכת", +"grouppage-bureaucrat" => "Project:ביורוקרט", + "group-anon-name" => "אנונימי", "group-anon-desc" => "משתמשים אנונימיים", "group-loggedin-name" => "משתמש", -- 2.20.1