From 856dc92ef07c9fe06339349224533a12898b31d7 Mon Sep 17 00:00:00 2001 From: dave Date: Sat, 19 Jun 2010 16:31:35 +0000 Subject: There was no point in group discussions having their own comment annotations, better to use the generic comments so this has been changed and a full group activity stream added. For v1.8, there will need to be an upgrade script which will change 'group_topic_post' -> 'generic_comment' and on all existing topics, take the first annotation of type 'group_topic_post' and populate the topic's description. git-svn-id: http://code.elgg.org/elgg/trunk@6526 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/groups/actions/forums/addpost.php | 58 ---------- mod/groups/actions/forums/addtopic.php | 7 +- mod/groups/actions/forums/deletepost.php | 47 -------- mod/groups/actions/forums/editpost.php | 48 -------- mod/groups/actions/forums/edittopic.php | 121 +++++++++------------ mod/groups/activity.php | 55 ++++++++++ mod/groups/addtopic.php | 35 +++--- mod/groups/all.php | 5 +- mod/groups/discussions.php | 33 ------ mod/groups/edit.php | 2 +- mod/groups/edittopic.php | 45 +++----- mod/groups/forum.php | 75 ++++++------- mod/groups/languages/en.php | 14 ++- mod/groups/start.php | 22 ++++ mod/groups/views/default/forms/forums/addpost.php | 34 ------ .../views/default/forms/forums/edittopic.php | 11 +- mod/groups/views/default/forum/maintopic.php | 56 ++++++++++ mod/groups/views/default/forum/topicposts.php | 81 -------------- mod/groups/views/default/forum/topics.php | 22 ++-- mod/groups/views/default/forum/viewposts.php | 85 ++++++--------- mod/groups/views/default/groups/css.php | 3 +- mod/groups/views/default/groups/forum_latest.php | 17 +-- .../views/default/object/groupforumtopic.php | 118 ++++++++++---------- .../views/default/river/forum/topic/create.php | 17 +-- 24 files changed, 385 insertions(+), 626 deletions(-) delete mode 100644 mod/groups/actions/forums/addpost.php delete mode 100644 mod/groups/actions/forums/deletepost.php delete mode 100644 mod/groups/actions/forums/editpost.php create mode 100644 mod/groups/activity.php delete mode 100644 mod/groups/discussions.php delete mode 100644 mod/groups/views/default/forms/forums/addpost.php create mode 100644 mod/groups/views/default/forum/maintopic.php delete mode 100644 mod/groups/views/default/forum/topicposts.php (limited to 'mod') diff --git a/mod/groups/actions/forums/addpost.php b/mod/groups/actions/forums/addpost.php deleted file mode 100644 index c277b795d..000000000 --- a/mod/groups/actions/forums/addpost.php +++ /dev/null @@ -1,58 +0,0 @@ - - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.org/ - */ - -// Make sure we're logged in and have a CSRF token -gatekeeper(); - -// Get input -$topic_guid = (int) get_input('topic_guid'); -$group_guid = (int) get_input('group_guid'); -$post = get_input('topic_post'); - - -// make sure we have text in the post -if (!$post) { - register_error(elgg_echo("grouppost:nopost")); - forward($_SERVER['HTTP_REFERER']); -} - - -// Check that user is a group member -$group = get_entity($group_guid); -$user = get_loggedin_user(); -if (!$group->isMember($user)) { - register_error(elgg_echo("groups:notmember")); - forward($_SERVER['HTTP_REFERER']); -} - - -// Let's see if we can get an form topic with the specified GUID, and that it's a group forum topic -$topic = get_entity($topic_guid); -if (!$topic || $topic->getSubtype() != "groupforumtopic") { - register_error(elgg_echo("grouptopic:notfound")); - forward($_SERVER['HTTP_REFERER']); -} - - -// add the post to the forum topic -$post_id = $topic->annotate('group_topic_post', $post, $topic->access_id, $user->guid); -if ($post_id == false) { - system_message(elgg_echo("groupspost:failure")); - forward($_SERVER['HTTP_REFERER']); -} - -// add to river -add_to_river('river/forum/create', 'create', $user->guid, $topic_guid, "", 0, $post_id); - -system_message(elgg_echo("groupspost:success")); - -forward($_SERVER['HTTP_REFERER']); diff --git a/mod/groups/actions/forums/addtopic.php b/mod/groups/actions/forums/addtopic.php index 085e2196e..1bb4c0588 100644 --- a/mod/groups/actions/forums/addtopic.php +++ b/mod/groups/actions/forums/addtopic.php @@ -49,6 +49,8 @@ $grouptopic->access_id = $access; // Set its title and description appropriately $grouptopic->title = $title; + // Set its title and description appropriately + $grouptopic->description = $message; // Before we can set metadata, we need to save the topic if (!$grouptopic->save()) { register_error(elgg_echo("grouptopic:error")); @@ -60,10 +62,7 @@ } // add metadata $grouptopic->status = $status; // the current status i.e sticky, closed, resolved, open - - // now add the topic message as an annotation - $grouptopic->annotate('group_topic_post',$message,$access, $user); - + // add to river add_to_river('river/forum/topic/create','create',$_SESSION['user']->guid,$grouptopic->guid); diff --git a/mod/groups/actions/forums/deletepost.php b/mod/groups/actions/forums/deletepost.php deleted file mode 100644 index 14336c1fa..000000000 --- a/mod/groups/actions/forums/deletepost.php +++ /dev/null @@ -1,47 +0,0 @@ - - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.org/ - */ - - // Ensure we're logged in - if (!isloggedin()) forward(); - - - // Make sure we can get the comment in question - $post_id = (int) get_input('post'); - $group_guid = (int) get_input('group'); - $topic_guid = (int) get_input('topic'); - - if ($post = get_annotation($post_id)) { - - //check that the user can edit as well as admin - if ($post->canEdit() || ($post->owner_guid == $_SESSION['user']->guid)) { - - //delete forum comment - $post->delete(); - - // remove river entry if it exists - remove_from_river_by_annotation($post_id); - - //display confirmation message - system_message(elgg_echo("grouppost:deleted")); - } - - } else { - $url = ""; - system_message(elgg_echo("grouppost:notdeleted")); - } - - // Forward to the group forum page - global $CONFIG; - $url = $CONFIG->wwwroot . "mod/groups/topicposts.php?topic={$topic_guid}&group_guid={$group_guid}"; - forward($url); - -?> \ No newline at end of file diff --git a/mod/groups/actions/forums/editpost.php b/mod/groups/actions/forums/editpost.php deleted file mode 100644 index 5ce1fac13..000000000 --- a/mod/groups/actions/forums/editpost.php +++ /dev/null @@ -1,48 +0,0 @@ -owner_guid; - $access_id = $annotation->access_id; - $topic = get_input("topic"); - - if ($annotation) { - - //can edit? Either the comment owner or admin can - if (groups_can_edit_discussion($annotation, page_owner_entity()->owner_guid)) { - - update_annotation($post, "group_topic_post", $post_comment, "",$commentOwner, $access_id); - system_message(elgg_echo("groups:forumpost:edited")); - - } else { - system_message(elgg_echo("groups:forumpost:error")); - } - - } else { - - system_message(elgg_echo("groups:forumpost:error")); - } - - // Forward to the group forum page - $url = $CONFIG->wwwroot . "mod/groups/topicposts.php?topic={$topic}&group_guid={$group_guid}/"; - forward($url); - - -?> \ No newline at end of file diff --git a/mod/groups/actions/forums/edittopic.php b/mod/groups/actions/forums/edittopic.php index 10b54ed61..b677a713c 100644 --- a/mod/groups/actions/forums/edittopic.php +++ b/mod/groups/actions/forums/edittopic.php @@ -1,87 +1,66 @@ isMember($vars['user'])) forward(); +// Check the user is a group member +$group_entity = get_entity(get_input('group_guid')); +if (!$group_entity->isMember($vars['user'])) forward(); - - // Get input data - $title = strip_tags(get_input('topictitle')); - $message = get_input('topicmessage'); - $message_id = get_input('message_id'); - $tags = get_input('topictags'); - $topic_guid = get_input('topic'); - $access = get_input('access_id'); - $group_guid = get_input('group_guid'); - //$user = $_SESSION['user']->getGUID(); // you need to be logged in to comment on a group forum - $status = get_input('status'); // sticky, resolved, closed - - // Convert string of tags into a preformatted array - $tagarray = string_to_tag_array($tags); +// Get input data +$title = strip_tags(get_input('topictitle')); +$message = get_input('topicmessage'); +$message_id = get_input('message_id'); +$tags = get_input('topictags'); +$topic_guid = get_input('topic'); +$access = get_input('access_id'); +$group_guid = get_input('group_guid'); +$status = get_input('status'); // open, closed - // Make sure we actually have permission to edit - $topic = get_entity($topic_guid); - if ($topic) - { +// Convert string of tags into a preformatted array +$tagarray = string_to_tag_array($tags); - $user = $topic->getOwner(); - - if ($topic->getSubtype() == "groupforumtopic") { +// Make sure we actually have permission to edit +$topic = get_entity($topic_guid); +if ($topic){ + $user = $topic->getOwner(); + if ($topic->getSubtype() == "groupforumtopic") { - // Convert string of tags into a preformatted array - $tagarray = string_to_tag_array($tags); + // Convert string of tags into a preformatted array + $tagarray = string_to_tag_array($tags); + + // Make sure the title isn't blank + if (empty($title) || empty($message)) { + register_error(elgg_echo("groupstopic:blank")); - // Make sure the title isn't blank - if (empty($title) || empty($message)) { - register_error(elgg_echo("groupstopic:blank")); - // Otherwise, save the forum - } else { - - $topic->access_id = $access; - + } else { + $topic->access_id = $access; // Set its title - $topic->title = $title; - + $topic->title = $title; + // Set the message + $topic->description = $message; // if no tags are present, clear existing ones - if (is_array($tagarray)) { - $topic->tags = $tagarray; - } else $topic->clearMetadata('tags'); - + if (is_array($tagarray)) { + $topic->tags = $tagarray; + } else $topic->clearMetadata('tags'); // edit metadata - $topic->status = $status; // the current status i.e sticky, closed, resolved - - // now let's edit the message annotation - update_annotation($message_id, "group_topic_post", $message, "",$user, $access); - + $topic->status = $status; // the current status i.e sticky, closed, resolved + // save the changes - if (!$topic->save()) { + if (!$topic->save()) { // register_error(elgg_echo("forumtopic:error")); - } - - // Success message - system_message(elgg_echo("groups:forumtopic:edited")); - - } - } + } + // Success message + system_message(elgg_echo("groups:forumtopic:edited")); } - // Forward to the group forum page - global $CONFIG; - $url = $CONFIG->wwwroot . "pg/groups/forum/{$group_guid}/"; - forward($url); - -?> + } +} +// Forward to the group forum page +global $CONFIG; +$url = $CONFIG->wwwroot . "pg/groups/forum/{$group_guid}/"; +forward($url); diff --git a/mod/groups/activity.php b/mod/groups/activity.php new file mode 100644 index 000000000..18a97265b --- /dev/null +++ b/mod/groups/activity.php @@ -0,0 +1,55 @@ +wwwroot."pg/groups/world/"); +elgg_push_breadcrumb($group->name, $group->getURL()); +elgg_push_breadcrumb(elgg_echo('groups:activity')); + +$area1 = elgg_view('navigation/breadcrumbs'); + +$limit = get_input("limit", 20); +$offset = get_input("offset", 0); +$group_guid = get_input("group", 7); +// Sanitise variables -- future proof in case they get sourced elsewhere +$limit = (int) $limit; +$offset = (int) $offset; +$group_guid = (int) $group_guid; + +$entities = elgg_get_entities(array( + 'container_guids' => $group_guid, + 'group_by' => 'e.guid' +)); + +$entity_guids = array(); +foreach ($entities as $entity) { + $entity_guids[] = $entity->getGUID(); +} + +if (count($entity_guids) > 0) { + $river_items = elgg_view_river_items('', $entity_guids, '', '', '', '', $limit); +} else { + $river_items .= elgg_echo('groups:no_activity'); +} + +$area1 .= elgg_view_title(elgg_echo('groups:activity')); +$area1 .= "
".$river_items."
"; +$title = sprintf(elgg_echo("groups:activity"), page_owner_entity()->name); +$body = elgg_view_layout('one_column_with_sidebar', $area1); + +// Finally draw the page +page_draw($title, $body); \ No newline at end of file diff --git a/mod/groups/addtopic.php b/mod/groups/addtopic.php index ed9343fef..cc02fa4eb 100644 --- a/mod/groups/addtopic.php +++ b/mod/groups/addtopic.php @@ -1,29 +1,20 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - gatekeeper(); +// Load Elgg engine +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - $page_owner = set_page_owner((int) get_input('group_guid')); +group_gatekeeper(); - if (!(page_owner_entity() instanceof ElggGroup)) forward(); +$page_owner = set_page_owner((int) get_input('group_guid')); - // sort the display - $area2 = elgg_view("forms/forums/addtopic"); - $body = elgg_view_layout('one_column_with_sidebar', $area1.$area2); +if (!(page_owner_entity() instanceof ElggGroup)) forward(); - // Display page - page_draw(elgg_echo('groups:addtopic'),$body); +// sort the display +$area2 = elgg_view("forms/forums/addtopic"); +$body = elgg_view_layout('one_column_with_sidebar', $area1.$area2); -?> \ No newline at end of file +// Display page +page_draw(elgg_echo('groups:addtopic'),$body); \ No newline at end of file diff --git a/mod/groups/all.php b/mod/groups/all.php index 9e19fce09..6f0c16add 100644 --- a/mod/groups/all.php +++ b/mod/groups/all.php @@ -35,11 +35,12 @@ $options = array( 'type' => 'object', 'subtype' => 'groupforumtopic', - 'annotation_name' => 'group_topic_post', + 'annotation_name' => 'generic_comment', + 'order_by' => 'e.last_action desc', 'limit' => 40, 'fullview' => TRUE ); - $objects = elgg_list_entities_from_annotations($options); + $objects = elgg_list_entities($options); break; } diff --git a/mod/groups/discussions.php b/mod/groups/discussions.php deleted file mode 100644 index 44bc5e610..000000000 --- a/mod/groups/discussions.php +++ /dev/null @@ -1,33 +0,0 @@ - - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - // access check for closed groups - group_gatekeeper(); - - // Display them - $area1 = elgg_view_title(elgg_echo("groups:latestdiscussion")); - set_context('search'); - $area1 .= list_entities_from_annotations("object", "groupforumtopic", "group_topic_post", "", 40, 0, 0, false, true); - set_context('groups'); - - $body = elgg_view_layout("one_column_with_sidebar", $area1); - - // Display page - page_draw(elgg_echo('groups:latestdiscussion'),$body); - - -?> \ No newline at end of file diff --git a/mod/groups/edit.php b/mod/groups/edit.php index 94160891a..cbb181ef3 100644 --- a/mod/groups/edit.php +++ b/mod/groups/edit.php @@ -10,7 +10,7 @@ */ require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - gatekeeper(); + group_gatekeeper(); $group_guid = get_input('group_guid'); $group = get_entity($group_guid); diff --git a/mod/groups/edittopic.php b/mod/groups/edittopic.php index 6c4b97a25..b09efacbe 100644 --- a/mod/groups/edittopic.php +++ b/mod/groups/edittopic.php @@ -1,36 +1,25 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); +// Load Elgg engine +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - gatekeeper(); +gatekeeper(); - get_input('group'); - $page_owner = set_page_owner((int)get_input('group')); - - // check the user is a member of the group - //if (!$page_owner->isMember($_SESSION['user'])) forward(); +get_input('group'); +$page_owner = set_page_owner((int)get_input('group')); - if (!(page_owner_entity() instanceof ElggGroup)) forward(); +// check the user is a member of the group +if (!(page_owner_entity() instanceof ElggGroup)) forward(); - //get the topic - $topic = get_entity((int) get_input('topic')); - - // sort the display - $area2 = elgg_view("forms/forums/edittopic", array('entity' => $topic)); - $body = elgg_view_layout('one_column_with_sidebar', $area2); +//get the topic +$topic = get_entity((int) get_input('topic')); - // Display page - page_draw(elgg_echo('groups:edittopic'),$body); +// sort the display +$area2 = elgg_view("forms/forums/edittopic", array('entity' => $topic)); +$body = elgg_view_layout('one_column_with_sidebar', $area2); -?> \ No newline at end of file +// Display page +page_draw(elgg_echo('groups:edittopic'),$body); \ No newline at end of file diff --git a/mod/groups/forum.php b/mod/groups/forum.php index 32ffea2da..c06bb2ebb 100644 --- a/mod/groups/forum.php +++ b/mod/groups/forum.php @@ -1,54 +1,45 @@ 'object', - 'subtype' => 'groupforumtopic', - 'annotation_name' => 'group_topic_post', - 'limit' => 20, - 'container_guid' => $group_guid, - 'fullview' => FALSE - ); +//get any forum topics +$options = array( + 'type' => 'object', + 'subtype' => 'groupforumtopic', + 'limit' => 20, + 'order_by' => 'e.last_action desc', + 'container_guid' => $group_guid, + 'fullview' => FALSE +); - $topics = elgg_list_entities_from_annotations($options); +//$topics = elgg_list_entities_from_annotations($options); +$topics = elgg_list_entities($options); - // set up breadcrumbs - $group = get_entity($group_guid); - elgg_push_breadcrumb(elgg_echo('groups'), $CONFIG->wwwroot."pg/groups/world/"); - elgg_push_breadcrumb($group->name, $group->getURL()); - elgg_push_breadcrumb(elgg_echo('item:object:groupforumtopic')); +// set up breadcrumbs +$group = get_entity($group_guid); +elgg_push_breadcrumb(elgg_echo('groups'), $CONFIG->wwwroot."pg/groups/world/"); +elgg_push_breadcrumb($group->name, $group->getURL()); +elgg_push_breadcrumb(elgg_echo('item:object:groupforumtopic')); - $area1 = elgg_view('navigation/breadcrumbs'); +$area1 = elgg_view('navigation/breadcrumbs'); - $area1 .= elgg_view("forum/topics", array('topics' => $topics, 'group_guid' => $group_guid)); - set_context('groups'); +$area1 .= elgg_view("forum/topics", array('topics' => $topics, 'group_guid' => $group_guid)); +set_context('groups'); - $body = elgg_view_layout('one_column_with_sidebar', $area1); +$body = elgg_view_layout('one_column_with_sidebar', $area1); - $title = elgg_echo('item:object:groupforumtopic'); +$title = elgg_echo('item:object:groupforumtopic'); - // Finally draw the page - page_draw($title, $body); - - - -?> \ No newline at end of file +// Finally draw the page +page_draw($title, $body); \ No newline at end of file diff --git a/mod/groups/languages/en.php b/mod/groups/languages/en.php index 5a17fbb26..0bd0cbd39 100644 --- a/mod/groups/languages/en.php +++ b/mod/groups/languages/en.php @@ -58,7 +58,8 @@ $english = array( 'groups:viagroups' => "via groups", 'groups:group' => "Group", 'groups:search:tags' => "tag", - + 'groups:activity' => "Group activity", + 'groups:no_activity' => "There is no group activity yet", 'groups:notfound' => "Group not found", 'groups:notfound:details' => "The requested group either does not exist or you do not have access to it", @@ -93,8 +94,6 @@ $english = array( 'groups:enablefiles' => 'Enable group files', 'groups:yes' => 'yes', 'groups:no' => 'no', - - 'group:created' => 'Created %s with %d posts', 'groups:lastupdated' => 'Last updated %s by %s', 'groups:pages' => 'Group pages', 'groups:files' => 'Group files', @@ -104,6 +103,8 @@ $english = array( */ 'group:replies' => 'Replies', + 'groups:forum:created' => 'Created %s with %d comments', + 'groups:forum:created:single' => 'Created %s with %d reply', 'groups:forum' => 'Discussion', 'groups:addtopic' => 'Add a topic', 'groups:forumlatest' => 'Latest discussion', @@ -127,8 +128,8 @@ $english = array( 'grouptopic:created' => 'Your topic was created.', 'groupstopic:deleted' => 'The topic has been deleted.', 'groups:topicsticky' => 'Sticky', - 'groups:topicisclosed' => 'This topic is closed.', - 'groups:topiccloseddesc' => 'This topic has now been closed and is not accepting new comments.', + 'groups:topicisclosed' => 'This discussion is closed.', + 'groups:topiccloseddesc' => 'This discussion has now been closed and is not accepting new comments.', 'grouptopic:error' => 'Your group topic could not be created. Please try again or contact a system administrator.', 'groups:forumpost:edited' => "You have successfully edited the forum post.", 'groups:forumpost:error' => "There was a problem editing the forum post.", @@ -186,8 +187,9 @@ or click below to view the group's join requests: 'groupforum:river:update' => 'this discussion topic', 'groupforum:river:created' => '%s has created', 'groupforum:river:create' => 'a new discussion topic titled', - 'groupforum:river:posted' => '%s has posted a new comment', + 'groupforum:river:posted' => '%s has posted a comment', 'groupforum:river:annotate:create' => 'on this discussion topic', + 'groupforumtopic:river:annotate' => 'a new comment on this discussion topic', 'groupforum:river:postedtopic' => '%s has started a new discussion topic titled', 'groups:river:member' => '%s is now a member of', 'groups:river:togroup' => 'to the group', diff --git a/mod/groups/start.php b/mod/groups/start.php index e3f4d019a..7b11def20 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -75,6 +75,7 @@ // Register profile menu hook register_plugin_hook('profile_menu', 'profile', 'forum_profile_menu'); + register_plugin_hook('profile_menu', 'profile', 'activity_profile_menu'); // allow ecml in discussion register_plugin_hook('get_views', 'ecml', 'groups_ecml_views_hook'); @@ -276,6 +277,15 @@ set_input('group_guid', $page[1]); include($CONFIG->pluginspath . "groups/forum.php"); break; + case "edittopic": + set_input('group', $page[1]); + set_input('topic', $page[2]); + include($CONFIG->pluginspath . "groups/edittopic.php"); + break; + case "activity": + set_input('group', $page[1]); + include($CONFIG->pluginspath . "groups/activity.php"); + break; case "owned" : // Owned by a user if (isset($page[1])) @@ -581,6 +591,18 @@ } return $return_value; } + + function activity_profile_menu($hook, $entity_type, $return_value, $params) { + global $CONFIG; + + if ($params['owner'] instanceof ElggGroup) { + $return_value[] = array( + 'text' => elgg_echo('Activity'), + 'href' => "{$CONFIG->url}pg/groups/activity/{$params['owner']->getGUID()}" + ); + } + return $return_value; + } /** * Parse ECML on group discussion views diff --git a/mod/groups/views/default/forms/forums/addpost.php b/mod/groups/views/default/forms/forums/addpost.php deleted file mode 100644 index c5236c532..000000000 --- a/mod/groups/views/default/forms/forums/addpost.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - * - * @uses $vars['entity'] Optionally, the post to edit - */ - -?> -
- - "topic_post", - "value" => $body, - )); - ?> - - - - - - - - - -
diff --git a/mod/groups/views/default/forms/forums/edittopic.php b/mod/groups/views/default/forms/forums/edittopic.php index 89c8c441b..cfaae5dd9 100644 --- a/mod/groups/views/default/forms/forums/edittopic.php +++ b/mod/groups/views/default/forms/forums/edittopic.php @@ -17,12 +17,7 @@ $status = $vars['entity']->status; $tags = $vars['entity']->tags; $title = $vars['entity']->title; - $message = $vars['entity']->getAnnotations('group_topic_post', 1, 0, "asc"); - - foreach($message as $mes){ - $messsage_content = $mes->value; - $message_id = $mes->id; - } + $message = $vars['entity']->description; // get the group GUID $group_guid = get_input("group"); @@ -72,7 +67,7 @@ echo elgg_view("input/longtext",array( "internalname" => "topicmessage", - "value" => $messsage_content, + "value" => html_entity_decode($message, ENT_COMPAT, 'UTF-8') )); ?>

