Chris@76
|
1 <?php
|
Chris@76
|
2
|
Chris@76
|
3 /**
|
Chris@76
|
4 * Simple Machines Forum (SMF)
|
Chris@76
|
5 *
|
Chris@76
|
6 * @package SMF
|
Chris@76
|
7 * @author Simple Machines http://www.simplemachines.org
|
Chris@76
|
8 * @copyright 2011 Simple Machines
|
Chris@76
|
9 * @license http://www.simplemachines.org/about/smf/license.php BSD
|
Chris@76
|
10 *
|
Chris@76
|
11 * @version 2.0
|
Chris@76
|
12 */
|
Chris@76
|
13
|
Chris@76
|
14 if (!defined('SMF'))
|
Chris@76
|
15 die('Hacking attempt...');
|
Chris@76
|
16
|
Chris@76
|
17 /* This file contains database functions specific to search related activity.
|
Chris@76
|
18
|
Chris@76
|
19 void db_search_init()
|
Chris@76
|
20 - adds the functions in this file to the $smcFunc array
|
Chris@76
|
21
|
Chris@76
|
22 boolean smf_db_search_support($search_type)
|
Chris@76
|
23 - whether this database type support the search type $search_type
|
Chris@76
|
24
|
Chris@76
|
25 void smf_db_create_word_search($size)
|
Chris@76
|
26 - create the custom word index table
|
Chris@76
|
27
|
Chris@76
|
28 */
|
Chris@76
|
29
|
Chris@76
|
30 // Add the file functions to the $smcFunc array.
|
Chris@76
|
31 function db_search_init()
|
Chris@76
|
32 {
|
Chris@76
|
33 global $smcFunc;
|
Chris@76
|
34
|
Chris@76
|
35 if (!isset($smcFunc['db_search_query']) || $smcFunc['db_search_query'] != 'smf_db_query')
|
Chris@76
|
36 $smcFunc += array(
|
Chris@76
|
37 'db_search_query' => 'smf_db_query',
|
Chris@76
|
38 'db_search_support' => 'smf_db_search_support',
|
Chris@76
|
39 'db_create_word_search' => 'smf_db_create_word_search',
|
Chris@76
|
40 'db_support_ignore' => true,
|
Chris@76
|
41 );
|
Chris@76
|
42 }
|
Chris@76
|
43
|
Chris@76
|
44 // Does this database type support this search type?
|
Chris@76
|
45 function smf_db_search_support($search_type)
|
Chris@76
|
46 {
|
Chris@76
|
47 $supported_types = array('fulltext');
|
Chris@76
|
48
|
Chris@76
|
49 return in_array($search_type, $supported_types);
|
Chris@76
|
50 }
|
Chris@76
|
51
|
Chris@76
|
52 // Highly specific - create the custom word index table!
|
Chris@76
|
53 function smf_db_create_word_search($size)
|
Chris@76
|
54 {
|
Chris@76
|
55 global $smcFunc;
|
Chris@76
|
56
|
Chris@76
|
57 if ($size == 'small')
|
Chris@76
|
58 $size = 'smallint(5)';
|
Chris@76
|
59 elseif ($size == 'medium')
|
Chris@76
|
60 $size = 'mediumint(8)';
|
Chris@76
|
61 else
|
Chris@76
|
62 $size = 'int(10)';
|
Chris@76
|
63
|
Chris@76
|
64 $smcFunc['db_query']('', '
|
Chris@76
|
65 CREATE TABLE {db_prefix}log_search_words (
|
Chris@76
|
66 id_word {raw:size} unsigned NOT NULL default {string:string_zero},
|
Chris@76
|
67 id_msg int(10) unsigned NOT NULL default {string:string_zero},
|
Chris@76
|
68 PRIMARY KEY (id_word, id_msg)
|
Chris@76
|
69 ) ENGINE=InnoDB',
|
Chris@76
|
70 array(
|
Chris@76
|
71 'string_zero' => '0',
|
Chris@76
|
72 'size' => $size,
|
Chris@76
|
73 )
|
Chris@76
|
74 );
|
Chris@76
|
75 }
|
Chris@76
|
76
|
Chris@76
|
77 ?> |