aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-11-07 20:57:32 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-11-07 20:57:32 +0000
commit24e3ff747614364d0d44fc1a7644f164146c66e1 (patch)
treecab9495aa3a6daf5c1aa3bac6de61e3436e77380 /engine
parent413ea817c78a2cd7cbe3bebad1623daaaeea6394 (diff)
downloadelgg-24e3ff747614364d0d44fc1a7644f164146c66e1.tar.gz
elgg-24e3ff747614364d0d44fc1a7644f164146c66e1.tar.bz2
Moved default search hooks into search mod.
Using MySQL's MATCH ... AGAINST instead of likes for most searches. Changed 'tag' to 'q' while maintaining backward compatibility. git-svn-id: http://code.elgg.org/elgg/trunk@3633 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/group.php52
-rw-r--r--engine/lib/objects.php49
-rw-r--r--engine/lib/tags.php60
-rw-r--r--engine/lib/users.php50
4 files changed, 1 insertions, 210 deletions
diff --git a/engine/lib/group.php b/engine/lib/group.php
index f7acd9fba..e85724ece 100644
--- a/engine/lib/group.php
+++ b/engine/lib/group.php
@@ -945,58 +945,6 @@ function list_group_search($tag, $limit = 10) {
function group_init() {
// Register an entity type
register_entity_type('group','');
-
- // Register a search hook
- register_plugin_hook('search', 'group', 'groups_search_hook');
-}
-
-
-/**
- * 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, '<strong class="searchMatch">', '</strong>');
- $entity->setVolatileData('search_matched_title', $description);
-
- $name = search_get_relevant_substring($entity->name, $query, '<strong class="searchMatch">', '</strong>');
- $entity->setVolatileData('search_matched_description', $name);
- }
-
- return array(
- 'entities' => $entities,
- 'count' => $count,
- );
}
register_elgg_event_handler('init','system','group_init');
diff --git a/engine/lib/objects.php b/engine/lib/objects.php
index b928af2fe..e4c3128b9 100644
--- a/engine/lib/objects.php
+++ b/engine/lib/objects.php
@@ -376,54 +376,5 @@ function search_list_objects_by_name($hook, $user, $returnvalue, $tag) {
}
}
-/**
- * Return default results for searches on objects.
- *
- * @param unknown_type $hook
- * @param unknown_type $type
- * @param unknown_type $value
- * @param unknown_type $params
- * @return unknown_type
- */
-function objects_search_hook($hook, $type, $value, $params) {
- global $CONFIG;
-
- $query = $params['query'];
-
- $join = "JOIN {$CONFIG->dbprefix}objects_entity oe ON e.guid = oe.guid";
- $params['joins'] = array($join);
-
- $where = "(oe.guid = e.guid
- AND (oe.title LIKE '%$query%'
- OR oe.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) {
- $title = search_get_relevant_substring($entity->title, $query, '<strong class="searchMatch">', '</strong>');
- $entity->setVolatileData('search_matched_title', $title);
-
- $desc = search_get_relevant_substring($entity->description, $query, '<strong class="searchMatch">', '</strong>');
- $entity->setVolatileData('search_matched_description', $desc);
- }
-
- return array(
- 'entities' => $entities,
- 'count' => $count,
- );
-}
-
register_elgg_event_handler('init', 'system', 'objects_init', 0);
-register_plugin_hook('search', 'object', 'objects_search_hook');
register_plugin_hook('unit_test', 'system', 'objects_test'); \ No newline at end of file
diff --git a/engine/lib/tags.php b/engine/lib/tags.php
index cdcf213c0..3c65c2a7a 100644
--- a/engine/lib/tags.php
+++ b/engine/lib/tags.php
@@ -174,62 +174,4 @@ function get_tags($threshold = 1, $limit = 10, $metadata_name = "", $entity_type
function display_tagcloud($threshold = 1, $limit = 10, $metadata_name = "", $entity_type = "object", $entity_subtype = "", $owner_guid = "", $site_guid = -1) {
return elgg_view("output/tagcloud",array('value' => get_tags($threshold, $limit, $metadata_name, $entity_type, $entity_subtype, $owner_guid, $site_guid),'object' => $entity_type, 'subtype' => $entity_subtype));
-}
-
-
-
-/**
- * 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 tags_search_hook($hook, $type, $value, $params) {
- global $CONFIG;
-
- $query = $params['query'];
-
- $params['metadata_name_value_pair'] = array ('name' => 'tags', 'value' => $query, 'case_sensitive' => FALSE);
-
- $entities = elgg_get_entities_from_metadata($params);
- $params['count'] = TRUE;
- $count = elgg_get_entities_from_metadata($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) {
- $tags = implode(',', $entity->tags);
- $tags_str = search_get_relevant_substring($tags, $query, '<strong class="searchMatch">', '</strong>');
- $entity->setVolatileData('search_matched_tags', $tags_str);
- }
-
- return array(
- 'entities' => $entities,
- 'count' => $count,
- );
-}
-
-/**
- * Register tags as a custom search type.
- *
- * @param unknown_type $hook
- * @param unknown_type $type
- * @param unknown_type $value
- * @param unknown_type $params
- * @return unknown_type
- */
-function tags_search_custom_types_hook($hook, $type, $value, $params) {
- $value[] = 'tags';
- return $value;
-}
-
-
-register_plugin_hook('search', 'tags', 'tags_search_hook');
-register_plugin_hook('search_types', 'get_types', 'tags_search_custom_types_hook'); \ No newline at end of file
+} \ No newline at end of file
diff --git a/engine/lib/users.php b/engine/lib/users.php
index b49fc30fe..f1194b7e4 100644
--- a/engine/lib/users.php
+++ b/engine/lib/users.php
@@ -1490,7 +1490,6 @@ function users_init() {
register_entity_type('user','');
register_plugin_hook('usersettings:save','user','users_settings_save');
- register_plugin_hook('search', 'user', 'users_search_hook');
// Handle a special case for newly created users when the user is not logged in
// TODO: handle this better!
@@ -1540,55 +1539,6 @@ function users_test($hook, $type, $value, $params) {
return $value;
}
-/**
- * Return default results for searches on users.
- *
- * @param unknown_type $hook
- * @param unknown_type $type
- * @param unknown_type $value
- * @param unknown_type $params
- * @return unknown_type
- */
-function users_search_hook($hook, $type, $value, $params) {
- global $CONFIG;
-
- $query = $params['query'];
-
- $join = "JOIN {$CONFIG->dbprefix}users_entity ue ON e.guid = ue.guid";
- $params['joins'] = array($join);
-
- $where = "(ue.guid = e.guid
- AND (ue.username LIKE '%$query%'
- OR ue.name 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) {
- $username = search_get_relevant_substring($entity->username, $query, '<strong class="searchMatch">', '</strong>');
- $entity->setVolatileData('search_matched_title', $username);
-
- $name = search_get_relevant_substring($entity->name, $query, '<strong class="searchMatch">', '</strong>');
- $entity->setVolatileData('search_matched_description', $name);
- }
-
- return array(
- 'entities' => $entities,
- 'count' => $count,
- );
-}
-
-
//register actions *************************************************************
register_elgg_event_handler('init','system','users_init',0);
register_elgg_event_handler('pagesetup','system','users_pagesetup',0);