function search_group() { global $database, $url, $results_per_page, $p, $search_text, $t, $search_objects, $results, $total_results; // GET GROUP FIELDS $fields = $database->database_query("SELECT groupfield_id AS field_id, groupfield_type AS field_type, groupfield_options AS field_options FROM se_groupfields WHERE groupfield_type<>'5' AND (groupfield_dependency<>'0' OR (groupfield_dependency='0' AND groupfield_display<>'0'))"); $group_query = "se_groups.group_title LIKE '%{$search_text}%' OR se_groups.group_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 ($group_query != "") { $group_query .= " OR "; } $group_query .= "se_groupvalues.groupvalue_" . $field_info['field_id'] . " LIKE '%{$search_text}%'"; // RADIO OR SELECT BOX } 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 ($group_query != "") { $group_query .= " OR "; } $group_query .= "se_groupvalues.groupvalue_" . $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}%')"; } // CHECKBOX } 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 ($group_query != "") { $group_query .= " OR "; } $group_query .= "se_groupvalues.groupvalue_" . $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 $group_query = "\r\n\t(\r\n\tSELECT \r\n\t '1' AS sub_type,\r\n\t se_groups.group_id AS group_id, \r\n\t se_groups.group_title AS group_title, \r\n\t se_groups.group_photo AS group_photo,\r\n\t '' AS title,\r\n\t se_groups.group_desc AS description,\r\n\t '' AS id,\r\n\t '' AS extra\r\n\tFROM \r\n\t se_groupvalues \r\n\tLEFT JOIN \r\n\t se_groups \r\n\tON \r\n\t se_groupvalues.groupvalue_group_id=se_groups.group_id \r\n\tWHERE \r\n\t se_groups.group_search='1' \r\n\t AND \r\n\t ({$group_query})\r\n\tORDER BY group_id DESC\r\n\t)\r\n\tUNION ALL\r\n\t(\r\n\tSELECT\r\n '2' AS sub_type,\r\n\t se_groups.group_id AS group_id, \r\n\t se_groups.group_title AS group_title, \r\n\t se_groups.group_photo AS group_photo,\r\n\t se_groupmedia.groupmedia_title AS title,\r\n\t se_groupmedia.groupmedia_desc AS description,\r\n\t se_groupmedia.groupmedia_id AS id,\r\n\t se_groupmedia.groupmedia_ext AS extra\r\n\tFROM\r\n\t se_groupmedia,\r\n\t se_groupalbums,\r\n\t se_groups\r\n\tWHERE\r\n\t se_groupmedia.groupmedia_groupalbum_id=se_groupalbums.groupalbum_id AND\r\n\t se_groupalbums.groupalbum_group_id=se_groups.group_id AND\r\n\t se_groups.group_search='1'\r\n\t AND\r\n\t (\r\n\t se_groupmedia.groupmedia_title LIKE '%{$search_text}%' OR\r\n\t se_groupmedia.groupmedia_desc LIKE '%{$search_text}%'\r\n\t )\r\n\tORDER BY groupmedia_id DESC\r\n\t)\r\n\tUNION ALL\r\n\t(\r\n\tSELECT\r\n '3' AS sub_type,\r\n\t se_groups.group_id AS group_id, \r\n\t se_groups.group_title AS group_title, \r\n\t se_groups.group_photo AS group_photo,\r\n\t se_grouptopics.grouptopic_subject AS title,\r\n\t se_groupposts.grouppost_body AS description,\r\n\t se_grouptopics.grouptopic_id AS id,\r\n\t se_groupposts.grouppost_id AS extra\r\n\tFROM\r\n\t se_groupposts,\r\n\t se_grouptopics,\r\n\t se_groups\r\n\tWHERE\r\n\t se_groupposts.grouppost_grouptopic_id=se_grouptopics.grouptopic_id AND\r\n\t se_grouptopics.grouptopic_group_id=se_groups.group_id AND\r\n\t se_groups.group_search='1'\r\n\t AND\r\n\t (\r\n\t se_groupposts.grouppost_body LIKE '%{$search_text}%'\r\n\t )\r\n\tORDER BY grouppost_id DESC\r\n\t)"; // GET TOTAL GROUP RESULTS $total_groups = $database->database_num_rows($database->database_query($group_query . " LIMIT 201")); // IF NOT TOTAL ONLY if ($t == "group") { // MAKE GROUP PAGES $start = ($p - 1) * $results_per_page; $limit = $results_per_page + 1; // SEARCH GROUPS $groups = $database->database_query($group_query . " LIMIT {$start}, {$limit}"); while ($group_info = $database->database_fetch_assoc($groups)) { // SET UP GROUP $group = new se_group(); $group->group_info['group_id'] = $group_info['group_id']; $group->group_info['group_photo'] = $group_info['group_photo']; $thumb_path = $group->group_photo('./images/nophoto.gif', TRUE); // IF DESCRIPTION IS LONG if (strlen($group_info['description']) > 150) { $group_info['description'] = substr($group_info['description'], 0, 147) . "..."; } if (strlen($group_info['group_desc']) > 150) { $group_info['group_desc'] = substr($group_info['group_desc'], 0, 147) . "..."; } // RESULT IS A GROUP if ($group_info[sub_type] == 1) { $result_url = $url->url_create('group', NULL, $group_info['group_id']); $result_name = 2000292; $result_name_1 = $group_info['group_title']; $result_desc = 2000295; $result_desc_1 = $group_info['description']; } elseif ($group_info['sub_type'] == 2) { $result_url = $url->url_create('group_media', NULL, $group_info['group_id'], $group_info['id']); $result_name = 2000293; $result_name_1 = $group_info['title']; $result_desc = 2000296; $result_desc_1 = $url->url_create('group', NULL, $group_info['group_id']); $result_desc_2 = $group_info['group_title']; $result_desc_3 = $group_info['description']; // SET THUMBNAIL, IF AVAILABLE switch ($group_info['extra']) { case "jpeg": case "jpg": case "gif": case "png": case "bmp": $thumb_path = $group->group_dir($group->group_info['group_id']) . $group_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"; } } else { $result_url = $url->url_create('group_discussion_post', NULL, $group_info['group_id'], $group_info['id'], $group_info['extra']); $result_name = 2000294; $result_name_1 = $group_info['title']; $result_desc = 2000297; $result_desc_1 = $url->url_create('group', NULL, $group_info['group_id']); $result_desc_2 = $group_info['group_title']; $result_desc_3 = $group_info['description']; } $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_groups; } // SET ARRAY VALUES SE_Language::_preload_multi(2000291, 2000292, 2000293, 2000294, 2000295, 2000296, 2000297); if ($total_groups > 200) { $total_groups = "200+"; } $search_objects[] = array('search_type' => 'group', 'search_lang' => 2000291, 'search_total' => $total_groups); }