From b8996ea6be1b51de7c1567905b6c1688a4e81495 Mon Sep 17 00:00:00 2001 From: brettp Date: Sat, 12 Feb 2011 23:29:36 +0000 Subject: Refs #650. Replaced count_annotations(). git-svn-id: http://code.elgg.org/elgg/trunk@8188 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/classes/ElggEntity.php | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'engine') diff --git a/engine/classes/ElggEntity.php b/engine/classes/ElggEntity.php index 7bed1af7c..ea2a329d9 100644 --- a/engine/classes/ElggEntity.php +++ b/engine/classes/ElggEntity.php @@ -489,6 +489,22 @@ abstract class ElggEntity extends ElggData implements return remove_private_setting($this->getGUID(), $name); } + /** + * Helper function to return annotation calculation results + * + * @param string $name The annotation name. + * @param string $calculation A valid MySQL function to run its values through + */ + private function getAnnotationCalculation($name, $calculation) { + $options = array( + 'guid' => $this->getGUID(), + 'annotation_name' => $name, + 'annotation_calculation' => $calculation + ); + + return elgg_get_annotations($options); + } + /** * Adds an annotation to an entity. * @@ -565,7 +581,7 @@ abstract class ElggEntity extends ElggData implements * @return int */ function countAnnotations($name = "") { - return count_annotations($this->getGUID(), "", "", $name); + return $this->getAnnotationCalculation($name, 'count'); } /** @@ -576,7 +592,7 @@ abstract class ElggEntity extends ElggData implements * @return int */ function getAnnotationsAvg($name) { - return get_annotations_avg($this->getGUID(), "", "", $name); + return $this->getAnnotationCalculation($name, 'avg'); } /** @@ -587,7 +603,7 @@ abstract class ElggEntity extends ElggData implements * @return int */ function getAnnotationsSum($name) { - return get_annotations_sum($this->getGUID(), "", "", $name); + return $this->getAnnotationCalculation($name, 'sum'); } /** @@ -598,7 +614,7 @@ abstract class ElggEntity extends ElggData implements * @return int */ function getAnnotationsMin($name) { - return get_annotations_min($this->getGUID(), "", "", $name); + return $this->getAnnotationCalculation($name, 'min'); } /** @@ -609,7 +625,7 @@ abstract class ElggEntity extends ElggData implements * @return int */ function getAnnotationsMax($name) { - return get_annotations_max($this->getGUID(), "", "", $name); + return $this->getAnnotationCalculation($name, 'max'); } /** @@ -622,10 +638,11 @@ abstract class ElggEntity extends ElggData implements $type = $this->getType(); $params = array('entity' => $this); $number = elgg_trigger_plugin_hook('comments:count', $type, $params, false); + if ($number) { return $number; } else { - return count_annotations($this->getGUID(), "", "", "generic_comment"); + return $this->getAnnotationCalculation('generic_comment', 'count'); } } @@ -639,10 +656,11 @@ abstract class ElggEntity extends ElggData implements $type = $this->getType(); $params = array('entity' => $this); $number = elgg_trigger_plugin_hook('likes:count', $type, $params, false); + if ($number) { return $number; } else { - return count_annotations($this->getGUID(), "", "", "likes"); + return $this->getAnnotationCalculation('likes', 'count'); } } -- cgit v1.2.3