X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryAllImages.php;h=229c07eb79cd253e53b96a5c5fa0dfa835196a1a;hb=b101f0543823f5db81b850329573a678d0e0bd94;hp=6e2c31f55d7f27486473f6937fe83ef8a42d2f19;hpb=b64bc4e9693ec3e676dadc766f75030d8b11a43b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryAllImages.php b/includes/api/ApiQueryAllImages.php index 6e2c31f55d..229c07eb79 100644 --- a/includes/api/ApiQueryAllImages.php +++ b/includes/api/ApiQueryAllImages.php @@ -168,6 +168,20 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { $params['start'], $params['end'] ); + // Include in ORDER BY for uniqueness + $this->addWhereRange( 'img_name', $ascendingOrder ? 'newer' : 'older', null, null ); + + if ( !is_null( $params['continue'] ) ) { + $cont = explode( '|', $params['continue'] ); + $this->dieContinueUsageIf( count( $cont ) != 2 ); + $op = ( $ascendingOrder ? '>' : '<' ); + $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) ); + $continueName = $db->addQuotes( $cont[1] ); + $this->addWhere( "img_timestamp $op $continueTimestamp OR " . + "(img_timestamp = $continueTimestamp AND " . + "img_name $op= $continueName)" + ); + } // Image filters if ( !is_null( $params['user'] ) ) { @@ -254,7 +268,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { if ( $params['sort'] == 'name' ) { $this->setContinueEnumParameter( 'continue', $row->img_name ); } else { - $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->img_timestamp ) ); + $this->setContinueEnumParameter( 'continue', "$row->img_timestamp|$row->img_name" ); } break; } @@ -270,7 +284,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { if ( $params['sort'] == 'name' ) { $this->setContinueEnumParameter( 'continue', $row->img_name ); } else { - $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->img_timestamp ) ); + $this->setContinueEnumParameter( 'continue', "$row->img_timestamp|$row->img_name" ); } break; }