@@ -82,8 +77,6 @@ diff --git a/mod/groups/views/default/forum/maintopic.php b/mod/groups/views/default/forum/maintopic.php new file mode 100644 index 000000000..7a4a86da7 --- /dev/null +++ b/mod/groups/views/default/forum/maintopic.php @@ -0,0 +1,56 @@ + + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * + * @uses $vars['entity'] The post + */ + + $topic = get_input('topic'); + $group_guid = get_input('group_guid'); + +?> + +
+ + owner_guid)) { + // display the user icon + echo "
" . elgg_view("profile/icon",array('entity' => $post_owner, 'size' => 'tiny')) . "
"; + // display the user name + echo "
"; + // if comment owner, group owner, or site admin - display edit and delete options + if (groups_can_edit_discussion($vars['entity'], page_owner_entity()->owner_guid)) { + echo ""; + + } + + echo "

" . $post_owner->name . "

"; + } else { + echo "
"; + echo "

" . elgg_echo('profile:deleteduser') . "

"; + } + + //display the date of the comment + echo "

" . friendly_time($vars['entity']->time_created) . "

"; + + //display the actual message posted + echo parse_urls(elgg_view("output/longtext",array("value" => $vars['entity']->description))); + echo "
"; // close entity_listing_info +?> + +
\ No newline at end of file diff --git a/mod/groups/views/default/forum/topicposts.php b/mod/groups/views/default/forum/topicposts.php deleted file mode 100644 index 7fb32e427..000000000 --- a/mod/groups/views/default/forum/topicposts.php +++ /dev/null @@ -1,81 +0,0 @@ - - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - * - * @uses $vars['entity'] The posted comment to view - */ - - -?> - -
- - owner_guid)) { - // display the user icon - echo "
" . elgg_view("profile/icon",array('entity' => $post_owner, 'size' => 'tiny')) . "
"; - // display the user name - echo "
"; - // if comment owner, group owner, or site admin - display edit and delete options - if (groups_can_edit_discussion($vars['entity'], page_owner_entity()->owner_guid)) { - echo ""; - - } - - echo "

" . $post_owner->name . "

"; - } else { - echo "
"; - echo "

" . elgg_echo('profile:deleteduser') . "

"; - } - - //display the date of the comment - echo "

" . friendly_time($vars['entity']->time_created) . "

"; - - //display the actual message posted - echo parse_urls(elgg_view("output/longtext",array("value" => $vars['entity']->value))); - - // if comment owner, group owner, or site admin - display edit-form - if (groups_can_edit_discussion($vars['entity'], page_owner_entity()->owner_guid)) { - //get the edit form and details - $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); - $text_textarea = elgg_view('input/longtext', array('internalname' => 'postComment'.$vars['entity']->id, 'value' => $vars['entity']->value)); - $post = elgg_view('input/hidden', array('internalname' => 'post', 'value' => $vars['entity']->id)); - $field = elgg_view('input/hidden', array('internalname' => 'field_num', 'value' => $vars['entity']->id)); - $topic = elgg_view('input/hidden', array('internalname' => 'topic', 'value' => get_input('topic'))); - $group = elgg_view('input/hidden', array('internalname' => 'group', 'value' => get_input('group_guid'))); - $edittopic_title = elgg_echo('groups:edittopic'); - - $form_body = << - - $text_textarea

- $post - $topic - $group - $field - $submit_input -EOT; - echo ""; - } - echo "
"; // close entity_listing_info -?> - -
\ No newline at end of file diff --git a/mod/groups/views/default/forum/topics.php b/mod/groups/views/default/forum/topics.php index c0f5ff2d1..91834aa08 100644 --- a/mod/groups/views/default/forum/topics.php +++ b/mod/groups/views/default/forum/topics.php @@ -1,13 +1,7 @@
@@ -25,9 +19,7 @@ ?>
". elgg_echo("grouptopic:notcreated") . "

