aboutsummaryrefslogtreecommitdiff
path: root/views/default/river/elements
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/river/elements')
-rw-r--r--views/default/river/elements/attachment.php25
-rw-r--r--views/default/river/elements/body.php68
-rw-r--r--views/default/river/elements/responses.php49
3 files changed, 142 insertions, 0 deletions
diff --git a/views/default/river/elements/attachment.php b/views/default/river/elements/attachment.php
new file mode 100644
index 000000000..d5c0aab99
--- /dev/null
+++ b/views/default/river/elements/attachment.php
@@ -0,0 +1,25 @@
+<?php
+
+$title = '';
+$subtitle = false;
+$image = false;
+$description = false;
+
+extract($vars, EXTR_IF_EXISTS);
+
+$body = "<h4 class=\"elgg-attachment-title\">$title</h4>";
+
+if ($subtitle) {
+ $body .= "<div class=\"elgg-attachment-subtitle\">$subtitle</div>";
+}
+
+if ($description) {
+ $body .= "<div class=\"elgg-attachment-description\">$description</div>";
+}
+
+
+if ($image) {
+ echo elgg_view_image_block($image, $body);
+} else {
+ echo $body;
+} \ No newline at end of file
diff --git a/views/default/river/elements/body.php b/views/default/river/elements/body.php
new file mode 100644
index 000000000..56d7a09e9
--- /dev/null
+++ b/views/default/river/elements/body.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Body of river item
+ *
+ * @uses $vars['item'] ElggRiverItem
+ * @uses $vars['summary'] Alternate summary (the short text summary of action)
+ * @uses $vars['message'] Optional message (usually excerpt of text)
+ * @uses $vars['attachments'] Optional attachments (displaying icons or other non-text data)
+ * @uses $vars['responses'] Alternate respones (comments, replies, etc.)
+ */
+
+$item = $vars['item'];
+
+$menu = elgg_view_menu('river', array(
+ 'item' => $item,
+ 'sort_by' => 'priority',
+));
+
+// river item header
+if($item->action_type != 'comment') {
+$timestamp = elgg_get_friendly_time($item->getPostedTime());
+
+$summary = elgg_extract('summary', $vars, elgg_view('river/elements/summary', array('item' => $vars['item'])));
+if ($summary === false) {
+ $subject = $item->getSubjectEntity();
+ $summary = elgg_view('output/url', array(
+ 'href' => $subject->getURL(),
+ 'text' => $subject->name,
+ 'class' => 'elgg-river-subject',
+ ));
+}
+
+$message = elgg_extract('message', $vars, false);
+if ($message !== false) {
+ $message = "<div class=\"elgg-river-message\">$message</div>";
+}
+
+$attachments = elgg_extract('attachments', $vars, false);
+if ($attachments !== false) {
+ $attachments = "<div class=\"elgg-river-attachments\">$attachments</div>";
+}
+
+$responses = elgg_view('river/elements/responses', $vars);
+if ($responses) {
+ $responses = "<div class=\"elgg-river-responses\">$responses</div>";
+}
+
+$group_string = '';
+$object = $item->getObjectEntity();
+$container = $object->getContainerEntity();
+if ($container instanceof ElggGroup && $container->guid != elgg_get_page_owner_guid()) {
+ $group_link = elgg_view('output/url', array(
+ 'href' => $container->getURL(),
+ 'text' => $container->name,
+ ));
+ $group_string = elgg_echo('river:ingroup', array($group_link));
+}
+
+echo <<<RIVER
+<div class="elgg-river-summary">$summary $group_string</div>
+$message
+$attachments
+<span class="elgg-river-timestamp">$timestamp</span>
+$menu
+$responses
+RIVER;
+
+} \ No newline at end of file
diff --git a/views/default/river/elements/responses.php b/views/default/river/elements/responses.php
new file mode 100644
index 000000000..432296737
--- /dev/null
+++ b/views/default/river/elements/responses.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * River item footer
+ */
+
+$item = $vars['item'];
+$object = $item->getObjectEntity();
+
+// annotations do not have comments
+if (!$object || $item->annotation_id) {
+ return true;
+}
+
+
+$comment_count = $object->countComments();
+
+$comments = elgg_get_annotations(array(
+ 'guid' => $object->getGUID(),
+ 'annotation_name' => 'generic_comment',
+ 'limit' => 3,
+ 'order_by' => 'n_table.time_created desc'
+));
+
+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);
+
+ if ($comment_count > count($comments)) {
+ $link = elgg_view('output/url', array(
+ 'href' => $object->getURL(),
+ 'text' => elgg_echo('river:comments:all', array($comment_count)),
+ ));
+
+ echo elgg_view_image_block(elgg_view_icon('speech-bubble-alt'), $link, array('class' => 'elgg-river-participation'));
+ }
+
+ echo elgg_view_annotation_list($comments, array('list_class' => 'elgg-river-comments', 'item_class' => 'elgg-river-participation'));
+
+}
+
+if ($object->canAnnotate(0, 'generic_comment')) {
+ // inline comment form
+ echo elgg_view_form('comments/add', array(
+ 'id' => "comments-add-{$object->getGUID()}",
+ 'class' => 'elgg-river-participation elgg-form-small',
+ ), array('entity' => $object, 'inline' => true));
+} \ No newline at end of file