From d9022f63880ce039446fba8364f68e656b7bf4cb Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 3 May 2012 13:01:35 +0200 Subject: Update to MediaWiki 1.19.0 --- includes/api/ApiQueryAllmessages.php | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'includes/api/ApiQueryAllmessages.php') diff --git a/includes/api/ApiQueryAllmessages.php b/includes/api/ApiQueryAllmessages.php index d636c613..44774927 100644 --- a/includes/api/ApiQueryAllmessages.php +++ b/includes/api/ApiQueryAllmessages.php @@ -24,11 +24,6 @@ * @file */ -if ( !defined( 'MEDIAWIKI' ) ) { - // Eclipse helper - will be ignored in production - require_once( 'ApiQueryBase.php' ); -} - /** * A query action to return messages from site message cache * @@ -65,7 +60,18 @@ class ApiQueryAllmessages extends ApiQueryBase { // Determine which messages should we print if ( in_array( '*', $params['messages'] ) ) { - $message_names = array_keys( Language::getMessagesFor( 'en' ) ); + $message_names = Language::getMessageKeysFor( $langObj->getCode() ); + if ( $params['includelocal'] ) { + global $wgLanguageCode; + $message_names = array_unique( array_merge( + $message_names, + // Pass in the content language code so we get local messages that have a + // MediaWiki:msgkey page. We might theoretically miss messages that have no + // MediaWiki:msgkey page but do have a MediaWiki:msgkey/lang page, but that's + // just a stupid case. + MessageCache::singleton()->getAllMessageKeys( $wgLanguageCode ) + ) ); + } sort( $message_names ); $messages_target = $message_names; } else { @@ -158,7 +164,9 @@ class ApiQueryAllmessages extends ApiQueryBase { } else { $msgString = $msg->plain(); } - ApiResult::setContent( $a, $msgString ); + if ( !$params['nocontent'] ) { + ApiResult::setContent( $a, $msgString ); + } if ( isset( $prop['default'] ) ) { $default = wfMessage( $message )->inLanguage( $langObj )->useDatabase( false ); if ( !$default->exists() ) { @@ -204,6 +212,8 @@ class ApiQueryAllmessages extends ApiQueryBase { ) ), 'enableparser' => false, + 'nocontent' => false, + 'includelocal' => false, 'args' => array( ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_ALLOW_DUPLICATES => true, @@ -230,7 +240,11 @@ class ApiQueryAllmessages extends ApiQueryBase { 'messages' => 'Which messages to output. "*" (default) means all messages', 'prop' => 'Which properties to get', 'enableparser' => array( 'Set to enable parser, will preprocess the wikitext of message', - 'Will substitute magic words, handle templates etc.' ), + 'Will substitute magic words, handle templates etc.' ), + 'nocontent' => 'If set, do not include the content of the messages in the output.', + 'includelocal' => array( "Also include local messages, i.e. messages that don't exist in the software but do exist as a MediaWiki: page.", + "This lists all MediaWiki: pages, so it will also list those that aren't 'really' messages such as Common.js", + ), 'title' => 'Page name to use as context when parsing message (for enableparser option)', 'args' => 'Arguments to be substituted into message', 'prefix' => 'Return messages with this prefix', @@ -246,7 +260,7 @@ class ApiQueryAllmessages extends ApiQueryBase { return 'Return messages from this site'; } - protected function getExamples() { + public function getExamples() { return array( 'api.php?action=query&meta=allmessages&refix=ipb-', 'api.php?action=query&meta=allmessages&ammessages=august|mainpage&amlang=de', -- cgit v1.2.3-54-g00ecf