"; - -?> \ No newline at end of file +if($vars['topics']) + echo $vars['topics']; +else + echo "

". elgg_echo("grouptopic:notcreated") . "

"; \ No newline at end of file diff --git a/mod/groups/views/default/forum/viewposts.php b/mod/groups/views/default/forum/viewposts.php index 0ff70a38a..aa8b334f2 100644 --- a/mod/groups/views/default/forum/viewposts.php +++ b/mod/groups/views/default/forum/viewposts.php @@ -1,61 +1,48 @@ wwwroot."pg/groups/world/"); - elgg_push_breadcrumb($group->name, $group->getURL()); - elgg_push_breadcrumb(elgg_echo('item:object:groupforumtopic'), $CONFIG->wwwroot."pg/groups/forum/{$vars['entity']->container_guid}"); - elgg_push_breadcrumb($vars['entity']->title); - - echo elgg_view('navigation/breadcrumbs'); - - //display follow up comments - $count = $vars['entity']->countAnnotations('group_topic_post'); - $offset = (int) get_input('offset',0); - - $baseurl = $vars['url'] . "mod/groups/topicposts.php?topic={$vars['entity']->guid}&group_guid={$vars['entity']->container_guid}"; - echo elgg_view('navigation/pagination',array( - 'limit' => 50, - 'offset' => $offset, - 'baseurl' => $baseurl, - 'count' => $count, - )); +/** + * Elgg groups plugin display topic posts + */ + +// set up breadcrumbs +$group_guid = get_input('group_guid'); +$group = get_entity($group_guid); +elgg_push_breadcrumb(elgg_echo('groups'), $CONFIG->wwwroot."pg/groups/world/"); +elgg_push_breadcrumb($group->name, $group->getURL()); +elgg_push_breadcrumb(elgg_echo('item:object:groupforumtopic'), $CONFIG->wwwroot."pg/groups/forum/{$vars['entity']->container_guid}"); +elgg_push_breadcrumb($vars['entity']->title); + +echo elgg_view('navigation/breadcrumbs'); + +//display follow up comments +$count = $vars['entity']->countAnnotations('group_topic_post'); +$offset = (int) get_input('offset',0); + +$baseurl = $vars['url'] . "mod/groups/topicposts.php?topic={$vars['entity']->guid}&group_guid={$vars['entity']->container_guid}"; +echo elgg_view('navigation/pagination',array( + 'limit' => 50, + 'offset' => $offset, + 'baseurl' => $baseurl, + 'count' => $count, + )); ?>

