Backport r45215 to old search ui and move search engine creation before page setup...
authorRobert Stojnić <rainman@users.mediawiki.org>
Wed, 31 Dec 2008 04:48:23 +0000 (04:48 +0000)
committerRobert Stojnić <rainman@users.mediawiki.org>
Wed, 31 Dec 2008 04:48:23 +0000 (04:48 +0000)
includes/SearchEngine.php
includes/specials/SpecialSearch.php

index bf0a722..db7431e 100644 (file)
@@ -13,6 +13,7 @@
 class SearchEngine {
        var $limit = 10;
        var $offset = 0;
+       var $prefix = '';
        var $searchTerms = array();
        var $namespaces = array( NS_MAIN );
        var $showRedirects = false;
index 90cbca5..3dcf3b0 100644 (file)
@@ -115,9 +115,16 @@ class SpecialSearch {
        public function showResults( $term ) {
                global $wgOut, $wgDisableTextSearch, $wgContLang;
                wfProfileIn( __METHOD__ );
-
-               $this->setupPage( $term );
+               
                $this->searchEngine = SearchEngine::create();
+               $search =& $this->searchEngine;
+               $search->setLimitOffset( $this->limit, $this->offset );
+               $search->setNamespaces( $this->namespaces );
+               $search->showRedirects = $this->searchRedirects;
+               $search->prefix = $this->mPrefix;
+               $term = $search->transformSearchTerm($term);
+               
+               $this->setupPage( $term );
                
                if( $wgDisableTextSearch ) {
                        global $wgSearchForwardUrl;
@@ -144,13 +151,8 @@ class SpecialSearch {
                }
                
                $t = Title::newFromText( $term );
-               // fetch search results
-               $search =& $this->searchEngine;
-               $search->setLimitOffset( $this->limit, $this->offset );
-               $search->setNamespaces( $this->namespaces );
-               $search->showRedirects = $this->searchRedirects;
-               $search->prefix = $this->mPrefix;
-               $term = $search->transformSearchTerm($term);
+               
+               // fetch search results         
                $rewritten = $search->replacePrefixes($term);
 
                $titleMatches = $search->searchTitle( $rewritten );
@@ -854,7 +856,7 @@ class SpecialSearchOld {
         */
        function __construct( &$request, &$user ) {
                list( $this->limit, $this->offset ) = $request->getLimitOffset( 20, 'searchlimit' );
-
+               $this->mPrefix = $request->getVal('prefix', '');
                $this->namespaces = $this->powerSearch( $request );
                if( empty( $this->namespaces ) ) {
                        $this->namespaces = SearchEngine::userNamespaces( $user );
@@ -919,6 +921,13 @@ class SpecialSearchOld {
                global $wgOut, $wgUser;
                $sk = $wgUser->getSkin();
 
+               $search = SearchEngine::create();
+               $search->setLimitOffset( $this->limit, $this->offset );
+               $search->setNamespaces( $this->namespaces );
+               $search->showRedirects = $this->searchRedirects;
+               $search->prefix = $this->mPrefix;
+               $term = $search->transformSearchTerm($term);
+               
                $this->setupPage( $term );
 
                $wgOut->addWikiMsg( 'searchresulttext' );
@@ -957,12 +966,7 @@ class SpecialSearchOld {
                        return;
                }
 
-               $wgOut->addHTML( $this->shortDialog( $term ) );
-
-               $search = SearchEngine::create();
-               $search->setLimitOffset( $this->limit, $this->offset );
-               $search->setNamespaces( $this->namespaces );
-               $search->showRedirects = $this->searchRedirects;
+               $wgOut->addHTML( $this->shortDialog( $term ) );         
                $rewritten = $search->replacePrefixes($term);
 
                $titleMatches = $search->searchTitle( $rewritten );