From 01afda7ed87e7def6a411d871daf49522e977b26 Mon Sep 17 00:00:00 2001 From: cash Date: Thu, 24 Feb 2011 00:12:17 +0000 Subject: organized the river views according to the subview pattern git-svn-id: http://code.elgg.org/elgg/trunk@8452 36083f99-b078-4883-b0ff-0f9b5a30f544 --- views/default/river/item.php | 6 ++-- views/default/river/item/body.php | 31 +++++++++++++++++++++ views/default/river/item/controls.php | 52 +++++++++++++++++++++++++++++++++++ views/default/river/item/footer.php | 52 +++++++++++++++++++++++++++++++++++ views/default/river/item/image.php | 12 ++++++++ 5 files changed, 150 insertions(+), 3 deletions(-) create mode 100644 views/default/river/item/body.php create mode 100644 views/default/river/item/controls.php create mode 100644 views/default/river/item/footer.php create mode 100644 views/default/river/item/image.php (limited to 'views/default/river') diff --git a/views/default/river/item.php b/views/default/river/item.php index 1f28bcb76..55e108482 100644 --- a/views/default/river/item.php +++ b/views/default/river/item.php @@ -2,9 +2,9 @@ $item = $vars['item']; $vars = array( - 'image' => elgg_view('core/river/image', array('item' => $item)), - 'body' => elgg_view('core/river/body', array('item' => $item)), - 'image_alt' => elgg_view('core/river/controls', array('item' => $item)), + 'image' => elgg_view('river/item/image', array('item' => $item)), + 'body' => elgg_view('river/item/body', array('item' => $item)), + 'image_alt' => elgg_view('river/item/controls', array('item' => $item)), 'class' => 'elgg-river-item', ); diff --git a/views/default/river/item/body.php b/views/default/river/item/body.php new file mode 100644 index 000000000..7d36222ac --- /dev/null +++ b/views/default/river/item/body.php @@ -0,0 +1,31 @@ +getSubjectEntity(); + +// river item header +$params = array( + 'href' => $subject->getURL(), + 'text' => $subject->name, +); +$subject_link = elgg_view('output/url', $params); +$timestamp = elgg_get_friendly_time($item->getPostedTime()); +$header = "$subject_link $timestamp"; + +// body +$body = elgg_view($item->getView(), array('item' => $item)); + +// footer +$footer = elgg_view('river/item/footer', $vars); + +echo elgg_view('page/components/module', array( + 'header' => $header, + 'body' => $body, + 'footer' => $footer, + 'show_inner' => false, +)); \ No newline at end of file diff --git a/views/default/river/item/controls.php b/views/default/river/item/controls.php new file mode 100644 index 000000000..9c3305635 --- /dev/null +++ b/views/default/river/item/controls.php @@ -0,0 +1,52 @@ +getObjectEntity(); + +if (elgg_is_logged_in()) { + // comments and non-objects cannot be commented on or liked + if ($vars['item']->annotation_id == 0) { + // comments + if ($object->canComment()) { + $params = array( + 'href' => '#', + 'text' => elgg_echo('generic_comments:text'), + 'class' => "elgg-toggler elgg-toggles-comments-add-{$object->getGUID()}", + ); + echo elgg_view('output/url', $params); + } + + // like this + if ($object->canAnnotate(0, 'likes')) { + if (!elgg_annotation_exists($object->getGUID(), 'likes')) { + $url = "action/likes/add?guid={$object->getGUID()}"; + $params = array( + 'href' => $url, + 'text' => elgg_echo('likes:likethis'), + 'is_action' => true, + ); + echo elgg_view('output/url', $params); + } else { + $options = array( + 'guid' => $guid, + 'annotation_name' => 'likes', + 'owner_guid' => elgg_get_logged_in_user_guid() + ); + $likes = elgg_get_annotations($options); + $url = elgg_get_site_url() . "action/likes/delete?annotation_id={$likes[0]->id}"; + $params = array( + 'href' => $url, + 'text' => elgg_echo('likes:remove'), + 'is_action' => true, + ); + echo elgg_view('output/url', $params); + } + } + } + +} \ No newline at end of file diff --git a/views/default/river/item/footer.php b/views/default/river/item/footer.php new file mode 100644 index 000000000..7cf9dd925 --- /dev/null +++ b/views/default/river/item/footer.php @@ -0,0 +1,52 @@ +getObjectEntity(); + +// annotations do not have comments +if ($item->annotation_id != 0 || !$object) { + return true; +} + +$comment_count = $object->countComments(); + +$options = array( + 'guid' => $object->getGUID(), + 'annotation_name' => 'generic_comment', + 'limit' => 3, + 'order_by' => 'n_table.time_created desc' +); +$comments = elgg_get_annotations($options); + +if ($comments) { + // why is this reversing it? because we're asking for the 3 latest + // comments by sorting desc and limiting by 3, but we want to display + // these comments with the latest at the bottom. + $comments = array_reverse($comments); + +?> + + + 'elgg-river-comments')); + + if ($comment_count > count($comments)) { + $num_more_comments = $comment_count - count($comments); + $url = $object->getURL(); + $params = array( + 'href' => $url, + 'text' => elgg_echo('river:comments:more', array($num_more_comments)), + ); + $link = elgg_view('output/url', $params); + echo "
$link
"; + } +} + +// inline comment form +echo elgg_view_form('comments/add', array( + 'id' => "comments-add-{$object->getGUID()}", +), array('entity' => $object, 'inline' => true)); diff --git a/views/default/river/item/image.php b/views/default/river/item/image.php new file mode 100644 index 000000000..afb6b4019 --- /dev/null +++ b/views/default/river/item/image.php @@ -0,0 +1,12 @@ +getSubjectEntity(); + +echo elgg_view("profile/icon", array('entity' => $subject, 'size' => 'small')); -- cgit v1.2.3