title; ?>

getAnnotations('group_topic_post', 50, $offset, "asc") as $post) { - - echo elgg_view("forum/topicposts",array('entity' => $post)); - - } + //display the topic + echo elgg_view("forum/maintopic",array('entity' => $vars['entity'])); // check to find out the status of the topic and act - if($vars['entity']->status != "closed" && page_owner_entity()->isMember($vars['user'])){ - - //display the add comment form, this will appear after all the existing comments - echo elgg_view("forms/forums/addpost", array('entity' => $vars['entity'])); - - } elseif($vars['entity']->status == "closed") { - + if($vars['entity']->status == "closed") { + echo elgg_view_comments($vars['entity'], false); //this topic has been closed by the owner - echo "

" . elgg_echo("groups:topicisclosed") . "

"; + echo "

" . elgg_echo("groups:topicisclosed") . "

"; echo "

" . elgg_echo("groups:topiccloseddesc") . "

"; - } else { + }elseif(page_owner_entity()->isMember($vars['user'])){ + //comments are on and the user viewing is a member + echo elgg_view_comments($vars['entity']); + }else{ + //the user is not a member so cannot post a comment + echo elgg_view_comments($vars['entity'], false); } - -?> diff --git a/mod/groups/views/default/groups/css.php b/mod/groups/views/default/groups/css.php index fc160453a..d435b1f7c 100644 --- a/mod/groups/views/default/groups/css.php +++ b/mod/groups/views/default/groups/css.php @@ -150,5 +150,4 @@ - force tinyMCE to correct width */ .edit_comment .defaultSkin table.mceLayout { width: 694px !important; -} - +} \ No newline at end of file diff --git a/mod/groups/views/default/groups/forum_latest.php b/mod/groups/views/default/groups/forum_latest.php index 3c6ce6ccf..865b04ca2 100644 --- a/mod/groups/views/default/groups/forum_latest.php +++ b/mod/groups/views/default/groups/forum_latest.php @@ -8,23 +8,26 @@ if($vars['entity']->forum_enable != 'no'){

