mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto
synced 2024-11-25 16:58:35 +00:00
50a1f556b7
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
59 lines
1.5 KiB
PHP
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() . ")" );
|
|
}
|
|
}
|
|
}
|