From b9b85843572bf283f48285001e276ba7e61b63f6 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 22 Feb 2009 13:37:51 +0100 Subject: updated to MediaWiki 1.14.0 --- includes/SearchMySQL.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'includes/SearchMySQL.php') diff --git a/includes/SearchMySQL.php b/includes/SearchMySQL.php index f9b71c8e..5fc06790 100644 --- a/includes/SearchMySQL.php +++ b/includes/SearchMySQL.php @@ -34,7 +34,10 @@ class SearchMySQL extends SearchEngine { $this->db = $db; } - /** @todo document */ + /** + * Parse the user's query and transform it into an SQL fragment which will + * become part of a WHERE clause + */ function parseQuery( $filteredText, $fulltext ) { global $wgContLang; $lc = SearchEngine::legalSearchChars(); // Minus format chars @@ -54,7 +57,11 @@ class SearchMySQL extends SearchEngine { if( !empty( $terms[3] ) ) { // Match individual terms in result highlighting... $regexp = preg_quote( $terms[3], '/' ); - if( $terms[4] ) $regexp .= "[0-9A-Za-z_]+"; + if( $terms[4] ) { + $regexp = "\b$regexp"; // foo* + } else { + $regexp = "\b$regexp\b"; + } } else { // Match the quoted term in result highlighting... $regexp = preg_quote( str_replace( '"', '', $terms[2] ), '/' ); @@ -122,9 +129,10 @@ class SearchMySQL extends SearchEngine { function queryNamespaces() { if( is_null($this->namespaces) ) return ''; # search all - $namespaces = implode( ',', $this->namespaces ); - if ($namespaces == '') { + if ( !count( $this->namespaces ) ) { $namespaces = '0'; + } else { + $namespaces = $this->db->makeList( $this->namespaces ); } return 'AND page_namespace IN (' . $namespaces . ')'; } -- cgit v1.2.2