GENDER should use the GenderCache
authorumherirrender <umherirrender_de.wp@web.de>
Sat, 7 Apr 2012 20:45:31 +0000 (22:45 +0200)
committerumherirrender <umherirrender_de.wp@web.de>
Sat, 7 Apr 2012 20:45:31 +0000 (22:45 +0200)
This reused the gender state of a user on a page. This is helpful for
special pages which shows the group name, because the each group name
used gender, which result in often use.

Change-Id: I8e816f54aaa100c3333e84e19299fd194323341d

includes/cache/GenderCache.php
includes/parser/CoreParserFunctions.php

index 342f8db..2cc1061 100644 (file)
@@ -37,13 +37,17 @@ class GenderCache {
 
        /**
         * Returns the gender for given username.
-        * @param $username String: username
+        * @param $username String or User: username
         * @param $caller String: the calling method
         * @return String
         */
        public function getGenderOf( $username, $caller = '' ) {
                global $wgUser;
 
+               if( $username instanceof User ) {
+                       $username = $username->getName();
+               }
+
                $username = strtr( $username, '_', ' ' );
                if ( !isset( $this->cache[$username] ) ) {
 
index 35d03c4..8be9946 100644 (file)
@@ -308,9 +308,9 @@ class CoreParserFunctions {
                // check parameter, or use the ParserOptions if in interface message
                $user = User::newFromName( $username );
                if ( $user ) {
-                       $gender = $user->getOption( 'gender' );
+                       $gender = GenderCache::singleton()->getGenderOf( $user, __METHOD__ );
                } elseif ( $username === '' && $parser->getOptions()->getInterfaceMessage() ) {
-                       $gender = $parser->getOptions()->getUser()->getOption( 'gender' );
+                       $gender = GenderCache::singleton()->getGenderOf( $parser->getOptions()->getUser(), __METHOD__ );
                }
                $ret = $parser->getFunctionLang()->gender( $gender, $forms );
                wfProfileOut( __METHOD__ );