From: umherirrender Date: Tue, 11 Feb 2014 19:04:32 +0000 (+0100) Subject: Add llprop=langname and llprop=autonym for action=query&prop=langlinks X-Git-Tag: 1.31.0-rc.0~16940 X-Git-Url: http://git.cyclocoop.org/%24action?a=commitdiff_plain;h=4ba3a9aea96ee21c035c69999be23580e23f4e0a;p=lhc%2Fweb%2Fwiklou.git Add llprop=langname and llprop=autonym for action=query&prop=langlinks This can helps the client to build a language html. Change-Id: I54c66c8935b0dbbf3bf8e292236119597f1cbe41 --- diff --git a/RELEASE-NOTES-1.23 b/RELEASE-NOTES-1.23 index ffda350fcd..669968da38 100644 --- a/RELEASE-NOTES-1.23 +++ b/RELEASE-NOTES-1.23 @@ -165,6 +165,7 @@ production. * Added prop 'limitreportdata' and 'limitreporthtml' to action=parse. * (bug 58627) Provide language names on action=parse&prop=langlinks. * Deprecated llurl= in favour of llprop=url for action=query&prop=langlinks. +* Added llprop=langname and llprop=autonym for action=query&prop=langlinks. === Languages updated in 1.23 === diff --git a/includes/api/ApiQueryLangLinks.php b/includes/api/ApiQueryLangLinks.php index 506bd2e06d..5a45a28fa8 100644 --- a/includes/api/ApiQueryLangLinks.php +++ b/includes/api/ApiQueryLangLinks.php @@ -117,6 +117,12 @@ class ApiQueryLangLinks extends ApiQueryBase { $entry['url'] = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT ); } } + if ( isset( $prop['langname'] ) ) { + $entry['langname'] = Language::fetchLanguageName( $row->ll_lang, $params['inlanguagecode'] ); + } + if ( isset( $prop['autonym'] ) ) { + $entry['autonym'] = Language::fetchLanguageName( $row->ll_lang ); + } ApiResult::setContent( $entry, $row->ll_title ); $fit = $this->addPageSubItem( $row->ll_from, $entry ); if ( !$fit ) { @@ -131,6 +137,7 @@ class ApiQueryLangLinks extends ApiQueryBase { } public function getAllowedParams() { + global $wgContLang; return array( 'limit' => array( ApiBase::PARAM_DFLT => 10, @@ -148,6 +155,8 @@ class ApiQueryLangLinks extends ApiQueryBase { ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => array( 'url', + 'langname', + 'autonym', ) ), 'lang' => null, @@ -159,6 +168,7 @@ class ApiQueryLangLinks extends ApiQueryBase { 'descending' ) ), + 'inlanguagecode' => $wgContLang->getCode(), ); } @@ -169,11 +179,15 @@ class ApiQueryLangLinks extends ApiQueryBase { 'url' => "Whether to get the full URL (Cannot be used with {$this->getModulePrefix()}prop)", 'prop' => array( 'Which additional properties to get for each interlanguage link', - ' url - Adds the full URL', + ' url - Adds the full URL', + ' langname - Adds the localised language name (best effort, use CLDR extension)', + " Use {$this->getModulePrefix()}inlanguagecode to control the language", + ' autonym - Adds the native language name', ), 'lang' => 'Language code', 'title' => "Link to search for. Must be used with {$this->getModulePrefix()}lang", 'dir' => 'The direction in which to list', + 'inlanguagecode' => 'Language code for localised language names', ); } @@ -185,6 +199,14 @@ class ApiQueryLangLinks extends ApiQueryBase { ApiBase::PROP_TYPE => 'string', ApiBase::PROP_NULLABLE => true ), + 'langname' => array( + ApiBase::PROP_TYPE => 'string', + ApiBase::PROP_NULLABLE => true + ), + 'autonym' => array( + ApiBase::PROP_TYPE => 'string', + ApiBase::PROP_NULLABLE => true + ), '*' => 'string' ) );