* $escaped = wfMessage( 'key' )->rawParams( 'apple' )->escaped();
* </pre>
*
- * TODO:
+ * @todo
* - test, can we have tests?
- * - sort out the details marked with fixme
*
* @since 1.17
* @author Niklas Laxström
/**
* In which language to get this message. Overrides the $interface
* variable.
+ *
+ * @var Language
*/
protected $language = null;
* @return Message: $this
*/
public function inLanguage( $lang ) {
- if( $lang instanceof Language || $lang instanceof StubObject ){
+ if ( $lang instanceof Language || $lang instanceof StubUserLang ) {
$this->language = $lang;
} elseif ( is_string( $lang ) ) {
if( $this->language->getCode() != $lang ) {
}
/**
- * Request the message in the wiki's content language.
+ * Request the message in the wiki's content language,
+ * unless it is disabled for this message.
+ * @see $wgForceUIMsgAsContentMsg
* @return Message: $this
*/
public function inContentLanguage() {
+ global $wgForceUIMsgAsContentMsg;
+ if ( in_array( $this->key, (array)$wgForceUIMsgAsContentMsg ) ) {
+ return $this;
+ }
+
global $wgContLang;
$this->interface = false;
$this->language = $wgContLang;
} elseif( $this->format === 'text' ){
$string = $this->transformText( $string );
} elseif( $this->format === 'escaped' ){
- # FIXME: Sanitizer method here?
$string = $this->transformText( $string );
- $string = htmlspecialchars( $string );
+ $string = htmlspecialchars( $string, ENT_QUOTES, 'UTF-8', false );
}
# Raw parameter replacement
/**
* Check whether a message does not exist, or is an empty string
* @return Bool: true if is is and false if not
- * @todo Merge with isDisabled()?
+ * @todo FIXME: Merge with isDisabled()?
*/
public function isBlank() {
$message = $this->fetchMessage();
return $message === false || $message === '' || $message === '-';
}
+ /**
+ * @param $value
+ * @return array
+ */
public static function rawParam( $value ) {
return array( 'raw' => $value );
}
-
+
+ /**
+ * @param $value
+ * @return array
+ */
public static function numParam( $value ) {
return array( 'num' => $value );
}
/**
* Wrapper for what ever method we use to parse wikitext.
* @param $string String: Wikitext message contents
- * @return Wikitext parsed into HTML
+ * @return string Wikitext parsed into HTML
*/
protected function parseText( $string ) {
- global $wgOut;
- return $wgOut->parse( $string, /*linestart*/true, $this->interface, $this->language );
+ return MessageCache::singleton()->parse( $string, $this->title, /*linestart*/true, $this->interface, $this->language )->getText();
}
/**
* Wrapper for what ever method we use to {{-transform wikitext.
* @param $string String: Wikitext message contents
- * @return Wikitext with {{-constructs replaced with their values.
+ * @return string Wikitext with {{-constructs replaced with their values.
*/
protected function transformText( $string ) {
return MessageCache::singleton()->transform( $string, $this->interface, $this->language, $this->title );
/**
* Wrapper for what ever method we use to get message contents
+ *
+ * @return string
*/
protected function fetchMessage() {
if ( !isset( $this->message ) ) {