aboutsummaryrefslogtreecommitdiff
path: root/views/default/river
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-24 00:12:17 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-24 00:12:17 +0000
commit01afda7ed87e7def6a411d871daf49522e977b26 (patch)
tree53a2ca457b94c777db3a808afad0173f4b96095b /views/default/river
parent7cca9471c04848c4e41077c83b01089d0736fbed (diff)
downloadelgg-01afda7ed87e7def6a411d871daf49522e977b26.tar.gz
elgg-01afda7ed87e7def6a411d871daf49522e977b26.tar.bz2
organized the river views according to the subview pattern
git-svn-id: http://code.elgg.org/elgg/trunk@8452 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'views/default/river')
-rw-r--r--views/default/river/item.php6
-rw-r--r--views/default/river/item/body.php31
-rw-r--r--views/default/river/item/controls.php52
-rw-r--r--views/default/river/item/footer.php52
-rw-r--r--views/default/river/item/image.php12
5 files changed, 150 insertions, 3 deletions
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 @@
+<?php
+/**
+ * Body of river item
+ *
+ * @uses $vars['item']
+ */
+
+$item = $vars['item'];
+$subject = $item->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 <span class=\"elgg-river-timestamp\">$timestamp</span>";
+
+// 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 @@
+<?php
+/**
+ * Controls on an river item
+ *
+ *
+ * @uses $vars['item']
+ */
+
+$object = $vars['item']->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 @@
+<?php
+/**
+ * River item footer
+ */
+
+$item = $vars['item'];
+$object = $item->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);
+
+?>
+ <span class="elgg-river-comments-tab"><?php echo elgg_echo('comments'); ?></span>
+
+<?php
+
+ echo elgg_view_annotation_list($comments, array('list_class' => '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 "<div class=\"elgg-river-more\">$link</div>";
+ }
+}
+
+// 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 @@
+<?php
+/**
+ * Elgg river image
+ *
+ * Displayed next to the body of each river item
+ *
+ * @uses $vars['item']
+ */
+
+$subject = $vars['item']->getSubjectEntity();
+
+echo elgg_view("profile/icon", array('entity' => $subject, 'size' => 'small'));