Chris@76: 'smf_db_search_query', Chris@76: 'db_search_support' => 'smf_db_search_support', Chris@76: 'db_create_word_search' => 'smf_db_create_word_search', Chris@76: 'db_support_ignore' => false, Chris@76: ); Chris@76: } Chris@76: Chris@76: // Does this database type support this search type? Chris@76: function smf_db_search_support($search_type) Chris@76: { Chris@76: $supported_types = array('custom'); Chris@76: Chris@76: return in_array($search_type, $supported_types); Chris@76: } Chris@76: Chris@76: // Returns the correct query for this search type. Chris@76: function smf_db_search_query($identifier, $db_string, $db_values = array(), $connection = null) Chris@76: { Chris@76: global $smcFunc; Chris@76: Chris@76: $replacements = array( Chris@76: 'create_tmp_log_search_topics' => array( Chris@76: '~mediumint\(\d\)~i' => 'int', Chris@76: '~TYPE=HEAP~i' => '', Chris@76: ), Chris@76: 'create_tmp_log_search_messages' => array( Chris@76: '~mediumint\(\d\)~i' => 'int', Chris@76: '~TYPE=HEAP~i' => '', Chris@76: ), Chris@76: ); Chris@76: Chris@76: if (isset($replacements[$identifier])) Chris@76: $db_string = preg_replace(array_keys($replacements[$identifier]), array_values($replacements[$identifier]), $db_string); Chris@76: elseif (preg_match('~^\s*INSERT\sIGNORE~i', $db_string) != 0) Chris@76: { Chris@76: $db_string = preg_replace('~^\s*INSERT\sIGNORE~i', 'INSERT', $db_string); Chris@76: // Don't error on multi-insert. Chris@76: $db_values['db_error_skip'] = true; Chris@76: } Chris@76: Chris@76: $return = $smcFunc['db_query']('', $db_string, Chris@76: $db_values, $connection Chris@76: ); Chris@76: Chris@76: return $return; Chris@76: } Chris@76: Chris@76: // Highly specific - create the custom word index table! Chris@76: function smf_db_create_word_search($size) Chris@76: { Chris@76: global $smcFunc; Chris@76: Chris@76: $size = 'int'; Chris@76: Chris@76: $smcFunc['db_query']('', ' Chris@76: CREATE TABLE {db_prefix}log_search_words ( Chris@76: id_word {raw:size} NOT NULL default {string:string_zero}, Chris@76: id_msg int(10) NOT NULL default {string:string_zero}, Chris@76: PRIMARY KEY (id_word, id_msg) Chris@76: )', Chris@76: array( Chris@76: 'size' => $size, Chris@76: 'string_zero' => '0', Chris@76: ) Chris@76: ); Chris@76: } Chris@76: Chris@76: ?>