Project

General

Profile

« Previous | Next » 

Revision 770

Added by thorn over 16 years ago

search: added missing code to allow query of external data and to process the search data itself

View differences:

trunk/CHANGELOG
12 12

  
13 13
------------------------------------- 2.7.0 -------------------------------------
14 14
25-Mar-2008 Thomas Hornik
15
+	search: added search_time_limit in settings (mainly for sites with PHP < 4.3.3 and slow search)
15
+	search: added search_time_limit in settings (mainly for sites with PHP < 4.3.3 and slow search)
16
+	search: added missing code to allow query of external data and to process the search data itself
16 17
25-Mar-2008 Matthias Gallas
17 18
#	Fixed missing <body> tag in Admin Interface (ticket #572)
18 19
24-Mar-2008 Matthias Gallas
trunk/wb/search/search.php
47 47
$query = $database->query("SELECT DISTINCT directory FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND directory NOT LIKE '%_searchext'");
48 48
if($query->numRows() > 0) {
49 49
	while($module = $query->fetchRow()) {
50
		$func_name = $module['directory']."_search";
51 50
		$file = WB_PATH.'/modules/'.$module['directory'].'/search.php';
52 51
		if(!file_exists($file)) {
53 52
			$file = WB_PATH.'/modules/'.$module['directory'].'_searchext/search.php';
......
58 57
		if($file!='') {
59 58
			include_once($file);
60 59
			if(function_exists($module['directory']."_search")) {
61
				$search_funcs[$module['directory']] = $func_name;
60
				$search_funcs[$module['directory']] = $module['directory']."_search";
62 61
			}
62
			if(function_exists($module['directory']."_search_before")) {
63
				$search_funcs['__before'][] = $module['directory']."_search_before";
64
			}
65
			if(function_exists($module['directory']."_search_after")) {
66
				$search_funcs['__after'][] = $module['directory']."_search_after";
67
			}
63 68
		}
64 69
	}
65 70
}
......
311 316
	// and even if setlocale() is set, it won't work for multi-linguale sites.
312 317
	// Use the search-module-extension instead.
313 318
	// This is somewhat slower than the orginial method.
319
	
320
	// call $search_funcs['__before'] first
321
	$search_func_vars = array(
322
		'database' => $database, // database-handle
323
		'users' => $users, // array of known user-id/user-name
324
		'search_words' => $search_words, // search-string, prepared for regex
325
		'search_match' => $match, // match-type
326
		'search_url_array' => $search_url_array, // original search-string. ATTN: string is not quoted!
327
		'results_loop_string' => $fetch_results_loop['value'],
328
		'default_max_excerpt' => $search_max_excerpt,
329
		'time_limit' => $search_time_limit // time-limit in secs
330
	);
331
	foreach($search_funcs['__before'] as $func) {
332
		$uf_res = call_user_func($func, $search_func_vars);
333
	}
334
	// now call module-based $search_funcs[]
314 335
	$seen_pages = array(); // seen pages per module.
315 336
	$pages_listed = array(); // seen pages.
316 337
	foreach($sorted_modules AS $module_name) {
......
380 401
			}
381 402
		}
382 403
	}
404
	// now call $search_funcs['__after']
405
	$search_func_vars = array(
406
		'database' => $database, // database-handle
407
		'users' => $users, // array of known user-id/user-name
408
		'search_words' => $search_words, // search-string, prepared for regex
409
		'search_match' => $match, // match-type
410
		'search_url_array' => $search_url_array, // original search-string. ATTN: string is not quoted!
411
		'results_loop_string' => $fetch_results_loop['value'],
412
		'default_max_excerpt' => $search_max_excerpt,
413
		'time_limit' => $search_time_limit // time-limit in secs
414
	);
415
	foreach($search_funcs['__after'] as $func) {
416
		$uf_res = call_user_func($func, $search_func_vars);
417
	}
383 418

  
419

  
384 420
	// Search page details only, such as description, keywords, etc, but only of unseen pages.
385 421
	$max_excerpt_num = 0; // we don't want excerpt here
386 422
	$divider = ".";

Also available in: Unified diff