123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <?php
- /**
- * Forum topic entity view
- *
- * @package ElggGroups
- */
- $full = elgg_extract('full_view', $vars, FALSE);
- $topic = elgg_extract('entity', $vars, FALSE);
- if (!$topic) {
- return;
- }
- $poster = $topic->getOwnerEntity();
- if (!$poster) {
- elgg_log("User {$topic->owner_guid} could not be loaded, and is needed to display entity {$topic->guid}", 'WARNING');
- if ($full) {
- forward('', '404');
- }
- return;
- }
- $excerpt = elgg_get_excerpt($topic->description);
- $poster_icon = elgg_view_entity_icon($poster, 'tiny');
- $poster_link = elgg_view('output/url', array(
- 'href' => $poster->getURL(),
- 'text' => $poster->name,
- 'is_trusted' => true,
- ));
- $poster_text = elgg_echo('groups:started', array($poster->name));
- $tags = elgg_view('output/tags', array('tags' => $topic->tags));
- $date = elgg_view_friendly_time($topic->time_created);
- $replies_link = '';
- $reply_text = '';
- $num_replies = elgg_get_entities(array(
- 'type' => 'object',
- 'subtype' => 'discussion_reply',
- 'container_guid' => $topic->getGUID(),
- 'count' => true,
- 'distinct' => false,
- ));
- if ($num_replies != 0) {
- $last_reply = elgg_get_entities(array(
- 'type' => 'object',
- 'subtype' => 'discussion_reply',
- 'container_guid' => $topic->getGUID(),
- 'limit' => 1,
- 'distinct' => false,
- ));
- if (isset($last_reply[0])) {
- $last_reply = $last_reply[0];
- }
- $poster = $last_reply->getOwnerEntity();
- $reply_time = elgg_view_friendly_time($last_reply->time_created);
- $reply_text = elgg_echo('groups:updated', array($poster->name, $reply_time));
- $replies_link = elgg_view('output/url', array(
- 'href' => $topic->getURL() . '#group-replies',
- 'text' => elgg_echo('group:replies') . " ($num_replies)",
- 'is_trusted' => true,
- ));
- }
- // do not show the metadata and controls in widget view
- if (elgg_in_context('widgets')) {
- $metadata = '';
- } else {
- $metadata = elgg_view_menu('entity', array(
- 'entity' => $vars['entity'],
- 'handler' => 'discussion',
- 'sort_by' => 'priority',
- 'class' => 'elgg-menu-hz',
- ));
- }
- if ($full) {
- $subtitle = "$poster_text $date $replies_link";
- $params = array(
- 'entity' => $topic,
- 'metadata' => $metadata,
- 'subtitle' => $subtitle,
- 'tags' => $tags,
- );
- $params = $params + $vars;
- $list_body = elgg_view('object/elements/summary', $params);
- $info = elgg_view_image_block($poster_icon, $list_body);
- $body = elgg_view('output/longtext', array(
- 'value' => $topic->description,
- 'class' => 'clearfix',
- ));
- echo <<<HTML
- $info
- $body
- HTML;
- } else {
- // brief view
- $subtitle = "$poster_text $date $replies_link <span class=\"groups-latest-reply\">$reply_text</span>";
- $params = array(
- 'entity' => $topic,
- 'metadata' => $metadata,
- 'subtitle' => $subtitle,
- 'tags' => $tags,
- 'content' => $excerpt,
- );
- $params = $params + $vars;
- $list_body = elgg_view('object/elements/summary', $params);
- echo elgg_view_image_block($poster_icon, $list_body);
- }
|