X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSearchEngine.php;h=3ea0341d8c4e805ebb94f04e0a249547ed3310ca;hb=56c2036f1e780e4ede9e83f803fdf57929daacfb;hp=7eef6c798f502814a3cba688b91fb5fd9f1f8376;hpb=d587615b2984fd15bf4d5b08f32eacb5072b56af;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SearchEngine.php b/includes/SearchEngine.php index 7eef6c798f..3ea0341d8c 100644 --- a/includes/SearchEngine.php +++ b/includes/SearchEngine.php @@ -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; @@ -48,6 +49,14 @@ class SearchEngine { return true; } + /** + * Transform search term in cases when parts of the query came as different GET params (when supported) + * e.g. for prefix queries: search=test&prefix=Main_Page/Archive -> test prefix:Main Page/Archive + */ + function transformSearchTerm( $term ) { + return $term; + } + /** * If an exact title match can be find, or a very slightly close match, * return the title. If no match, returns NULL. @@ -127,7 +136,7 @@ class SearchEngine { # Go to images that exist even if there's no local page. # There may have been a funny upload, or it may be on a shared # file repository such as Wikimedia Commons. - if( $title->getNamespace() == NS_IMAGE ) { + if( $title->getNamespace() == NS_FILE ) { $image = wfFindFile( $title ); if( $image ) { return $title; @@ -150,7 +159,7 @@ class SearchEngine { } public static function legalSearchChars() { - return "A-Za-z_'0-9\\x80-\\xFF\\-"; + return "A-Za-z_'.0-9\\x80-\\xFF\\-"; } /** @@ -461,7 +470,7 @@ class SearchResultSet { } /** - * @return string highlighted suggested query, '' if none + * @return string HTML highlighted suggested query, '' if none */ function getSuggestionSnippet(){ return ''; @@ -538,7 +547,7 @@ class SearchResult { $this->mTitle = Title::makeTitle( $row->page_namespace, $row->page_title ); if( !is_null($this->mTitle) ){ $this->mRevision = Revision::newFromTitle( $this->mTitle ); - if( $this->mTitle->getNamespace() === NS_IMAGE ) + if( $this->mTitle->getNamespace() === NS_FILE ) $this->mImage = wfFindFile( $this->mTitle ); } } @@ -745,7 +754,7 @@ class SearchHighlighter { if($key == 2){ // see if this is an image link $ns = substr($val[0],2,-1); - if( $wgContLang->getNsIndex($ns) != NS_IMAGE ) + if( $wgContLang->getNsIndex($ns) != NS_FILE ) break; } @@ -1115,7 +1124,7 @@ class SearchHighlighter { global $wgContLang; $ns = substr( $matches[1], 0, $colon ); $index = $wgContLang->getNsIndex($ns); - if( $index !== false && ($index == NS_IMAGE || $index == NS_CATEGORY) ) + if( $index !== false && ($index == NS_FILE || $index == NS_CATEGORY) ) return $matches[0]; // return the whole thing else return $matches[2];