X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fsearch%2FSearchEngine.php;h=ad9f93473018e7f69c61d8835d04d52ea5cbf414;hb=1dee28cb5f1efd6d9e14d6cc1d0c73c3f69269b4;hp=30c2271916e90aab8728e0c6082d5e951cc0520b;hpb=cd5372409f5e93f8c93f2a8c7b32d8828f059321;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/search/SearchEngine.php b/includes/search/SearchEngine.php index 30c2271916..ad9f934730 100644 --- a/includes/search/SearchEngine.php +++ b/includes/search/SearchEngine.php @@ -32,6 +32,8 @@ use MediaWiki\MediaWikiServices; * @ingroup Search */ abstract class SearchEngine { + const DEFAULT_SORT = 'relevance'; + /** @var string */ public $prefix = ''; @@ -49,7 +51,7 @@ abstract class SearchEngine { /** @var bool */ protected $showSuggestion = true; - private $sort = 'relevance'; + private $sort = self::DEFAULT_SORT; /** @var array Feature values */ protected $features = []; @@ -232,10 +234,8 @@ abstract class SearchEngine { * @return string */ public function normalizeText( $string ) { - global $wgContLang; - // Some languages such as Chinese require word segmentation - return $wgContLang->segmentByWord( $string ); + return MediaWikiServices::getInstance()->getContentLanguage()->segmentByWord( $string ); } /** @@ -257,8 +257,8 @@ abstract class SearchEngine { * @return SearchNearMatcher */ public function getNearMatcher( Config $config ) { - global $wgContLang; - return new SearchNearMatcher( $config, $wgContLang ); + return new SearchNearMatcher( $config, + MediaWikiServices::getInstance()->getContentLanguage() ); } /** @@ -266,8 +266,9 @@ abstract class SearchEngine { * @return SearchNearMatcher */ protected static function defaultNearMatcher() { - $config = MediaWikiServices::getInstance()->getMainConfig(); - return MediaWikiServices::getInstance()->newSearchEngine()->getNearMatcher( $config ); + $services = MediaWikiServices::getInstance(); + $config = $services->getMainConfig(); + return $services->newSearchEngine()->getNearMatcher( $config ); } /** @@ -347,13 +348,13 @@ abstract class SearchEngine { /** * Get the valid sort directions. All search engines support 'relevance' but others - * might support more. The default in all implementations should be 'relevance.' + * might support more. The default in all implementations must be 'relevance.' * * @since 1.25 * @return string[] the valid sort directions for setSort */ public function getValidSorts() { - return [ 'relevance' ]; + return [ self::DEFAULT_SORT ]; } /** @@ -415,8 +416,6 @@ abstract class SearchEngine { $withAllKeyword = true, $withPrefixSearchExtractNamespaceHook = false ) { - global $wgContLang; - $parsed = $query; if ( strpos( $query, ':' ) === false ) { // nothing to do return false; @@ -445,7 +444,7 @@ abstract class SearchEngine { if ( !$allQuery && strpos( $query, ':' ) !== false ) { $prefix = str_replace( ' ', '_', substr( $query, 0, strpos( $query, ':' ) ) ); - $index = $wgContLang->getNsIndex( $prefix ); + $index = MediaWikiServices::getInstance()->getContentLanguage()->getNsIndex( $prefix ); if ( $index !== false ) { $extractedNamespace = [ $index ]; $parsed = substr( $query, strlen( $prefix ) + 1 ); @@ -625,9 +624,8 @@ abstract class SearchEngine { $results = $this->completionSearchBackendOverfetch( $search ); $fallbackLimit = 1 + $this->limit - $results->getSize(); if ( $fallbackLimit > 0 ) { - global $wgContLang; - - $fallbackSearches = $wgContLang->autoConvertToAllVariants( $search ); + $fallbackSearches = MediaWikiServices::getInstance()->getContentLanguage()-> + autoConvertToAllVariants( $search ); $fallbackSearches = array_diff( array_unique( $fallbackSearches ), [ $search ] ); foreach ( $fallbackSearches as $fbs ) {