* @since 1.18
* @param $param String|Array: Parameter as defined in this class.
* @return Tuple(type, value)
- * @throws MWException
*/
protected function extractParam( $param ) {
if ( is_array( $param ) && isset( $param['raw'] ) ) {
} elseif ( !is_array( $param ) ) {
return array( 'before', $param );
} else {
- throw new MWException( "Invalid message parameter: " . serialize( $param ) );
+ trigger_error(
+ "Invalid message parameter: " . htmlspecialchars( serialize( $param ) ),
+ E_USER_WARNING
+ );
+ return array( 'before', '[INVALID]' );
}
}
* @return string Wikitext parsed into HTML
*/
protected function parseText( $string ) {
- return MessageCache::singleton()->parse( $string, $this->title, /*linestart*/true, $this->interface, $this->language )->getText();
+ $out = MessageCache::singleton()->parse( $string, $this->title, /*linestart*/true, $this->interface, $this->language );
+ return is_object( $out ) ? $out->getText() : $out;
}
/**
}
}
+
+/**
+ * Variant of the Message class.
+ *
+ * Rather than treating the message key as a lookup
+ * value (which is passed to the MessageCache and
+ * translated as necessary), a RawMessage key is
+ * treated as the actual message.
+ *
+ * All other functionality (parsing, escaping, etc.)
+ * is preserved.
+ *
+ * @since 1.21
+ */
+class RawMessage extends Message {
+ /**
+ * Call the parent constructor, then store the key as
+ * the message.
+ *
+ * @param $key Message to use
+ * @param $params Parameters for the message
+ * @see Message::__construct
+ */
+ public function __construct( $key, $params = array() ) {
+ parent::__construct( $key, $params );
+ // The key is the message.
+ $this->message = $key;
+ }
+
+ /**
+ * Fetch the message (in this case, the key).
+ *
+ * @return string
+ */
+ public function fetchMessage() {
+ // Just in case the message is unset somewhere.
+ if( !isset( $this->message ) ) {
+ $this->message = $this->key;
+ }
+ return $this->message;
+ }
+}