aboutsummaryrefslogtreecommitdiff
path: root/mod/groups/views/default/object/groupforumtopic.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/groups/views/default/object/groupforumtopic.php')
-rw-r--r--mod/groups/views/default/object/groupforumtopic.php161
1 files changed, 90 insertions, 71 deletions
diff --git a/mod/groups/views/default/object/groupforumtopic.php b/mod/groups/views/default/object/groupforumtopic.php
index e07072b78..e6988d16e 100644
--- a/mod/groups/views/default/object/groupforumtopic.php
+++ b/mod/groups/views/default/object/groupforumtopic.php
@@ -1,82 +1,101 @@
<?php
/**
- * Elgg Groups latest discussion listing
+ * Forum topic entity view
*
* @package ElggGroups
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
*/
-//get the required variables
-$title = htmlentities($vars['entity']->title, ENT_QUOTES, 'UTF-8');
-//$description = get_entity($vars['entity']->description);
-$topic_owner = get_user($vars['entity']->owner_guid);
-$group = get_entity($vars['entity']->container_guid);
-$forum_created = elgg_view_friendly_time($vars['entity']->time_created);
-$counter = $vars['entity']->countAnnotations("generic_comment");
-$last_post = $vars['entity']->getAnnotations("generic_comment", 1, 0, "desc");
-//get the time and user
-if ($last_post) {
- foreach($last_post as $last) {
- $last_time = $last->time_created;
- $last_user = $last->owner_guid;
- }
+$full = elgg_extract('full_view', $vars, FALSE);
+$topic = elgg_extract('entity', $vars, FALSE);
+
+if (!$topic) {
+ return true;
}
-$u = get_user($last_user);
-
-//select the correct output depending on where you are
-if (get_context() == "search") {
- var_export($counter);
- if($counter == 1){
- $info = "<p class='entity_subtext groups'>" . sprintf(elgg_echo('groups:forum:created:single'), $forum_created, $counter) . "<br />";
- }else{
- $info = "<p class='entity_subtext groups'>" . sprintf(elgg_echo('groups:forum:created'), $forum_created, $counter) . "<br />";
- }
- if (($last_time) && ($u)) $info.= sprintf(elgg_echo('groups:lastupdated'), elgg_view_friendly_time($last_time), " <a href=\"" . $u->getURL() . "\">" . $u->name . "</a>");
- $info .= '</p>';
- //get the group avatar
- $icon = elgg_view("profile/icon",array('entity' => $u, 'size' => 'tiny'));
- //get the group and topic title
- $info .= "<p class='entity_subtext'><b>" . elgg_echo('groups:topic') . ":</b> <a href=\"{$vars['url']}mod/groups/topicposts.php?topic={$vars['entity']->guid}&group_guid={$group->guid}\">{$title}</a></p>";
- if ($group instanceof ElggGroup) {
- $info .= "<p class='entity_title'><b>" . elgg_echo('group') . ":</b> <a href=\"{$group->getURL()}\">".htmlentities($group->name, ENT_QUOTES, 'UTF-8') ."</a></p>";
- }
+$poster = $topic->getOwnerEntity();
+$group = $topic->getContainerEntity();
+$excerpt = elgg_get_excerpt($topic->description);
-} else {
- if($counter == 1){
- $info = "<p class='entity_subtext groups'>" . sprintf(elgg_echo('groups:forum:created:single'), $forum_created, $counter) . "</p>";
- }else{
- $info = "<p class='entity_subtext groups'>" . sprintf(elgg_echo('groups:forum:created'), $forum_created, $counter) . "</p>";
- }
- $info .= "<p class='entity_title'>" . elgg_echo('groups:started') . " " . $topic_owner->name . ": <a href=\"{$vars['url']}mod/groups/topicposts.php?topic={$vars['entity']->guid}&group_guid={$group->guid}\">{$title}</a></p>";
-
- if (groups_can_edit_discussion($vars['entity'], page_owner_entity()->owner_guid)) {
- // display the delete link to those allowed to delete
- $info .= "<div class='entity_metadata'>";
- $info .= '<span class="entity_edit">' . elgg_view("output/url", array(
- 'href' => $vars['url'] . "mod/groups/edittopic.php?group={$vars['entity']->container_guid}&topic={$vars['entity']->guid}",
- 'text' => elgg_echo('edit'),
- ));
- $info .= '</span>';
-
- // display the delete link to those allowed to delete
- $info .= '<span class="delete_button">' . elgg_view("output/confirmlink", array(
- 'href' => $vars['url'] . "action/groups/deletetopic?topic=" . $vars['entity']->guid . "&group=" . $vars['entity']->container_guid,
- 'text' => elgg_echo('delete'),
- 'confirm' => elgg_echo('deleteconfirm'),
- ));
- $info .= "</span></div>";
-
- }
-
- if (($last_time) && ($u)) {
- $commenter_link = "<a href\"{$u->getURL()}\">$u->name</a>";
- $text = sprintf(elgg_echo('groups:lastcomment'), elgg_view_friendly_time($last_time), $commenter_link);
- $info .= "<p class='entity_subtext'>$text</p>";
- }
- //get the user avatar
- $icon = elgg_view("profile/icon",array('entity' => $topic_owner, 'size' => 'tiny'));
+$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_annotations(array(
+ 'annotation_name' => 'group_topic_post',
+ 'guid' => $topic->getGUID(),
+ 'count' => true,
+));
+if ($num_replies != 0) {
+ $last_reply = $topic->getAnnotations('group_topic_post', 1, 0, 'desc');
+ $poster = $last_reply[0]->getOwnerEntity();
+ $reply_time = elgg_view_friendly_time($last_reply[0]->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,
+ ));
}
-//display
-echo elgg_view_listing($icon, $info); \ No newline at end of file
+$metadata = elgg_view_menu('entity', array(
+ 'entity' => $vars['entity'],
+ 'handler' => 'discussion',
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
+));
+
+// do not show the metadata and controls in widget view
+if (elgg_in_context('widgets')) {
+ $metadata = '';
+}
+
+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);
+}