diff options
author | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-06-19 16:31:35 +0000 |
---|---|---|
committer | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-06-19 16:31:35 +0000 |
commit | 856dc92ef07c9fe06339349224533a12898b31d7 (patch) | |
tree | 4e1a665848a8339a0c37cab948edab259f338d5f /mod/groups/actions/forums | |
parent | 47e359de2e11aac5c89039fbac11c1c871d3baed (diff) | |
download | elgg-856dc92ef07c9fe06339349224533a12898b31d7.tar.gz elgg-856dc92ef07c9fe06339349224533a12898b31d7.tar.bz2 |
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
Diffstat (limited to 'mod/groups/actions/forums')
-rw-r--r-- | mod/groups/actions/forums/addpost.php | 58 | ||||
-rw-r--r-- | mod/groups/actions/forums/addtopic.php | 7 | ||||
-rw-r--r-- | mod/groups/actions/forums/deletepost.php | 47 | ||||
-rw-r--r-- | mod/groups/actions/forums/editpost.php | 48 | ||||
-rw-r--r-- | mod/groups/actions/forums/edittopic.php | 121 |
5 files changed, 53 insertions, 228 deletions
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 @@ -<?php - -/** - * Elgg groups: add post to a topic - * - * @package ElggGroups - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider <info@elgg.com> - * @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 @@ -<?php - - /** - * Elgg Groups: delete topic comment action - * - * @package ElggGroups - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider <info@elgg.com> - * @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 @@ -<?php - - /** - * Elgg groups plugin edit post action. - * - * @package ElggGroups - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - - $group_guid = get_input('group'); - $group_entity = get_entity($group_guid); - - //get the required variables - $post = get_input("post"); - $field_num = get_input("field_num"); - $post_comment = get_input("postComment{$field_num}"); - $annotation = get_annotation($post); - $commentOwner = $annotation->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 @@ <?php +/** +* Elgg groups plugin edit topic action. + */ - /** - * Elgg groups plugin edit topic action. - * - * @package ElggGroups - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Make sure we're logged in (send us to the front page if not) - if (!isloggedin()) forward(); +// Make sure we're logged in (send us to the front page if not) +if (!isloggedin()) forward(); - // Check the user is a group member - $group_entity = get_entity(get_input('group_guid')); - if (!$group_entity->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); |