function search_event() { global $database, $url, $results_per_page, $p, $search_text, $t, $search_objects, $results, $total_results; // GET EVENT FIELDS $fields = $database->database_query("SELECT eventfield_id AS field_id, eventfield_type AS field_type, eventfield_options AS field_options FROM se_eventfields WHERE eventfield_type<>'5' AND (eventfield_dependency<>'0' OR (eventfield_dependency='0' AND eventfield_display<>'0'))"); $event_query = "se_events.event_title LIKE '%{$search_text}%' OR se_events.event_desc LIKE '%{$search_text}%'"; // LOOP OVER FIELDS while ($field_info = $database->database_fetch_assoc($fields)) { // TEXT FIELD OR TEXTAREA if ($field_info['field_type'] == 1 || $field_info['field_type'] == 2) { if ($event_query != "") { $event_query .= " OR "; } $event_query .= "se_eventvalues.eventvalue_{$field_info['field_id']} LIKE '%{$search_text}%'"; } elseif ($field_info['field_type'] == 3 || $field_info['field_type'] == 4) { $options = unserialize($field_info['field_options']); $langids = array(); $cases = array(); for ($i = 0, $max = count($options); $i < $max; $i++) { $cases[] = "WHEN languagevar_id='{$options[$i]['label']}' THEN {$options[$i][value]}"; $langids[] = $options[$i]['label']; } if (count($cases) != 0) { if ($event_query != "") { $event_query .= " OR "; } $event_query .= "se_eventvalues.eventvalue_{$field_info['field_id']} IN (SELECT CASE " . implode(" ", $cases) . " END AS value FROM se_languagevars WHERE languagevar_id IN (" . implode(", ", $langids) . ") AND languagevar_value LIKE '%{$search_text}%')"; } } elseif ($field_info['field_type'] == 6) { $options = unserialize($field_info['field_options']); $langids = array(); $cases = array(); for ($i = 0, $max = count($options); $i < $max; $i++) { $cases[] = "WHEN languagevar_id='{$options[$i]['label']}' THEN " . pow(2, $i); $langids[] = $options[$i]['label']; } if (count($cases) != 0) { if ($event_query != "") { $event_query .= " OR "; } $event_query .= "se_eventvalues.eventvalue_{$field_info['field_id']} & (SELECT sum(CASE " . implode(" ", $cases) . " END) AS value FROM se_languagevars WHERE languagevar_id IN (" . implode(", ", $langids) . ") AND languagevar_value LIKE '%{$search_text}%')"; } } } // CONSTRUCT QUERY $event_query = "\r\n (\r\n SELECT \r\n '1' AS sub_type,\r\n se_events.event_id AS event_id, \r\n se_events.event_title AS event_title, \r\n se_events.event_photo AS event_photo,\r\n '' AS title,\r\n se_events.event_desc AS description,\r\n '' AS id,\r\n '' AS extra\r\n FROM \r\n se_eventvalues \r\n LEFT JOIN \r\n se_events \r\n ON \r\n se_eventvalues.eventvalue_event_id=se_events.event_id \r\n WHERE \r\n se_events.event_search='1' \r\n AND \r\n ({$event_query})\r\n ORDER BY event_id DESC\r\n )\r\n UNION ALL\r\n (\r\n SELECT\r\n '2' AS sub_type,\r\n se_events.event_id AS event_id, \r\n se_events.event_title AS event_title, \r\n se_events.event_photo AS event_photo,\r\n se_eventmedia.eventmedia_title AS title,\r\n se_eventmedia.eventmedia_desc AS description,\r\n se_eventmedia.eventmedia_id AS id,\r\n se_eventmedia.eventmedia_ext AS extra\r\n FROM\r\n se_eventmedia,\r\n se_eventalbums,\r\n se_events\r\n WHERE\r\n se_eventmedia.eventmedia_eventalbum_id=se_eventalbums.eventalbum_id AND\r\n se_eventalbums.eventalbum_event_id=se_events.event_id AND\r\n se_events.event_search='1'\r\n AND\r\n (\r\n se_eventmedia.eventmedia_title LIKE '%{$search_text}%' OR\r\n se_eventmedia.eventmedia_desc LIKE '%{$search_text}%'\r\n )\r\n ORDER BY eventmedia_id DESC\r\n )\r\n "; // GET TOTAL EVENT RESULTS $total_events = $database->database_num_rows($database->database_query($event_query . " LIMIT 201")); // IF NOT TOTAL ONLY if ($t == "event") { // MAKE EVENT PAGES $start = ($p - 1) * $results_per_page; $limit = $results_per_page + 1; // SEARCH EVENTS $resource = $database->database_query($event_query . " LIMIT {$start}, {$limit}"); while ($event_info = $database->database_fetch_assoc($resource)) { // SET UP EVENT $event = new se_event(); $event->event_info['event_id'] = $event_info['event_id']; $event->event_info['event_photo'] = $event_info['event_photo']; $thumb_path = $event->event_photo('./images/nophoto.gif', TRUE); // IF DESCRIPTION IS LONG if (strlen($event_info['description']) > 150) { $event_info['description'] = substr($event_info['description'], 0, 147) . "..."; } if (strlen($event_info['event_desc']) > 150) { $event_info['event_desc'] = substr($event_info['event_desc'], 0, 147) . "..."; } // RESULT IS A EVENT if ($event_info[sub_type] == 1) { $result_url = $url->url_create('event', NULL, $event_info['event_id']); $result_name = 3000282; $result_name_1 = $event_info['event_title']; $result_desc = 3000284; $result_desc_1 = $event_info['description']; } elseif ($event_info[sub_type] == 2) { $result_url = $url->url_create('event_media', NULL, $event_info['event_id'], $event_info['id']); $result_name = 3000283; $result_name_1 = $event_info['title']; $result_desc = 3000285; $result_desc_1 = "event.php?event_id=" . $event_info[event_id]; $result_desc_2 = $event_info['event_title']; $result_desc_3 = $event_info['description']; // SET THUMBNAIL, IF AVAILABLE switch ($event_info['extra']) { case "jpeg": case "jpg": case "gif": case "png": case "bmp": $thumb_path = $event->event_dir($event->event_info['event_id']) . $event_info['id'] . "_thumb.jpg"; break; case "mp3": case "mp4": case "wav": $thumb_path = "./images/icons/audio_big.gif"; break; case "mpeg": case "mpg": case "mpa": case "avi": case "swf": case "mov": case "ram": case "rm": $thumb_path = "./images/icons/video_big.gif"; break; default: $thumb_path = "./images/icons/file_big.gif"; } if (!file_exists($thumb_path)) { $thumb_path = "./images/icons/file_big.gif"; } } $results[] = array('result_url' => $result_url, 'result_icon' => $thumb_path, 'result_name' => $result_name, 'result_name_1' => $result_name_1, 'result_desc' => $result_desc, 'result_desc_1' => $result_desc_1, 'result_desc_2' => $result_desc_2, 'result_desc_3' => $result_desc_3); } // SET TOTAL RESULTS $total_results = $total_events; } // SET ARRAY VALUES SE_Language::_preload_multi(3000281, 3000282, 3000283, 3000284, 3000285); if ($total_events > 200) { $total_events = "200+"; } $search_objects[] = array('search_type' => 'event', 'search_lang' => 3000281, 'search_total' => $total_events); }