diff options
Diffstat (limited to 'views/default/river/elements')
-rw-r--r-- | views/default/river/elements/attachment.php | 25 | ||||
-rw-r--r-- | views/default/river/elements/body.php | 68 | ||||
-rw-r--r-- | views/default/river/elements/responses.php | 49 |
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 |