(bug 5846) Link to individual group description pages in Special:Listusers
authorRob Church <robchurch@users.mediawiki.org>
Sun, 7 May 2006 00:52:12 +0000 (00:52 +0000)
committerRob Church <robchurch@users.mediawiki.org>
Sun, 7 May 2006 00:52:12 +0000 (00:52 +0000)
RELEASE-NOTES
includes/SpecialListusers.php
includes/User.php
languages/Messages.php
languages/MessagesHe.php

index 5eb22af..0efba69 100644 (file)
@@ -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 ==
 
index a737969..6b1ebb4 100644 (file)
@@ -1,7 +1,10 @@
 <?php
+
 # Copyright (C) 2004 Brion Vibber, lcrocker, Tim Starling,
 # Domas Mituzas, Ashar Voultoiz, Jens Frank, Zhengzhu.
 #
+# © 2006 Rob Church <robchur@gmail.com>
+#
 # 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 );
        }
 }
 
index d2f5501..65e49f4 100644 (file)
@@ -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;
+       }
+       
+       
 }
 
 ?>
index b010952..14daaca 100644 (file)
@@ -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
 #
index 992c5e8..2a00bf7 100644 (file)
@@ -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"   => "משתמש",