'object', 'subtypes' => 'groupforumtopic', 'annotation_names' => 'group_topic_post', 'container_guid' => $vars['entity']->guid, 'limit' => 6, 'order_by' => 'maxtime desc')); + $forum = elgg_get_entities(array('types' => 'object', 'subtypes' => 'groupforumtopic', 'container_guid' => $vars['entity']->guid, 'limit' => 6)); if($forum){ foreach($forum as $f){ - $count_annotations = $f->countAnnotations("group_topic_post"); + $count_annotations = $f->countAnnotations("generic_comment"); echo "
"; echo "
" . elgg_view('profile/icon',array('entity' => $f->getOwnerEntity(), 'size' => 'tiny')) . "
"; echo "

guid}&group_guid={$vars['entity']->guid}\">" . $f->title . "

"; - echo "

".elgg_echo('groups:posts').": " . $count_annotations . "

"; + echo "

".elgg_echo('comments').": " . $count_annotations . "

"; echo "
"; } } else { - $create_discussion = $vars['url'] . "mod/groups/addtopic.php?group_guid=" . page_owner(); - echo "

".elgg_echo("groups:addtopic")."

"; + if(page_owner_entity()->isMember($vars['user'])){ + $create_discussion = $vars['url'] . "mod/groups/addtopic.php?group_guid=" . page_owner(); + echo "

".elgg_echo("groups:addtopic")."

"; + }else{ + echo "

". elgg_echo("grouptopic:notcreated") . "

"; + } } -}//end of forum active check -?> \ No newline at end of file +}//end of forum active check \ No newline at end of file diff --git a/mod/groups/views/default/object/groupforumtopic.php b/mod/groups/views/default/object/groupforumtopic.php index 8d5d655c0..e32f83cd4 100644 --- a/mod/groups/views/default/object/groupforumtopic.php +++ b/mod/groups/views/default/object/groupforumtopic.php @@ -1,71 +1,71 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ +/** + * Elgg Groups latest discussion listing + * + * @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 = friendly_time($vars['entity']->time_created); - $counter = $vars['entity']->countAnnotations("group_topic_post"); - $last_post = $vars['entity']->getAnnotations("group_topic_post", 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; - } +//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 = 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; } +} - $u = get_user($last_user); +$u = get_user($last_user); - //select the correct output depending on where you are - if(get_context() == "search"){ - - $info = "

" . sprintf(elgg_echo('group:created'), $forum_created, $counter) . "
"; - if (($last_time) && ($u)) $info.= sprintf(elgg_echo('groups:lastupdated'), friendly_time($last_time), " getURL() . "\">" . $u->name . ""); - $info .= '

