$groupName = User::getGroupName( $ueg );
$userGroups[] = User::makeGroupLinkHTML( $ueg, $groupName );
- $memberName = User::getGroupMember( $ueg );
+ $memberName = User::getGroupMember( $ueg, $user->getName() );
$userMembers[] = User::makeGroupLinkHTML( $ueg, $memberName );
}
asort( $userGroups );
* Get the localized descriptive name for a member of a group, if it exists
*
* @param $group String Internal group name
+ * @param $username String Username for gender (since 1.19)
* @return String Localized name for group member
*/
- public static function getGroupMember( $group ) {
- $msg = wfMessage( "group-$group-member" );
+ public static function getGroupMember( $group, $username = '#' ) {
+ $msg = wfMessage( "group-$group-member", $username );
return $msg->isBlank() ? $group : $msg->text();
}
if ( isset( $this->groups[$group] ) ) {
return;
}
- $list[] = self::buildGroupLink( $group );
+ $list[] = self::buildGroupLink( $group, $userName );
}
$groups = $this->getLang()->commaList( $list );
if( count( $groups_list ) > 0 ) {
$list = array();
foreach( $groups_list as $group )
- $list[] = self::buildGroupLink( $group );
+ $list[] = self::buildGroupLink( $group, $userPage->getText() );
$groups = $this->getLang()->commaList( $list );
} else {
$groups = '';
* @param $group String: group name
* @return string
*/
- protected static function buildGroupLink( $group ) {
- static $cache = array();
- if( !isset( $cache[$group] ) )
- $cache[$group] = User::makeGroupLinkHtml( $group, htmlspecialchars( User::getGroupMember( $group ) ) );
- return $cache[$group];
+ protected static function buildGroupLink( $group, $username ) {
+ return User::makeGroupLinkHtml( $group, htmlspecialchars( User::getGroupMember( $group, $username ) ) );
}
}
wfMessage( 'editinguser' )->params( wfEscapeWikiText( $user->getName() ) )->rawParams( $userToolLinks )->parse() .
wfMsgExt( 'userrights-groups-help', array( 'parse' ) ) .
$grouplist .
- Xml::tags( 'p', null, $this->groupCheckboxes( $groups ) ) .
+ Xml::tags( 'p', null, $this->groupCheckboxes( $groups, $user ) ) .
Xml::openElement( 'table', array( 'border' => '0', 'id' => 'mw-userrights-table-outer' ) ) .
"<tr>
<td class='mw-label'>" .
* @param $usergroups Array: groups the user belongs to
* @return string XHTML table element with checkboxes
*/
- private function groupCheckboxes( $usergroups ) {
+ private function groupCheckboxes( $usergroups, $user ) {
$allgroups = $this->getAllGroups();
$ret = '';
foreach( $column as $group => $checkbox ) {
$attr = $checkbox['disabled'] ? array( 'disabled' => 'disabled' ) : array();
+ $member = User::getGroupMember( $group, $user->getName() );
if ( $checkbox['irreversible'] ) {
- $text = htmlspecialchars( wfMsg( 'userrights-irreversible-marker',
- User::getGroupMember( $group ) ) );
+ $text = wfMessage( 'userrights-irreversible-marker', $member )->escaped();
} else {
- $text = htmlspecialchars( User::getGroupMember( $group ) );
+ $text = htmlspecialchars( $member );
}
$checkboxHtml = Xml::checkLabel( $text, "wpGroup-" . $group,
"wpGroup-" . $group, $checkbox['set'], $attr );
'group-suppress' => 'Oversights',
'group-all' => '(all)',
-'group-user-member' => 'user',
-'group-autoconfirmed-member' => 'autoconfirmed user',
-'group-bot-member' => 'bot',
-'group-sysop-member' => 'administrator',
-'group-bureaucrat-member' => 'bureaucrat',
-'group-suppress-member' => 'oversight',
+'group-user-member' => '{{GENDER:$1|user}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|autoconfirmed user}}',
+'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|administrator}}',
+'group-bureaucrat-member' => '{{GENDER:$1|bureaucrat}}',
+'group-suppress-member' => '{{GENDER:$1|oversight}}',
'grouppage-user' => '{{ns:project}}:Users',
'grouppage-autoconfirmed' => '{{ns:project}}:Autoconfirmed users',