diff options
author | Cash Costello <cash.costello@gmail.com> | 2013-03-06 14:38:25 -0800 |
---|---|---|
committer | Cash Costello <cash.costello@gmail.com> | 2013-03-06 14:38:25 -0800 |
commit | d051e788e7ded0811dd14c6b47bcbda602737539 (patch) | |
tree | 28fbf76261692964e9391134c3cf06da022f879a /engine/lib | |
parent | 4b889e9cc7c629bb408fc8e470a80a7ab283fffc (diff) | |
parent | 2dbb9772881131f5739bae2d1ce5955587e9ab78 (diff) | |
download | elgg-d051e788e7ded0811dd14c6b47bcbda602737539.tar.gz elgg-d051e788e7ded0811dd14c6b47bcbda602737539.tar.bz2 |
Merge pull request #5203 from cash/bug_4393
Fixes the count issue with elgg_get_entities_from_annotation_calculation()
Diffstat (limited to 'engine/lib')
-rw-r--r-- | engine/lib/annotations.php | 16 | ||||
-rw-r--r-- | engine/lib/metadata.php | 8 | ||||
-rw-r--r-- | engine/lib/metastrings.php | 5 |
3 files changed, 24 insertions, 5 deletions
diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index f40a2cc6f..bd5ea1a1f 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -200,6 +200,18 @@ function update_annotation($annotation_id, $name, $value, $value_type, $owner_gu * @since 1.8.0 */ function elgg_get_annotations(array $options = array()) { + + // @todo remove support for count shortcut - see #4393 + if (isset($options['__egefac']) && $options['__egefac']) { + unset($options['__egefac']); + } else { + // support shortcut of 'count' => true for 'annotation_calculation' => 'count' + if (isset($options['count']) && $options['count']) { + $options['annotation_calculation'] = 'count'; + unset($options['count']); + } + } + $options['metastring_type'] = 'annotations'; return elgg_get_metastring_based_objects($options); } @@ -425,6 +437,10 @@ function elgg_get_entities_from_annotation_calculation($options) { $options['callback'] = 'entity_row_to_elggstar'; + // see #4393 + // @todo remove after the 'count' shortcut is removed from elgg_get_annotations() + $options['__egefac'] = true; + return elgg_get_annotations($options); } diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index 35b7b4dfb..96d446060 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -281,6 +281,14 @@ $access_id = ACCESS_PRIVATE, $allow_multiple = false) { * @since 1.8.0 */ function elgg_get_metadata(array $options = array()) { + + // @todo remove support for count shortcut - see #4393 + // support shortcut of 'count' => true for 'metadata_calculation' => 'count' + if (isset($options['count']) && $options['count']) { + $options['metadata_calculation'] = 'count'; + unset($options['count']); + } + $options['metastring_type'] = 'metadata'; return elgg_get_metastring_based_objects($options); } diff --git a/engine/lib/metastrings.php b/engine/lib/metastrings.php index 76c4bd8c4..f49b4a163 100644 --- a/engine/lib/metastrings.php +++ b/engine/lib/metastrings.php @@ -389,11 +389,6 @@ function elgg_get_metastring_based_objects($options) { $selects = $options['selects']; - // allow count shortcut - if ($options['count']) { - $options['metastring_calculation'] = 'count'; - } - // 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. |