'; - //get the group avatar - $icon = elgg_view("profile/icon",array('entity' => $u, 'size' => 'tiny')); - //get the group and topic title - $info .= "

" . elgg_echo('Topic') . ": guid}&group_guid={$group->guid}\">{$title}

"; - if ($group instanceof ElggGroup) { - $info .= "

" . elgg_echo('group') . ": getURL()}\">".htmlentities($group->name, ENT_QUOTES, 'UTF-8') ."

"; - } - +//select the correct output depending on where you are +if(get_context() == "search"){ + var_export($counter); + if($counter == 1){ + $info = "

" . sprintf(elgg_echo('groups:forum:created:single'), $forum_created, $counter) . "
"; }else{ + $info = "

" . sprintf(elgg_echo('groups:forum:created'), $forum_created, $counter) . "
"; + } + if (($last_time) && ($u)) $info.= sprintf(elgg_echo('groups:lastupdated'), friendly_time($last_time), " getURL() . "\">" . $u->name . ""); + $info .= '

'; + //get the group avatar + $icon = elgg_view("profile/icon",array('entity' => $u, 'size' => 'tiny')); + //get the group and topic title + $info .= "

" . elgg_echo('Topic') . ": guid}&group_guid={$group->guid}\">{$title}

"; + if ($group instanceof ElggGroup) { + $info .= "

