My proposed fix to bug 34987: gender not working in many special pages.
I haven't checked if there are other places whereh context is set to Message class, but if there are they might need a fix too.
This commit is contained in:
parent
731b8aa809
commit
455d6dae19
2 changed files with 22 additions and 3 deletions
|
|
@ -90,8 +90,7 @@
|
|||
* ->plain();
|
||||
* @endcode
|
||||
*
|
||||
* @note You cannot parse the text except in the content or interface
|
||||
* @note languages
|
||||
* @note You can parse the text only in the content or interface languages
|
||||
*
|
||||
* @section message_compare_old Comparison with old wfMsg* functions:
|
||||
*
|
||||
|
|
@ -341,6 +340,18 @@ class Message {
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows manipulating the interface message flag directly.
|
||||
* Can be used to restore the flag after setting a language.
|
||||
* @param $value bool
|
||||
* @return Message: $this
|
||||
* @since 1.20
|
||||
*/
|
||||
public function setInterfaceMessageFlag( $value ) {
|
||||
$this->interface = (bool) $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable or disable database use.
|
||||
* @param $value Boolean
|
||||
|
|
|
|||
|
|
@ -768,7 +768,15 @@ class SpecialPage {
|
|||
// Works fine as the first parameter, which appears elsewhere in the
|
||||
// code base. Sighhhh.
|
||||
$args = func_get_args();
|
||||
return call_user_func_array( array( $this->getContext(), 'msg' ), $args );
|
||||
$message = call_user_func_array( array( $this->getContext(), 'msg' ), $args );
|
||||
// RequestContext passes context to wfMessage, and the language is set from
|
||||
// the context, but setting the language for Message class removes the
|
||||
// interface message status, which breaks for example usernameless gender
|
||||
// invokations. Restore the flag when not including special page in content.
|
||||
if ( !$this->including() ) {
|
||||
$message->setInterfaceMessageFlag( true );
|
||||
}
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue