From: Sam Reed Date: Wed, 5 Jan 2011 21:51:12 +0000 (+0000) Subject: * (bug 26484) add a lltitles param to prop=langlinks X-Git-Tag: 1.31.0-rc.0~32793 X-Git-Url: https://git.cyclocoop.org/%242?a=commitdiff_plain;h=b7ff4b8b88c8106d6da06e823f6d30ed5da7f527;p=lhc%2Fweb%2Fwiklou.git * (bug 26484) add a lltitles param to prop=langlinks --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 546622082e..3f4221480f 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -79,6 +79,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * (bug 26498) allow LinksUpdate with API * (bug 26485) add a elextlinks param to prop=extlinks * (bug 26483) add a iwtitles param to prop=iwlinks +* (bug 26484) add a lltitles param to prop=langlinks === Languages updated in 1.18 === diff --git a/includes/api/ApiQueryLangLinks.php b/includes/api/ApiQueryLangLinks.php index 0b7c4a3dcd..4dd34957a9 100644 --- a/includes/api/ApiQueryLangLinks.php +++ b/includes/api/ApiQueryLangLinks.php @@ -46,6 +46,11 @@ class ApiQueryLangLinks extends ApiQueryBase { } $params = $this->extractRequestParams(); + + if ( isset( $params['title'] ) && !isset( $params['lang'] ) ) { + $this->dieUsageMsg( array( 'missingparam', 'lang' ) ); + } + $this->addFields( array( 'll_from', 'll_lang', @@ -69,12 +74,23 @@ class ApiQueryLangLinks extends ApiQueryBase { ); } - // Don't order by ll_from if it's constant in the WHERE clause - if ( count( $this->getPageSet()->getGoodTitles() ) == 1 ) { - $this->addOption( 'ORDER BY', 'll_lang' ); + if ( isset( $params['lang'] ) ) { + $this->addWhereFld( 'll_lang', $params['lang'] ); + if ( isset( $params['title'] ) ) { + $this->addWhereFld( 'll_title', $params['title'] ); + $this->addOption( 'ORDER BY', 'll_from' ); + } else { + $this->addOption( 'ORDER BY', 'll_title, ll_from' ); + } } else { - $this->addOption( 'ORDER BY', 'll_from, ll_lang' ); + // Don't order by ll_from if it's constant in the WHERE clause + if ( count( $this->getPageSet()->getGoodTitles() ) == 1 ) { + $this->addOption( 'ORDER BY', 'll_lang' ); + } else { + $this->addOption( 'ORDER BY', 'll_from, ll_lang' ); + } } + $this->addOption( 'LIMIT', $params['limit'] + 1 ); $res = $this->select( __METHOD__ ); @@ -117,6 +133,8 @@ class ApiQueryLangLinks extends ApiQueryBase { ), 'continue' => null, 'url' => false, + 'lang' => null, + 'title' => null, ); } @@ -125,6 +143,8 @@ class ApiQueryLangLinks extends ApiQueryBase { 'limit' => 'How many langlinks to return', 'continue' => 'When more results are available, use this to continue', 'url' => 'Whether to get the full URL', + 'lang' => 'Language code', + 'title' => "Link to search for. Must be used with {$this->getModulePrefix()}lang", ); } @@ -134,6 +154,7 @@ class ApiQueryLangLinks extends ApiQueryBase { public function getPossibleErrors() { return array_merge( parent::getPossibleErrors(), array( + array( 'missingparam', 'lang' ), array( 'code' => '_badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query' ), ) ); }