/**
* 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] ) ) {
// 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__ );