| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- <?php
 
- /**
 
-  * Overrule to group search page
 
-  */
 
- elgg_push_breadcrumb(elgg_echo("groups"), "groups/all");
 
- elgg_push_breadcrumb(elgg_echo("search"));
 
- $db_prefix = elgg_get_config("dbprefix");
 
- $query = sanitise_string(get_input("tag"));
 
- $title = elgg_echo("groups:search:title", array($query));
 
- $content = false;
 
- if (!empty($query)) {
 
- 	$params = array(
 
- 		"type" => "group",
 
- 		"full_view" => FALSE,
 
- 	);
 
- 	
 
- 	// search all profile fields
 
- 	$profile_fields = array_keys(elgg_get_config("group"));
 
- 	if (!empty($profile_fields)) {
 
- 		$params["joins"] = array(
 
- 			"JOIN {$db_prefix}groups_entity ge ON e.guid = ge.guid",
 
- 			"JOIN {$db_prefix}metadata md on e.guid = md.entity_guid",
 
- 			"JOIN {$db_prefix}metastrings msv ON md.value_id = msv.id"
 
- 		);
 
- 	} else {
 
- 		$params["joins"] = array("JOIN {$db_prefix}groups_entity ge ON e.guid = ge.guid");
 
- 	}
 
- 	
 
- 	$where = "ge.name LIKE '%$query%' OR ge.description LIKE '%$query%'";
 
- 	
 
- 	if (!empty($profile_fields)) {
 
- 		// get the where clauses for the md names
 
- 		// can't use egef_metadata() because the n_table join comes too late.
 
- 		// 		$clauses = elgg_entities_get_metastrings_options("metadata", array(
 
- 		// 				"metadata_names" => $profile_fields,
 
- 		// 		));
 
- 	
 
- 		// 		$params["joins"] = array_merge($clauses["joins"], $params["joins"]);
 
- 	
 
- 		$tag_name_ids = array();
 
- 		foreach ($profile_fields as $field) {
 
- 			$tag_name_ids[] = elgg_get_metastring_id($field);
 
- 		}
 
- 	
 
- 		$md_where = "((md.name_id IN (" . implode(",", $tag_name_ids) . ")) AND (msv.string LIKE '%$query%'))";
 
- 		$params["wheres"] = array("(($where) OR ($md_where))");
 
- 	} else {
 
- 		$params["wheres"] = array($where);
 
- 	}
 
- 	$content = elgg_list_entities($params);
 
- }
 
- if (empty($content)) {
 
- 	$content = elgg_echo("groups:search:none");
 
- }
 
- $sidebar = elgg_view("groups/sidebar/find");
 
- //$sidebar .= elgg_view("groups/sidebar/featured");
 
- $params = array(
 
- 	"content" => $content,
 
- 	"sidebar" => $sidebar,
 
- 	"filter" => false,
 
- 	"title" => $title,
 
- );
 
- $body = elgg_view_layout("content", $params);
 
- echo elgg_view_page($title, $body);
 
 
  |