From 45eaa94d22b0237c4a5119645d3a5327545342a3 Mon Sep 17 00:00:00 2001 From: brettp Date: Fri, 6 Nov 2009 01:49:35 +0000 Subject: Added search for group, tags, and users. git-svn-id: http://code.elgg.org/elgg/trunk@3624 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/group.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'engine/lib/group.php') diff --git a/engine/lib/group.php b/engine/lib/group.php index 9fc937ff3..289e1fc0c 100644 --- a/engine/lib/group.php +++ b/engine/lib/group.php @@ -950,4 +950,54 @@ function group_init() { register_plugin_hook('search','all','search_list_groups_by_name'); } + +/** + * Return default results for searches on groups. + * + * @param unknown_type $hook + * @param unknown_type $type + * @param unknown_type $value + * @param unknown_type $params + * @return unknown_type + */ +function groups_search_hook($hook, $type, $value, $params) { + global $CONFIG; + + $query = $params['query']; + + $join = "JOIN {$CONFIG->dbprefix}groups_entity ge ON e.guid = ge.guid"; + $params['joins'] = array($join); + + $where = "(ge.guid = e.guid + AND (ge.name LIKE '%$query%' + OR ge.description LIKE '%$query%' + ) + )"; + $params['wheres'] = array($where); + + $entities = elgg_get_entities($params); + $params['count'] = TRUE; + $count = elgg_get_entities($params); + + // no need to continue if nothing here. + if (!$count) { + return array('entities' => array(), 'count' => $count); + } + + // add the volatile data for why these entities have been returned. + foreach ($entities as $entity) { + $description = search_get_relevant_substring($entity->description, $query, '', ''); + $entity->setVolatileData('search_matched_title', $description); + + $name = search_get_relevant_substring($entity->name, $query, '', ''); + $entity->setVolatileData('search_matched_description', $name); + } + + return array( + 'entities' => $entities, + 'count' => $count, + ); +} + register_elgg_event_handler('init','system','group_init'); +register_plugin_hook('search', 'group', 'groups_search_hook'); -- cgit v1.2.3