* @return Tuple(type, value)
*/
protected function extractParam( $param ) {
- if ( is_array( $param ) ){
+ if ( is_array( $param ) ) {
if ( isset( $param['raw'] ) ) {
return array( 'after', $param['raw'] );
} elseif ( isset( $param['num'] ) ) {
return array( 'before', $this->language->formatBitrate( $param['bitrate'] ) );
} else {
trigger_error(
- "Invalid message parameter: " . htmlspecialchars( serialize( $param ) ),
+ 'Invalid parameter for message "' . $this->getKey() . '": ' .
+ htmlspecialchars( serialize( $param ) ),
E_USER_WARNING
);
return array( 'before', '[INVALID]' );
}
+ } elseif ( $param instanceof Message ) {
+ // Message objects should not be before parameters because
+ // then they'll get double escaped. If the message needs to be
+ // escaped, it'll happen right here when we call toString().
+ return array( 'after', $param->toString() );
} else {
return array( 'before', $param );
}
*/
protected function parseText( $string ) {
$out = MessageCache::singleton()->parse( $string, $this->title, /*linestart*/true, $this->interface, $this->language );
- return is_object( $out ) ? $out->getText() : $out;
+ return $out instanceof ParserOutput ? $out->getText() : $out;
}
/**