diff options
| author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-04-21 19:44:46 +0000 | 
|---|---|---|
| committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-04-21 19:44:46 +0000 | 
| commit | a0e1576d2b50b7640637eff763fa077d2cda35bc (patch) | |
| tree | df40fe384fec9cfa8abc1d5d0df06bda1cac2273 /engine/lib/metastrings.php | |
| parent | c06885114ab45eb1f24ff26e23ab317b8bd7604e (diff) | |
| download | elgg-a0e1576d2b50b7640637eff763fa077d2cda35bc.tar.gz elgg-a0e1576d2b50b7640637eff763fa077d2cda35bc.tar.bz2 | |
Reverting the annotation changes because they're not ready yet.
git-svn-id: http://code.elgg.org/elgg/trunk@9010 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib/metastrings.php')
| -rw-r--r-- | engine/lib/metastrings.php | 35 | 
1 files changed, 11 insertions, 24 deletions
| diff --git a/engine/lib/metastrings.php b/engine/lib/metastrings.php index 4dda05e6b..655617ac6 100644 --- a/engine/lib/metastrings.php +++ b/engine/lib/metastrings.php @@ -373,24 +373,11 @@ function elgg_get_metastring_based_objects($options) {  	}  	$joins = $options['joins']; -	$joins[] = "JOIN {$db_prefix}entities e ON n_table.entity_guid = e.guid"; - -	if (!is_array($options['selects'])) { -		$options['selects'] = array($options['selects']); -	} - -	$selects = $options['selects']; -	// For performance reasons we don't want the joins required for metadata / annotations -	// unless we're going through one of their callbacks. -	// this means we expect the functions passing different callbacks to pass their required joins. -	if ($options['callback'] == 'row_to_elggmetadata' || $options['callback'] == 'row_to_elggannotation') { -		$joins[] = "JOIN {$db_prefix}metastrings n on n_table.name_id = n.id"; -		$joins[] = "JOIN {$db_prefix}metastrings v on n_table.value_id = v.id"; +	$joins[] = "JOIN {$db_prefix}entities e ON n_table.entity_guid = e.guid"; +	$joins[] = "JOIN {$db_prefix}metastrings n on n_table.name_id = n.id"; +	$joins[] = "JOIN {$db_prefix}metastrings v on n_table.value_id = v.id"; -		$selects[] = 'n.string as name'; -		$selects[] = 'v.string as value'; -	}  	// remove identical join clauses  	$joins = array_unique($joins); @@ -419,19 +406,19 @@ function elgg_get_metastring_based_objects($options) {  	}  	if ($options['metastring_calculation'] === ELGG_ENTITIES_NO_VALUE) { -		$selects = array_unique($selects);  		// evalutate selects -		$select_str = ''; -		if ($selects) { -			foreach ($selects as $select) { -				$select_str .= ", $select"; +		if ($options['selects']) { +			$selects = ''; +			foreach ($options['selects'] as $select) { +				$selects .= ", $select";  			} +		} else { +			$selects = '';  		} -		$query = "SELECT DISTINCT n_table.*{$select_str} FROM {$db_prefix}$type n_table"; +		$query = "SELECT DISTINCT n_table.*, n.string as name, +			v.string as value{$selects} FROM {$db_prefix}$type n_table";  	} else { -		// @todo this will break if you're counting on an annotation calculation because of the joins -		// that's a dumb thing to do anyway, but it shouldn't make bad queries  		$query = "SELECT {$options['metastring_calculation']}(v.string) as calculation FROM {$db_prefix}$type n_table";  	} | 
