From 1a42431b0f84020332d1f4ed66fc02d59c7f191d Mon Sep 17 00:00:00 2001 From: Andrew Garrett Date: Wed, 30 Sep 2009 10:35:34 +0000 Subject: [PATCH] Add signature prefetching logic to Parser, supports r56706. --- includes/parser/Parser.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index 39fbff3ec9..e9db287a20 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -3933,22 +3933,30 @@ class Parser /** * Fetch the user's signature text, if any, and normalize to * validated, ready-to-insert wikitext. + * If you have pre-fetched the nickname or the fancySig option, you can + * specify them here to save a database query. * * @param User $user * @return string - * @private */ - function getUserSig( &$user ) { + function getUserSig( &$user, $nickname = false, $fancySig = null ) { global $wgMaxSigChars; $username = $user->getName(); - $nickname = $user->getOption( 'nickname' ); + + // If not given, retrieve from the user object. + if ( $nickname === false ) + $nickname = $user->getOption( 'nickname' ); + + if ( is_null( $fancySig ) ) + $fancySig = $user->getBoolOption( 'fancysig' ); + $nickname = $nickname == null ? $username : $nickname; if( mb_strlen( $nickname ) > $wgMaxSigChars ) { $nickname = $username; wfDebug( __METHOD__ . ": $username has overlong signature.\n" ); - } elseif( $user->getBoolOption( 'fancysig' ) !== false ) { + } elseif( $fancySig !== false ) { # Sig. might contain markup; validate this if( $this->validateSig( $nickname ) !== false ) { # Validated; clean up (if needed) and return it -- 2.20.1