dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Remove unnecessary, unoptimized, unused overview SVG"
[lhc/web/wiklou.git]
/
includes
/
api
/
ApiQueryPrefixSearch.php
diff --git
a/includes/api/ApiQueryPrefixSearch.php
b/includes/api/ApiQueryPrefixSearch.php
index
2fbc518
..
04d3f2c
100644
(file)
--- a/
includes/api/ApiQueryPrefixSearch.php
+++ b/
includes/api/ApiQueryPrefixSearch.php
@@
-51,7
+51,12
@@
class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
$offset = $params['offset'];
$searchEngine = $this->buildSearchEngine( $params );
$offset = $params['offset'];
$searchEngine = $this->buildSearchEngine( $params );
- $titles = $searchEngine->extractTitles( $searchEngine->completionSearchWithVariants( $search ) );
+ $suggestions = $searchEngine->completionSearchWithVariants( $search );
+ $titles = $searchEngine->extractTitles( $suggestions );
+
+ if ( $suggestions->hasMoreResults() ) {
+ $this->setContinueEnumParameter( 'offset', $offset + $limit );
+ }
if ( $resultPageSet ) {
$resultPageSet->setRedirectMergePolicy( function ( array $current, array $new ) {
if ( $resultPageSet ) {
$resultPageSet->setRedirectMergePolicy( function ( array $current, array $new ) {
@@
-60,10
+65,6
@@
class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
}
return $current;
} );
}
return $current;
} );
- if ( count( $titles ) > $limit ) {
- $this->setContinueEnumParameter( 'offset', $offset + $limit );
- array_pop( $titles );
- }
$resultPageSet->populateFromTitles( $titles );
foreach ( $titles as $index => $title ) {
$resultPageSet->setGeneratorData( $title, [ 'index' => $index + $offset + 1 ] );
$resultPageSet->populateFromTitles( $titles );
foreach ( $titles as $index => $title ) {
$resultPageSet->setGeneratorData( $title, [ 'index' => $index + $offset + 1 ] );
@@
-72,10
+73,6
@@
class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
$result = $this->getResult();
$count = 0;
foreach ( $titles as $title ) {
$result = $this->getResult();
$count = 0;
foreach ( $titles as $title ) {
- if ( ++$count > $limit ) {
- $this->setContinueEnumParameter( 'offset', $offset + $limit );
- break;
- }
$vals = [
'ns' => intval( $title->getNamespace() ),
'title' => $title->getPrefixedText(),
$vals = [
'ns' => intval( $title->getNamespace() ),
'title' => $title->getPrefixedText(),
@@
-86,8
+83,9
@@
class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
$vals['pageid'] = intval( $title->getArticleID() );
}
$fit = $result->addValue( [ 'query', $this->getModuleName() ], null, $vals );
$vals['pageid'] = intval( $title->getArticleID() );
}
$fit = $result->addValue( [ 'query', $this->getModuleName() ], null, $vals );
+ ++$count;
if ( !$fit ) {
if ( !$fit ) {
- $this->setContinueEnumParameter( 'offset', $offset + $count
- 1
);
+ $this->setContinueEnumParameter( 'offset', $offset + $count );
break;
}
}
break;
}
}