From 9988444a9f4d9cf593885c0a63aabed05bf5a2d1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niklas=20Laxstr=C3=B6m?= Date: Mon, 20 Jun 2011 10:04:55 +0000 Subject: [PATCH] Proposed fix for bug 29450. Don't use the current user's gender for invalid users. Any ideas how to write tests for this? --- includes/parser/CoreParserFunctions.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/includes/parser/CoreParserFunctions.php b/includes/parser/CoreParserFunctions.php index faabcb61f9..d5f492dd9f 100644 --- a/includes/parser/CoreParserFunctions.php +++ b/includes/parser/CoreParserFunctions.php @@ -272,24 +272,27 @@ class CoreParserFunctions { * @param $user string * @return */ - static function gender( $parser, $user ) { + static function gender( $parser, $username ) { wfProfileIn( __METHOD__ ); $forms = array_slice( func_get_args(), 2); + $username = trim( $username ); + // default $gender = User::getDefaultOption( 'gender' ); // allow prefix. - $title = Title::newFromText( $user ); + $title = Title::newFromText( $username ); - if ( is_object( $title ) && $title->getNamespace() == NS_USER ) - $user = $title->getText(); + if ( $title && $title->getNamespace() == NS_USER ) { + $username = $title->getText(); + } // check parameter, or use the ParserOptions if in interface message - $user = User::newFromName( $user ); + $user = User::newFromName( $username ); if ( $user ) { $gender = $user->getOption( 'gender' ); - } elseif ( $parser->getOptions()->getInterfaceMessage() ) { + } elseif ( $username === '' && $parser->getOptions()->getInterfaceMessage() ) { $gender = $parser->getOptions()->getUser()->getOption( 'gender' ); } $ret = $parser->getFunctionLang()->gender( $gender, $forms ); -- 2.20.1