X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialSearch.php;h=171566b6c798059a9093f9fdec2eaed69627c5b5;hb=c219f244b0a306dfd65f49b84fafcf7bfdf70b3a;hp=e6d06329ad741965a5b3222054cff18816387048;hpb=b3b2a72e718cd8c18af9dbb7b1ab80e90dbd79cf;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index e6d06329ad..ed83aafd53 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -102,7 +102,7 @@ class SpecialSearch extends SpecialPage { /** * Entry point * - * @param string $par + * @param string|null $par */ public function execute( $par ) { $request = $this->getRequest(); @@ -115,7 +115,7 @@ class SpecialSearch extends SpecialPage { // parameter, but also as part of the primary url. This can have PII implications // in releasing page view data. As such issue a 301 redirect to the correct // URL. - if ( strlen( $par ) && !strlen( $term ) ) { + if ( $par !== null && $par !== '' && $term === '' ) { $query = $request->getValues(); unset( $query['title'] ); // Strip underscores from title parameter; most of the time we'll want @@ -129,7 +129,7 @@ class SpecialSearch extends SpecialPage { $this->load(); // TODO: This performs database actions on GET request, which is going to // be a problem for our multi-datacenter work. - if ( !is_null( $request->getVal( 'nsRemember' ) ) ) { + if ( $request->getCheck( 'nsRemember' ) ) { $this->saveNamespaces(); // Remove the token from the URL to prevent the user from inadvertently // exposing it (e.g. by pasting it into a public wiki page) or undoing @@ -141,10 +141,7 @@ class SpecialSearch extends SpecialPage { } $this->searchEngineType = $request->getVal( 'srbackend' ); - if ( - !$request->getVal( 'fulltext' ) && - $request->getVal( 'offset' ) === null - ) { + if ( !$request->getVal( 'fulltext' ) && !$request->getCheck( 'offset' ) ) { $url = $this->goResult( $term ); if ( $url !== null ) { // successful 'go' @@ -246,14 +243,12 @@ class SpecialSearch extends SpecialPage { $this->namespaces = $nslist; } elseif ( $profile === 'advanced' ) { $this->namespaces = $nslist; + } elseif ( isset( $profiles[$profile]['namespaces'] ) ) { + $this->namespaces = $profiles[$profile]['namespaces']; } else { - if ( isset( $profiles[$profile]['namespaces'] ) ) { - $this->namespaces = $profiles[$profile]['namespaces']; - } else { - // Unknown profile requested - $profile = 'default'; - $this->namespaces = $profiles['default']['namespaces']; - } + // Unknown profile requested + $profile = 'default'; + $this->namespaces = $profiles['default']['namespaces']; } $this->fulltext = $request->getVal( 'fulltext' ); @@ -295,6 +290,7 @@ class SpecialSearch extends SpecialPage { } $out = $this->getOutput(); + $widgetOptions = $this->getConfig()->get( 'SpecialSearchFormOptions' ); $formWidget = new MediaWiki\Widget\Search\SearchFormWidget( $this, $this->searchConfig, @@ -313,7 +309,7 @@ class SpecialSearch extends SpecialPage { // only do the form render here for the empty $term case. Rendering // the form when a search is provided is repeated below. $out->addHTML( $formWidget->render( - $this->profile, $term, 0, 0, $this->offset, $this->isPowerSearch() + $this->profile, $term, 0, 0, $this->offset, $this->isPowerSearch(), $widgetOptions ) ); return; } @@ -335,13 +331,6 @@ class SpecialSearch extends SpecialPage { $showSuggestion = $title === null || !$title->isKnown(); $search->setShowSuggestion( $showSuggestion ); - $rewritten = $search->transformSearchTerm( $term ); - if ( $rewritten !== $term ) { - $term = $rewritten; - wfDeprecated( 'SearchEngine::transformSearchTerm() (overridden by ' . - get_class( $search ) . ')', '1.32' ); - } - $rewritten = $search->replacePrefixes( $term ); if ( $rewritten !== $term ) { wfDeprecated( 'SearchEngine::replacePrefixes() (overridden by ' . @@ -377,7 +366,7 @@ class SpecialSearch extends SpecialPage { // start rendering the page $out->enableOOUI(); $out->addHTML( $formWidget->render( - $this->profile, $term, $num, $totalRes, $this->offset, $this->isPowerSearch() + $this->profile, $term, $num, $totalRes, $this->offset, $this->isPowerSearch(), $widgetOptions ) ); // did you mean... suggestions @@ -474,8 +463,7 @@ class SpecialSearch extends SpecialPage { $offset = $this->offset; } - $prevnext = $this->getLanguage()->viewPrevNext( - $this->getPageTitle(), + $prevnext = $this->buildPrevNextNavigation( $offset, $this->limit, $this->powerSearchOptions() + [ 'search' => $term ], @@ -660,7 +648,9 @@ class SpecialSearch extends SpecialPage { ) { // Reset namespace preferences: namespaces are not searched // when they're not mentioned in the URL parameters. - foreach ( MWNamespace::getValidNamespaces() as $n ) { + foreach ( MediaWikiServices::getInstance()->getNamespaceInfo()->getValidNamespaces() + as $n + ) { $user->setOption( 'searchNs' . $n, false ); } // The request parameters include all the namespaces to be searched.