diff options
-rw-r--r-- | engine/lib/views.php | 33 | ||||
-rw-r--r-- | languages/en.php | 1 | ||||
-rw-r--r-- | mod/blog/views/default/blog/sidebar.php | 10 | ||||
-rw-r--r-- | views/default/page/elements/comments.php | 2 | ||||
-rw-r--r-- | views/default/page/elements/comments_block.php | 33 |
5 files changed, 42 insertions, 37 deletions
diff --git a/engine/lib/views.php b/engine/lib/views.php index e74a286da..98edf1502 100644 --- a/engine/lib/views.php +++ b/engine/lib/views.php @@ -1106,39 +1106,6 @@ function elgg_view_comments($entity, $add_comment = true, array $vars = array()) } /** - * View the latest comments on a user's content - * - * @todo - get_annotations is due to be rewritten so update code and possibly parameters - * - * @param <type> $owner_guid - * @param <type> $type - * @param <type> $subtype - * @param <type> $number - * - * @return string - * @since 1.8.0 - */ -function elgg_view_latest_comments($owner_guid, $type = 'object', $subtype = '', $number = 4) { - $title = elgg_echo('generic_comments:latest'); - $options = array( - 'annotation_name' => 'generic_comment', - 'owner_guid' => $owner_guid, - 'reverse_order_by' => true, - 'limit' => $number - - ); - $comments = elgg_get_annotations($options); - - $body = elgg_view('page/components/list', array( - 'items' => $comments, - 'pagination' => false, - 'list_class' => 'elgg-latest-comments', - )); - - return elgg_view_module('aside', $title, $body); -} - -/** * Wrapper function for the image block display pattern. * * Fixed width media on the side (image, icon, flash, etc.). diff --git a/languages/en.php b/languages/en.php index 351c228af..bd0247b8a 100644 --- a/languages/en.php +++ b/languages/en.php @@ -1062,6 +1062,7 @@ If you requested this click on the link below, otherwise ignore this email. 'generic_comment:notfound' => "Sorry, we could not find the specified item.", 'generic_comment:notdeleted' => "Sorry, we could not delete this comment.", 'generic_comment:failure' => "An unexpected error occurred when adding your comment. Please try again.", + 'generic_comment:none' => 'No comments', 'generic_comment:email:subject' => 'You have a new comment!', 'generic_comment:email:body' => "You have a new comment on your item \"%s\" from %s. It reads: diff --git a/mod/blog/views/default/blog/sidebar.php b/mod/blog/views/default/blog/sidebar.php index 63ed85c0b..4eb5cf443 100644 --- a/mod/blog/views/default/blog/sidebar.php +++ b/mod/blog/views/default/blog/sidebar.php @@ -7,10 +7,14 @@ // fetch & display latest comments if ($vars['page'] == 'all') { - echo elgg_view_latest_comments(0, 'object', 'blog'); + echo elgg_view('page/elements/comments_block', array( + 'subtypes' => 'blog', + )); } elseif ($vars['page'] == 'owner') { - // @todo - what we want is the latest comments on this user's blog posts - elgg does not support this - echo elgg_view_latest_comments(elgg_get_page_owner_guid(), 'object', 'blog'); + echo elgg_view('page/elements/comments_block', array( + 'subtypes' => 'blog', + 'owner_guid' => elgg_get_page_owner_guid(), + )); } echo elgg_view('blog/sidebar/archives', $vars); diff --git a/views/default/page/elements/comments.php b/views/default/page/elements/comments.php index 1b0082ee4..ebc7d3df5 100644 --- a/views/default/page/elements/comments.php +++ b/views/default/page/elements/comments.php @@ -31,7 +31,7 @@ $options = array( ); $html = elgg_list_annotations($options); if ($html) { - echo '<h3>Comments</h3>'; + echo '<h3>' . elgg_echo('comments') . '</h3>'; echo $html; } diff --git a/views/default/page/elements/comments_block.php b/views/default/page/elements/comments_block.php new file mode 100644 index 000000000..89e43b266 --- /dev/null +++ b/views/default/page/elements/comments_block.php @@ -0,0 +1,33 @@ +<?php +/** + * Display the latest related comments + * + * Generally used in a sidebar + * + * @uses $vars['subtypes'] Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being commented on + * @uses $vars['limit'] The number of comments to display + */ + +$options = array( + 'annotation_name' => 'generic_comment', + 'owner_guid' => elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE), + 'reverse_order_by' => true, + 'limit' => elgg_extract('limit', $vars, 4), + 'type' => 'object', + 'subtypes' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), +); + +$title = elgg_echo('generic_comments:latest'); +$comments = elgg_get_annotations($options); +if ($comments) { + $body = elgg_view('page/components/list', array( + 'items' => $comments, + 'pagination' => false, + 'list_class' => 'elgg-latest-comments', + )); +} else { + $body = '<p>' . elgg_echo('generic_comment:none') . '</p>'; +} + +echo elgg_view_module('aside', $title, $body); |