mediawiki-extensions-Scribunto/engines/LuaCommon/MessageLibrary.php
Jackmcbarn 50a1f556b7 Remove leftover code for titles in messages
Since the code related to titles in messages was removed from
mw.message.lua, remove it from here as well. Titles have no effect since
only the plain format is available.

Change-Id: I0c96a4e831abe61100b48cb6a898ad8dbffd8a72
2014-03-18 13:52:51 -04:00

59 lines
1.5 KiB
PHP

<?php
class Scribunto_LuaMessageLibrary extends Scribunto_LuaLibraryBase {
function register() {
$lib = array(
'plain' => array( $this, 'messagePlain' ),
'check' => array( $this, 'messageCheck' ),
);
// Get the correct default language from the parser
if ( $this->getParser() ) {
$lang = $this->getParser()->getTargetLanguage();
} else {
global $wgContLang;
$lang = $wgContLang;
}
$this->getEngine()->registerInterface( 'mw.message.lua', $lib, array(
'lang' => $lang->getCode(),
) );
}
private function makeMessage( $data, $setParams ) {
if ( isset( $data['rawMessage'] ) ) {
$msg = new RawMessage( $data['rawMessage'] );
} else {
$msg = Message::newFallbackSequence( $data['keys'] );
}
$msg->inLanguage( $data['lang'] )
->useDatabase( $data['useDB'] );
if ( $setParams ) {
$msg->params( array_values( $data['params'] ) );
}
return $msg;
}
function messagePlain( $data ) {
try {
$msg = $this->makeMessage( $data, true );
return array( $msg->plain() );
} catch( MWException $ex ) {
throw new Scribunto_LuaError( "msg:plain() failed (" . $ex->getMessage() . ")" );
}
}
function messageCheck( $what, $data ) {
if ( !in_array( $what, array( 'exists', 'isBlank', 'isDisabled' ) ) ) {
throw new Scribunto_LuaError( "invalid what for 'messageCheck'" );
}
try {
$msg = $this->makeMessage( $data, false );
return array( call_user_func( array( $msg, $what ) ) );
} catch( MWException $ex ) {
throw new Scribunto_LuaError( "msg:$what() failed (" . $ex->getMessage() . ")" );
}
}
}