QueryPage: allow arbitrary sorting
authorGergő Tisza <tgr.huwiki@gmail.com>
Fri, 26 Jul 2019 17:51:26 +0000 (19:51 +0200)
committerGergő Tisza <tgr.huwiki@gmail.com>
Fri, 26 Jul 2019 18:18:47 +0000 (20:18 +0200)
When the value field is not provided in QueryPage::getQueryInfo,
it is set to zero, essentially randomizing the result. Use a
sequential index instead.

Change-Id: I8b67268e3c59a51ed00bd832f80df184dd771c3b

includes/specialpage/QueryPage.php

index eb179bf..223f799 100644 (file)
@@ -312,7 +312,7 @@ abstract class QueryPage extends SpecialPage {
                                $num = $res->numRows();
                                # Fetch results
                                $vals = [];
-                               foreach ( $res as $row ) {
+                               foreach ( $res as $i => $row ) {
                                        if ( isset( $row->value ) ) {
                                                if ( $this->usesTimestamps() ) {
                                                        $value = wfTimestamp( TS_UNIX,
@@ -321,7 +321,7 @@ abstract class QueryPage extends SpecialPage {
                                                        $value = intval( $row->value ); // T16414
                                                }
                                        } else {
-                                               $value = 0;
+                                               $value = $i;
                                        }
 
                                        $vals[] = [