X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fdeferred%2FSearchUpdate.php;h=b9a259b1a43ca161f3bfca91962edee44532d0e9;hp=2abf02875e6f64641d7201c780aa2cf7fc532071;hb=e758226c91935a1df2b6fd3ed1f18922d8bfb45b;hpb=16aad56c847b9fc02774f358ceebe55445a872f0 diff --git a/includes/deferred/SearchUpdate.php b/includes/deferred/SearchUpdate.php index 2abf02875e..b9a259b1a4 100644 --- a/includes/deferred/SearchUpdate.php +++ b/includes/deferred/SearchUpdate.php @@ -23,6 +23,8 @@ * @ingroup Search */ +use MediaWiki\MediaWikiServices; + /** * Database independant search index updater * @@ -75,14 +77,15 @@ class SearchUpdate implements DeferrableUpdate { * Perform actual update for the entry */ public function doUpdate() { - global $wgDisableSearchUpdate; + $config = MediaWikiServices::getInstance()->getSearchEngineConfig(); - if ( $wgDisableSearchUpdate || !$this->id ) { + if ( $config->getConfig()->get( 'DisableSearchUpdate' ) || !$this->id ) { return; } - foreach ( SearchEngine::getSearchTypes() as $type ) { - $search = SearchEngine::create( $type ); + $seFactory = MediaWikiServices::getInstance()->getSearchEngineFactory(); + foreach ( $config->getSearchTypes() as $type ) { + $search = $seFactory->create( $type ); if ( !$search->supports( 'search-update' ) ) { continue; } @@ -99,13 +102,12 @@ class SearchUpdate implements DeferrableUpdate { $text = $search->getTextFromContent( $this->title, $this->content ); if ( !$search->textAlreadyUpdatedForIndex() ) { - $text = self::updateText( $text ); + $text = $this->updateText( $text, $search ); } # Perform the actual update $search->update( $this->id, $normalTitle, $search->normalizeText( $text ) ); } - } /** @@ -113,14 +115,16 @@ class SearchUpdate implements DeferrableUpdate { * If you're using a real search engine, you'll probably want to override * this behavior and do something nicer with the original wikitext. * @param string $text + * @param SearchEngine $se Search engine * @return string */ - public static function updateText( $text ) { + public function updateText( $text, SearchEngine $se = null ) { global $wgContLang; # Language-specific strip/conversion $text = $wgContLang->normalizeForSearch( $text ); - $lc = SearchEngine::legalSearchChars() . '&#;'; + $se = $se ?: MediaWikiServices::getInstance()->newSearchEngine(); + $lc = $se->legalSearchChars() . '&#;'; $text = preg_replace( "/<\\/?\\s*[A-Za-z][^>]*?>/", ' ', $wgContLang->lc( " " . $text . " " ) ); # Strip HTML markup