" . elgg_echo('group') . ": getURL()}\">".htmlentities($group->name, ENT_QUOTES, 'UTF-8') ."

"; + } - $info = "

" . sprintf(elgg_echo('group:created'), $forum_created, $counter) . "

"; - $info .= "

" . elgg_echo('groups:started') . " " . $topic_owner->name . ": guid}&group_guid={$group->guid}\">{$title}

"; +}else{ + if($counter == 1){ + $info = "

" . sprintf(elgg_echo('groups:forum:created:single'), $forum_created, $counter) . "

"; + }else{ + $info = "

" . sprintf(elgg_echo('groups:forum:created'), $forum_created, $counter) . "

"; + } + $info .= "

" . elgg_echo('groups:started') . " " . $topic_owner->name . ": guid}&group_guid={$group->guid}\">{$title}

"; - if (groups_can_edit_discussion($vars['entity'], page_owner_entity()->owner_guid)) { - // display the delete link to those allowed to delete - $info .= "
" . elgg_view("output/confirmlink", array( - 'href' => $vars['url'] . "action/groups/deletetopic?topic=" . $vars['entity']->guid . "&group=" . $vars['entity']->container_guid, - 'text' => " ", - 'confirm' => elgg_echo('deleteconfirm'), - )) . "
"; + if (groups_can_edit_discussion($vars['entity'], page_owner_entity()->owner_guid)) { + // display the delete link to those allowed to delete + $info .= "
" . elgg_view("output/confirmlink", array( + 'href' => $vars['url'] . "action/groups/deletetopic?topic=" . $vars['entity']->guid . "&group=" . $vars['entity']->container_guid, + 'text' => " ", + 'confirm' => elgg_echo('deleteconfirm'), + )) . "
"; - } + } - if (($last_time) && ($u)) { - $info.= "

