From 8e8d3839196290b26099b852aadbdc345e25e490 Mon Sep 17 00:00:00 2001 From: brettp Date: Wed, 28 Oct 2009 21:58:42 +0000 Subject: Cleaned up table prefix for elgg_get_entity_metadata_where_sql(). Cleaned up some documentation. git-svn-id: http://code.elgg.org/elgg/trunk@3597 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/metadata.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index bbdd3365a..9af0acdc8 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -535,7 +535,7 @@ function find_metadata($meta_name = "", $meta_value = "", $entity_type = "", $en /** - * Get all entities. + * Returns entities based upon metadata. * * @param array $options Array in format: * @@ -621,7 +621,7 @@ function elgg_get_entities_from_metadata(array $options = array()) { * @param BOOL $case_sensitive * @return FALSE|array False on fail, array('joins', 'wheres') */ -function elgg_get_entity_metadata_where_sql($prefix, $names = NULL, $values = NULL, $pairs = NULL, $pair_operator = 'AND', $case_sensitive = TRUE) { +function elgg_get_entity_metadata_where_sql($table, $names = NULL, $values = NULL, $pairs = NULL, $pair_operator = 'AND', $case_sensitive = TRUE) { global $CONFIG; // short circuit if nothing requested @@ -648,7 +648,7 @@ function elgg_get_entity_metadata_where_sql($prefix, $names = NULL, $values = NU // get names wheres and joins $names_where = ''; if ($names !== NULL) { - $return['joins'][] = "JOIN {$CONFIG->dbprefix}metadata md on e.guid = md.entity_guid"; + $return['joins'][] = "JOIN {$CONFIG->dbprefix}metadata md on {$table}.guid = md.entity_guid"; if (!is_array($names)) { $names = array($names); } @@ -671,7 +671,7 @@ function elgg_get_entity_metadata_where_sql($prefix, $names = NULL, $values = NU // get values wheres and joins $values_where = ''; if ($values !== NULL) { - $return['joins'][] = "JOIN {$CONFIG->dbprefix}metadata md on e.guid = md.entity_guid"; + $return['joins'][] = "JOIN {$CONFIG->dbprefix}metadata md on {$table}.guid = md.entity_guid"; if (!is_array($values)) { $values = array($values); @@ -717,6 +717,8 @@ function elgg_get_entity_metadata_where_sql($prefix, $names = NULL, $values = NU $pair_wheres = array(); + // @todo when the pairs are > 3 should probably split the query up to + // denormalize the strings table. $i = 1; foreach ($pairs as $index => $pair) { // @todo move this elsewhere? @@ -729,7 +731,7 @@ function elgg_get_entity_metadata_where_sql($prefix, $names = NULL, $values = NU } // @todo The multiple joins are only needed when the operator is AND - $return['joins'][] = "JOIN {$CONFIG->dbprefix}metadata md{$i} on e.guid = md{$i}.entity_guid"; + $return['joins'][] = "JOIN {$CONFIG->dbprefix}metadata md{$i} on {$table}.guid = md{$i}.entity_guid"; $return['joins'][] = "JOIN {$CONFIG->dbprefix}metastrings msn{$i} on md{$i}.name_id = msn{$i}.id"; $return['joins'][] = "JOIN {$CONFIG->dbprefix}metastrings msv{$i} on md{$i}.value_id = msv{$i}.id"; -- cgit v1.2.3