From 1a792bebc590cdcfc1b888a33209df92be51400d Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 6 Feb 2011 19:56:06 +0000 Subject: moved the count comments and likes functions into the ElggEntity class git-svn-id: http://code.elgg.org/elgg/trunk@8047 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/classes/ElggEntity.php | 37 +++++++++++++++ engine/lib/elgglib.php | 53 ---------------------- engine/lib/views.php | 21 +++++++++ mod/blog/views/default/object/blog.php | 2 +- mod/file/views/default/object/file.php | 2 +- .../views/default/object/groupforumtopic.php | 2 +- mod/pages/views/default/object/page_top.php | 2 +- views/default/core/likes/display.php | 2 +- 8 files changed, 63 insertions(+), 58 deletions(-) diff --git a/engine/classes/ElggEntity.php b/engine/classes/ElggEntity.php index 5e43ab582..13b08a122 100644 --- a/engine/classes/ElggEntity.php +++ b/engine/classes/ElggEntity.php @@ -592,6 +592,40 @@ abstract class ElggEntity extends ElggData implements return get_annotations_max($this->getGUID(), "", "", $name); } + /** + * Count the number of comments attached to this entity. + * + * @return int Number of comments + * @since 1.8.0 + */ + function countComments() { + $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"); + } + } + + /** + * Count how many people have liked this entity. + * + * @return int Number of likes + * @since 1.8.0 + */ + function countLikes() { + $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"); + } + } + /** * Gets an array of entities with a relationship to this entity. * @@ -887,8 +921,11 @@ abstract class ElggEntity extends ElggData implements * @param string $size The size its for. * * @return bool + * @deprecated 1.8 See getIconURL() for the plugin hook to use */ public function setIcon($url, $size = 'medium') { + elgg_deprecated_notice("icon_override on an individual entity is deprecated", 1.8); + $url = sanitise_string($url); $size = sanitise_string($size); diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 3e8b9d43d..66477785e 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -333,59 +333,6 @@ function elgg_get_external_file($type, $location) { return array(); } -/** - * Returns the HTML for "likes" and "like this" on entities. - * - * @param ElggEntity $entity The entity to like - * - * @return string|false The HTML for the likes, or false on failure - * - * @since 1.8 - * @see @elgg_view core/likes/display - */ -function elgg_view_likes($entity) { - if (!($entity instanceof ElggEntity)) { - return false; - } - - $params = array('entity' => $entity); - - return elgg_view('core/likes/display', $params); -} - -/** - * Count the number of likes attached to an entity - * - * @param ElggEntity $entity The entity to count likes for - * - * @return int Number of likes - * @since 1.8 - */ -function elgg_count_likes($entity) { - if ($likeno = elgg_trigger_plugin_hook('likes:count', $entity->getType(), - array('entity' => $entity), false)) { - return $likeno; - } else { - return count_annotations($entity->getGUID(), "", "", "likes"); - } -} - -/** - * Count the number of comments attached to an entity - * - * @param ElggEntity $entity The entity to count comments for - * - * @return int Number of comments - */ -function elgg_count_comments($entity) { - if ($commentno = elgg_trigger_plugin_hook('comments:count', $entity->getType(), - array('entity' => $entity), false)) { - return $commentno; - } else { - return count_annotations($entity->getGUID(), "", "", "generic_comment"); - } -} - /** * Returns a list of files in $directory. * diff --git a/engine/lib/views.php b/engine/lib/views.php index 72cfeb2b6..d76456d83 100644 --- a/engine/lib/views.php +++ b/engine/lib/views.php @@ -1098,6 +1098,27 @@ function elgg_view_latest_comments($owner_guid, $type = 'object', $subtype = '', ); return elgg_view('layout/objects/module', $params); } + +/** + * Returns the HTML for "likes" on entities. + * + * @param ElggEntity $entity The entity to like + * + * @return string|false The HTML for the likes, or false on failure + * + * @since 1.8.0 + * @see @elgg_view core/likes/display + */ +function elgg_view_likes($entity) { + if (!($entity instanceof ElggEntity)) { + return false; + } + + $params = array('entity' => $entity); + + return elgg_view('core/likes/display', $params); +} + /** * Wrapper function for the image block display pattern. * diff --git a/mod/blog/views/default/object/blog.php b/mod/blog/views/default/object/blog.php index 3c5003310..78470d6be 100644 --- a/mod/blog/views/default/object/blog.php +++ b/mod/blog/views/default/object/blog.php @@ -28,7 +28,7 @@ $date = elgg_view_friendly_time($blog->publish_date); // The "on" status changes for comments, so best to check for !Off if ($blog->comments_on != 'Off') { - $comments_count = elgg_count_comments($blog); + $comments_count = $blog->countComments(); //only display if there are commments if ($comments_count != 0) { $text = elgg_echo("comments") . " ($comments_count)"; diff --git a/mod/file/views/default/object/file.php b/mod/file/views/default/object/file.php index 89367feb3..5fcd2a023 100644 --- a/mod/file/views/default/object/file.php +++ b/mod/file/views/default/object/file.php @@ -37,7 +37,7 @@ $file_icon = elgg_view('file/icon', array( $tags = elgg_view('output/tags', array('tags' => $file->tags)); $date = elgg_view_friendly_time($file->time_created); -$comments_count = elgg_count_comments($file); +$comments_count = $file->countComments(); //only display if there are commments if ($comments_count != 0) { $text = elgg_echo("comments") . " ($comments_count)"; diff --git a/mod/groups/views/default/object/groupforumtopic.php b/mod/groups/views/default/object/groupforumtopic.php index c6f9da4b4..6d4902c87 100644 --- a/mod/groups/views/default/object/groupforumtopic.php +++ b/mod/groups/views/default/object/groupforumtopic.php @@ -28,7 +28,7 @@ $date = elgg_view_friendly_time($topic->time_created); $comments_link = ''; $comments_text = ''; -$num_comments = elgg_count_comments($topic); +$num_comments = $topic->countComments(); if ($num_comments != 0) { $last_comment = $topic->getAnnotations("generic_comment", 1, 0, "desc"); $commenter = $last_comment[0]->getOwnerEntity(); diff --git a/mod/pages/views/default/object/page_top.php b/mod/pages/views/default/object/page_top.php index 9770dce23..89ef25572 100644 --- a/mod/pages/views/default/object/page_top.php +++ b/mod/pages/views/default/object/page_top.php @@ -39,7 +39,7 @@ $date = elgg_view_friendly_time($annotation->time_created); $editor_text = elgg_echo('pages:strapline', array($date, $editor_link)); $tags = elgg_view('output/tags', array('tags' => $page->tags)); -$comments_count = elgg_count_comments($page); +$comments_count = $page->countComments(); //only display if there are commments if ($comments_count != 0 && !$revision) { $text = elgg_echo("comments") . " ($comments_count)"; diff --git a/views/default/core/likes/display.php b/views/default/core/likes/display.php index 680486863..5b59c7215 100644 --- a/views/default/core/likes/display.php +++ b/views/default/core/likes/display.php @@ -38,7 +38,7 @@ if (!elgg_annotation_exists($guid, 'likes')) { } $list = ''; -$num_of_likes = elgg_count_likes($vars['entity']); +$num_of_likes = $vars['entity']->countLikes(); if ($num_of_likes) { // display the number of likes if ($num_of_likes == 1) { -- cgit v1.2.3