function message_get_meta_content($msg, &$meta_keywords, &$meta_description) { if (!validate_msg($msg)) { return; } list($tid, $pid) = explode('.', $msg); if (($thread_data = thread_get($tid)) && ($message_content = message_get_content($tid, $pid))) { $meta_keywords_array = search_extract_keywords(strip_tags(htmlentities_decode_array($message_content))); $meta_description = $thread_data['TITLE']; $meta_keywords = htmlentities_array(implode(',', $meta_keywords_array['keywords_array'])); } }
function pm_search_execute($search_string, &$error) { if (!($db = db::get())) { return false; } if (!isset($_SESSION['UID']) || !is_numeric($_SESSION['UID'])) { return false; } $sql = "DELETE QUICK FROM PM_SEARCH_RESULTS WHERE UID = '{$_SESSION['UID']}'"; if (!$db->query($sql)) { return false; } if (!check_search_frequency()) { $error = SEARCH_FREQUENCY_TOO_GREAT; return false; } $search_keywords_array = search_extract_keywords($search_string); if ($search_keywords_array['filtered_count'] == 0) { $error = SEARCH_NO_MATCHES; return false; } $search_string_checked = $db->escape(implode(' ', $search_keywords_array['keywords_array'])); $pm_max_user_messages = abs(forum_get_setting('pm_max_user_messages', null, 100)); $limit = $pm_max_user_messages > 1000 ? 1000 : $pm_max_user_messages; $sql = "INSERT INTO PM_SEARCH_RESULTS (UID, MID, RELEVANCE) SELECT '{$_SESSION['UID']}', PM.MID, "; $sql .= "MATCH(PM_CONTENT.CONTENT, PM.SUBJECT) AGAINST('{$search_string_checked}' IN BOOLEAN MODE) AS RELEVANCE "; $sql .= "FROM PM INNER JOIN PM_TYPE ON (PM_TYPE.MID = PM.MID AND PM_TYPE.UID = {$_SESSION['UID']})"; $sql .= "LEFT JOIN PM_CONTENT ON (PM_CONTENT.MID = PM.MID) WHERE MATCH(PM_CONTENT.CONTENT, PM.SUBJECT) "; $sql .= "AGAINST('{$search_string_checked}' IN BOOLEAN MODE) GROUP BY PM.MID LIMIT {$limit}"; if (!$db->query($sql)) { return false; } if ($db->affected_rows > 0) { return true; } $error = SEARCH_NO_MATCHES; return false; }
function pm_search_execute($search_string, &$error) { if (!($db = db::get())) { return false; } if (($uid = session::get_value('UID')) === false) { return false; } $sql = "DELETE QUICK FROM PM_SEARCH_RESULTS WHERE UID = '{$uid}'"; if (!$db->query($sql)) { return false; } if (!check_search_frequency()) { $error = SEARCH_FREQUENCY_TOO_GREAT; return false; } $search_keywords_array = search_extract_keywords($search_string); if ($search_keywords_array['filtered_count'] == 0) { $error = SEARCH_NO_MATCHES; return false; } $search_string_checked = $db->escape(implode(' ', $search_keywords_array['keywords_array'])); $pm_max_user_messages = abs(forum_get_setting('pm_max_user_messages', null, 100)); $limit = $pm_max_user_messages > 1000 ? 1000 : $pm_max_user_messages; $pm_inbox_items = PM_INBOX_ITEMS; $pm_sent_items = PM_SENT_ITEMS; $pm_outbox_items = PM_OUTBOX_ITEMS; $pm_saved_out = PM_SAVED_OUT; $pm_saved_in = PM_SAVED_IN; $pm_draft_items = PM_DRAFT_ITEMS; $sql = "INSERT INTO PM_SEARCH_RESULTS (UID, MID, TYPE, FROM_UID, TO_UID, "; $sql .= "SUBJECT, RECIPIENTS, CREATED) SELECT {$uid}, PM.MID, PM.TYPE, "; $sql .= "PM.FROM_UID, PM.TO_UID, PM.SUBJECT, PM.RECIPIENTS, PM.CREATED "; $sql .= "FROM PM LEFT JOIN PM_CONTENT ON (PM_CONTENT.MID = PM.MID) "; $sql .= "WHERE (((PM.TYPE & {$pm_inbox_items} > 0) AND PM.TO_UID = '{$uid}') "; $sql .= "OR ((PM.TYPE & {$pm_sent_items} > 0) AND PM.FROM_UID = '{$uid}' AND PM.SMID = 0) "; $sql .= "OR ((PM.TYPE & {$pm_outbox_items} > 0) AND PM.FROM_UID = '{$uid}') "; $sql .= "OR ((PM.TYPE = {$pm_saved_out} AND PM.FROM_UID = '{$uid}') OR "; $sql .= "((PM.TYPE & {$pm_saved_in} > 0) AND PM.TO_UID = '{$uid}') OR "; $sql .= "((PM.TYPE & {$pm_draft_items} > 0) AND PM.FROM_UID = '{$uid}'))) "; $sql .= "AND (MATCH(PM_CONTENT.CONTENT) AGAINST('{$search_string_checked}' IN BOOLEAN MODE) "; $sql .= "OR (MATCH(PM.SUBJECT) AGAINST('{$search_string_checked}' IN BOOLEAN MODE))) "; $sql .= "ORDER BY CREATED LIMIT {$limit}"; if (!$db->query($sql)) { return false; } if ($db->affected_rows > 0) { return true; } $error = SEARCH_NO_MATCHES; return false; }
function search_get_keywords($remove_non_matches = true) { if (!($db = db::get())) { return false; } if (!($table_prefix = get_table_prefix())) { return false; } if (!isset($_SESSION['UID']) || !is_numeric($_SESSION['UID'])) { return false; } $sql = "SELECT USER_VALUE FROM `{$table_prefix}USER_TRACK` "; $sql .= "WHERE UID = '{$_SESSION['UID']}' AND USER_KEY = 'LAST_SEARCH_KEYWORDS'"; if (!($result = $db->query($sql))) { return false; } if ($result->num_rows == 0) { return false; } list($search_keywords) = $result->fetch_row(); $keywords_array = search_extract_keywords($search_keywords); return search_strip_special_chars($keywords_array['keywords_array'], $remove_non_matches); }
function message_get_meta_content($msg, &$meta_keywords, &$meta_description) { if (!validate_msg($msg)) { return; } list($tid) = explode('.', $msg); if (($thread_data = thread_get($tid)) && ($message_content = message_get_content($tid, 1))) { $meta_keywords_array = search_extract_keywords(strip_tags(htmlentities_decode_array($message_content))); list($meta_description) = explode("\n", wordwrap($message_content, 150)); $meta_keywords = htmlentities_array(implode(',', array_map('message_clean_meta_keyword', $meta_keywords_array['keywords_array']))); } }
function search_get_keywords($remove_non_matches = true) { if (!($db = db::get())) { return false; } if (!($table_prefix = get_table_prefix())) { return false; } if (($uid = session::get_value('UID')) === false) { return false; } $sql = "SELECT LAST_SEARCH_KEYWORDS FROM `{$table_prefix}USER_TRACK` "; $sql .= "WHERE UID = '{$uid}'"; if (!($result = $db->query($sql))) { return false; } if ($result->num_rows == 0) { return false; } list($search_keywords) = $result->fetch_row(); $keywords_array = search_extract_keywords($search_keywords); return search_strip_special_chars($keywords_array['keywords_array'], $remove_non_matches); }