X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fsearch%2FSearchMySQL.php;h=cae342670e6036eab2d0c471eee18bd92bf127fe;hb=6fe6025ac60bbf86daa53fc86b35cb580c93238c;hp=6253b5588e6b07f8b50e1feb6eafdee76d2d4449;hpb=d80a3827ab6e1ab00cb6ac8dd329ed43ae015353;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/search/SearchMySQL.php b/includes/search/SearchMySQL.php index 6253b5588e..cae342670e 100644 --- a/includes/search/SearchMySQL.php +++ b/includes/search/SearchMySQL.php @@ -24,6 +24,8 @@ * @ingroup Search */ +use MediaWiki\MediaWikiServices; + /** * Search engine hook for MySQL 4+ * @ingroup Search @@ -43,8 +45,6 @@ class SearchMySQL extends SearchDatabase { * @return array */ private function parseQuery( $filteredText, $fulltext ) { - global $wgContLang; - $lc = $this->legalSearchChars( self::CHARS_NO_SYNTAX ); // Minus syntax chars (" and *) $searchon = ''; $this->searchTerms = []; @@ -76,7 +76,8 @@ class SearchMySQL extends SearchDatabase { // Some languages such as Serbian store the input form in the search index, // so we may need to search for matches in multiple writing system variants. - $convertedVariants = $wgContLang->autoConvertToAllVariants( $term ); + $contLang = MediaWikiServices::getInstance()->getContentLanguage(); + $convertedVariants = $contLang->autoConvertToAllVariants( $term ); if ( is_array( $convertedVariants ) ) { $variants = array_unique( array_values( $convertedVariants ) ); } else { @@ -87,9 +88,7 @@ class SearchMySQL extends SearchDatabase { // around problems with minimum lengths and encoding in MySQL's // fulltext engine. // For Chinese this also inserts spaces between adjacent Han characters. - $strippedVariants = array_map( - [ $wgContLang, 'normalizeForSearch' ], - $variants ); + $strippedVariants = array_map( [ $contLang, 'normalizeForSearch' ], $variants ); // Some languages such as Chinese force all variants to a canonical // form when stripping to the low-level search index, so to be sure @@ -134,10 +133,8 @@ class SearchMySQL extends SearchDatabase { } private function regexTerm( $string, $wildcard ) { - global $wgContLang; - $regex = preg_quote( $string, '/' ); - if ( $wgContLang->hasWordBreaks() ) { + if ( MediaWikiServices::getInstance()->getContentLanguage()->hasWordBreaks() ) { if ( $wildcard ) { // Don't cut off the final bit! $regex = "\b$regex"; @@ -147,12 +144,12 @@ class SearchMySQL extends SearchDatabase { } else { // For Chinese, words may legitimately abut other words in the text literal. // Don't add \b boundary checks... note this could cause false positives - // for latin chars. + // for Latin chars. } return $regex; } - public static function legalSearchChars( $type = self::CHARS_ALL ) { + public function legalSearchChars( $type = self::CHARS_ALL ) { $searchChars = parent::legalSearchChars( $type ); if ( $type === self::CHARS_ALL ) { // " for phrase, * for wildcard @@ -389,8 +386,6 @@ class SearchMySQL extends SearchDatabase { * @return mixed|string */ function normalizeText( $string ) { - global $wgContLang; - $out = parent::normalizeText( $string ); // MySQL fulltext index doesn't grok utf-8, so we @@ -398,7 +393,7 @@ class SearchMySQL extends SearchDatabase { $out = preg_replace_callback( "/([\\xc0-\\xff][\\x80-\\xbf]*)/", [ $this, 'stripForSearchCallback' ], - $wgContLang->lc( $out ) ); + MediaWikiServices::getInstance()->getContentLanguage()->lc( $out ) ); // And to add insult to injury, the default indexing // ignores short words... Pad them so we can pass them