" . elgg_echo('groups:updated') . " " . friendly_time($last_time) . " by getURL() . "\">" . $u->name . "

"; - } - //get the user avatar - $icon = elgg_view("profile/icon",array('entity' => $topic_owner, 'size' => 'tiny')); + if (($last_time) && ($u)) { + $info.= "

" . elgg_echo('groups:updated') . " " . friendly_time($last_time) . " by getURL() . "\">" . $u->name . "

"; } + //get the user avatar + $icon = elgg_view("profile/icon",array('entity' => $topic_owner, 'size' => 'tiny')); +} - //display - echo elgg_view_listing($icon, $info); - -?> \ No newline at end of file +//display +echo elgg_view_listing($icon, $info); \ No newline at end of file diff --git a/mod/groups/views/default/river/forum/topic/create.php b/mod/groups/views/default/river/forum/topic/create.php index 0b65f79b6..fb2a3556d 100644 --- a/mod/groups/views/default/river/forum/topic/create.php +++ b/mod/groups/views/default/river/forum/topic/create.php @@ -7,19 +7,20 @@ $group_guid = $object->container_guid; $group = get_entity($group_guid); $url = $vars['url'] . "mod/groups/topicposts.php?topic=" . $forumtopic . "&group_guid=" . $group_guid; - $comment = $object->getAnnotations("group_topic_post", 1, 0, "asc"); - foreach($comment as $c){ - $contents = $c->value; - } + //$comment = $object->getAnnotations("group_topic_post", 1, 0, "asc"); + //foreach($comment as $c){ + $contents = $object->description; + //} $contents = strip_tags($contents);//this is so we don't get large images etc in the activity river $url_user = "getURL()}\">{$performed_by->name}"; $string = sprintf(elgg_echo("groupforum:river:postedtopic"),$url_user) . ": "; $string .= "" . $object->title . ""; - if(get_context() != 'groups'){ - $string .= " " . elgg_echo('groups:ingroup') . " getURL()}\">" . $group->name . ""; + $string .= " " . elgg_echo('groups:ingroup') . " getURL()}\">" . $group->name . ""; + $string .= " ". friendly_time($object->time_created) .""; + if (isloggedin() && $object->status != "closed") { + $string .= '' . elgg_echo('generic_comments:text') . ''; + $string .= elgg_view('likes/forms/link', array('entity' => $object)); } - $string .= " ". friendly_time($object->time_created) ." Visit discussion"; - $string .= elgg_view('likes/forms/link', array('entity' => $object)); $string .= "
"; $string .= elgg_make_excerpt($contents, 200); $string .= "
"; -- cgit v1.2.3