Merge "RevisionStoreDbTestBase, remove redundant needsDB override"
[lhc/web/wiklou.git] / includes / specials / SpecialSearch.php
index 2cff90e..d904ad1 100644 (file)
@@ -76,6 +76,11 @@ class SpecialSearch extends SpecialPage {
         */
        protected $fulltext;
 
+       /**
+        * @var string
+        */
+       protected $sort;
+
        /**
         * @var bool
         */
@@ -198,6 +203,11 @@ class SpecialSearch extends SpecialPage {
                        $this->setExtraParam( 'prefix', $this->mPrefix );
                }
 
+               $this->sort = $request->getVal( 'sort', SearchEngine::DEFAULT_SORT );
+               if ( $this->sort !== SearchEngine::DEFAULT_SORT ) {
+                       $this->setExtraParam( 'sort', $this->sort );
+               }
+
                $user = $this->getUser();
 
                # Extract manually requested namespaces
@@ -269,8 +279,6 @@ class SpecialSearch extends SpecialPage {
         * @param string $term
         */
        public function showResults( $term ) {
-               global $wgContLang;
-
                if ( $this->searchEngineType !== null ) {
                        $this->setExtraParam( 'srbackend', $this->searchEngineType );
                }
@@ -281,7 +289,8 @@ class SpecialSearch extends SpecialPage {
                        $this->searchConfig,
                        $this->getSearchProfiles()
                );
-               $filePrefix = $wgContLang->getFormattedNsText( NS_FILE ) . ':';
+               $filePrefix = MediaWikiServices::getInstance()->getContentLanguage()->
+                       getFormattedNsText( NS_FILE ) . ':';
                if ( trim( $term ) === '' || $filePrefix === trim( $term ) ) {
                        // Empty query -- straight view of search form
                        if ( !Hooks::run( 'SpecialSearchResultsPrepend', [ $this, $out, $term ] ) ) {
@@ -302,6 +311,7 @@ class SpecialSearch extends SpecialPage {
                $search->setFeatureData( 'rewrite', $this->runSuggestion );
                $search->setLimitOffset( $this->limit, $this->offset );
                $search->setNamespaces( $this->namespaces );
+               $search->setSort( $this->sort );
                $search->prefix = $this->mPrefix;
 
                Hooks::run( 'SpecialSearchSetupEngine', [ $this, $this->profile, $search ] );
@@ -558,9 +568,9 @@ class SpecialSearch extends SpecialPage {
                                'a',
                                [
                                        'href' => $this->getPageTitle()->getLocalURL( $params ),
-                                       'title' => $this->msg( 'search-filter-title-prefix-reset' ),
+                                       'title' => $this->msg( 'search-filter-title-prefix-reset' )->text(),
                                ],
-                               $this->msg( 'search-filter-title-prefix-reset' )
+                               $this->msg( 'search-filter-title-prefix-reset' )->text()
                        );
                        $subtitle .= ')';
                        $out->setSubtitle( $subtitle );
@@ -710,9 +720,10 @@ class SpecialSearch extends SpecialPage {
         */
        public function getSearchEngine() {
                if ( $this->searchEngine === null ) {
+                       $services = MediaWikiServices::getInstance();
                        $this->searchEngine = $this->searchEngineType ?
-                               MediaWikiServices::getInstance()->getSearchEngineFactory()->create( $this->searchEngineType ) :
-                               MediaWikiServices::getInstance()->newSearchEngine();
+                               $services->getSearchEngineFactory()->create( $this->searchEngineType ) :
+                               $services->newSearchEngine();
                }
 
                return $this->searchEngine;