aboutsummaryrefslogtreecommitdiff
path: root/mod/search/search_hooks.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-12 22:23:38 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-12 22:23:38 +0000
commit9fbed88ef70966dd6075b40bd3a8ed4f609423e8 (patch)
tree95bfbeebc86761b0560bdd99065dde6813f6ced7 /mod/search/search_hooks.php
parent2d889a3cc9b92fdb1c000236e8953f9d16fe8840 (diff)
downloadelgg-9fbed88ef70966dd6075b40bd3a8ed4f609423e8.tar.gz
elgg-9fbed88ef70966dd6075b40bd3a8ed4f609423e8.tar.bz2
Closes #1506: Added elgg_register_tag_metadata_name(), elgg_get_registered_tag_metadata_names(), and ElggEntity::getTags(). Search on tags updated to use registered tag names instead of hard-coded 'tags' metadata name.
git-svn-id: http://code.elgg.org/elgg/trunk@3936 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/search/search_hooks.php')
-rw-r--r--mod/search/search_hooks.php19
1 files changed, 16 insertions, 3 deletions
diff --git a/mod/search/search_hooks.php b/mod/search/search_hooks.php
index 77ab5c6e3..a74b1c2b3 100644
--- a/mod/search/search_hooks.php
+++ b/mod/search/search_hooks.php
@@ -165,9 +165,22 @@ function search_users_hook($hook, $type, $value, $params) {
function search_tags_hook($hook, $type, $value, $params) {
global $CONFIG;
+ $valid_tags = elgg_get_registered_tag_metadata_names();
+
// @todo will need to split this up to support searching multiple tags at once.
$query = sanitise_string($params['query']);
- $params['metadata_name_value_pair'] = array ('name' => 'tags', 'value' => $query, 'case_sensitive' => FALSE);
+
+ $name_value_pairs = array();
+ foreach ($valid_tags as $tag_name) {
+ $name_value_pairs[] = array (
+ 'name' => $tag_name,
+ 'value' => $query,
+ 'case_sensitive' => FALSE
+ );
+ }
+
+ $params['metadata_name_value_pairs'] = $name_value_pairs;
+ $params['metadata_name_value_pairs_operator'] = 'OR';
$entities = elgg_get_entities_from_metadata($params);
$params['count'] = TRUE;
@@ -180,10 +193,10 @@ function search_tags_hook($hook, $type, $value, $params) {
// add the volatile data for why these entities have been returned.
foreach ($entities as $entity) {
- $tags = $entity->tags;
+ $tags = $entity->getTags();
if (is_array($tags)) {
- $tags = implode(', ', $entity->tags);
+ $tags = implode(', ', $tags);
}
// Nick told me my idea was dirty, so I'm hard coding the numbers.