diff options
-rw-r--r-- | engine/classes/ElggEntity.php | 32 | ||||
-rw-r--r-- | views/default/core/river/footer.php | 2 |
2 files changed, 26 insertions, 8 deletions
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 @@ -490,6 +490,22 @@ abstract class ElggEntity extends ElggData implements } /** + * 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. * * @warning By default, annotations are private. @@ -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'); } } diff --git a/views/default/core/river/footer.php b/views/default/core/river/footer.php index 04f7d8daa..ee9d5dc58 100644 --- a/views/default/core/river/footer.php +++ b/views/default/core/river/footer.php @@ -11,7 +11,7 @@ if ($item->annotation_id != 0 || !$object) { return true; } -$comment_count = count_annotations($object->getGUID(), '', '', 'generic_comment'); +$comment_count = $object->countComments(); $options = array( 'guid' => $object->getGUID(), |