diff options
Diffstat (limited to 'includes/api/ApiQueryLangLinks.php')
-rw-r--r-- | includes/api/ApiQueryLangLinks.php | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/includes/api/ApiQueryLangLinks.php b/includes/api/ApiQueryLangLinks.php index ac65d2d2..aa796e31 100644 --- a/includes/api/ApiQueryLangLinks.php +++ b/includes/api/ApiQueryLangLinks.php @@ -67,18 +67,19 @@ class ApiQueryLangLinks extends ApiQueryBase { ); } - $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' ); - if ( isset( $params['lang'] ) ) { + //FIXME: (follow-up) To allow extensions to add to the language links, we need + // to load them all, add the extra links, then apply paging. + // Should not be terrible, it's not going to be more than a few hundred links. + + // Note that, since (ll_from, ll_lang) is a unique key, we don't need + // to sort by ll_title to ensure deterministic ordering. + $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' ); + 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' . $sort ); - } else { - $this->addOption( 'ORDER BY', array( - 'll_title' . $sort, - 'll_from' . $sort - )); } + $this->addOption( 'ORDER BY', 'll_from' . $sort ); } else { // Don't order by ll_from if it's constant in the WHERE clause if ( count( $this->getPageSet()->getGoodTitles() ) == 1 ) { |