From 7ccee82ef0284fb0399369ad6282cd9ddc3e0e1d Mon Sep 17 00:00:00 2001 From: dave Date: Sun, 22 Feb 2009 13:23:27 +0000 Subject: users can now edit and delete their forum comments git-svn-id: https://code.elgg.org/elgg/trunk@2877 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/groups/actions/forums/deletepost.php | 4 +-- mod/groups/actions/forums/editpost.php | 52 +++++++++++++++++++++++++++ mod/groups/languages/en.php | 3 +- mod/groups/start.php | 1 + mod/groups/views/default/forum/topicposts.php | 44 ++++++++++++++++++++--- 5 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 mod/groups/actions/forums/editpost.php diff --git a/mod/groups/actions/forums/deletepost.php b/mod/groups/actions/forums/deletepost.php index 2298a930a..9c89610bb 100644 --- a/mod/groups/actions/forums/deletepost.php +++ b/mod/groups/actions/forums/deletepost.php @@ -21,8 +21,8 @@ if ($post = get_annotation($post_id)) { - //check that the user can edit - if ($post->canEdit()) { + //check that the user can edit as well as admin + if ($post->canEdit() || ($post->owner_guid == $_SESSION['user']->guid)) { //delete $post->delete(); diff --git a/mod/groups/actions/forums/editpost.php b/mod/groups/actions/forums/editpost.php new file mode 100644 index 000000000..bd37c5c31 --- /dev/null +++ b/mod/groups/actions/forums/editpost.php @@ -0,0 +1,52 @@ +isMember($vars['user'])) forward(); + + //get the required variables + $post = get_input("post"); + $post_comment = get_input("postComment"); + $annotation = get_annotation($post); + $commentOwner = get_input("commentOwner"); + $access_id = get_input("access_id"); + $topic = get_input("topic"); + + if($annotation){ + + //can edit? Either the comment owner or admin can + if($annotation->canedit() || ($commentOwner == $_SESSION['user']->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 + global $CONFIG; + $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/languages/en.php b/mod/groups/languages/en.php index ef45d5f57..47f8a10e1 100644 --- a/mod/groups/languages/en.php +++ b/mod/groups/languages/en.php @@ -118,7 +118,8 @@ 'groups:topicisclosed' => 'This topic is closed.', 'groups:topiccloseddesc' => 'This topic 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.", 'groups:privategroup' => 'This group is private, requesting membership.', 'groups:notitle' => 'Groups must have a title', 'groups:cantjoin' => 'Can not join group', diff --git a/mod/groups/start.php b/mod/groups/start.php index 043951452..da6001d32 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -489,5 +489,6 @@ register_action("groups/edittopic",false,$CONFIG->pluginspath . "groups/actions/forums/edittopic.php"); register_action("groups/deletepost",false,$CONFIG->pluginspath . "groups/actions/forums/deletepost.php"); register_action("groups/featured",false,$CONFIG->pluginspath . "groups/actions/featured.php"); + register_action("groups/editpost",false,$CONFIG->pluginspath . "groups/actions/forums/editpost.php"); ?> \ No newline at end of file diff --git a/mod/groups/views/default/forum/topicposts.php b/mod/groups/views/default/forum/topicposts.php index 60337522c..99b6b0ee8 100644 --- a/mod/groups/views/default/forum/topicposts.php +++ b/mod/groups/views/default/forum/topicposts.php @@ -12,6 +12,7 @@ * @uses $vars['entity'] The posted comment to view */ + ?>
@@ -47,8 +48,8 @@ canEdit()) { + //if the comment owner is looking at it, or admin they can edit + if ($vars['entity']->canEdit() || ($vars['entity']->owner_guid == $_SESSION['user']->guid)) { ?>

elgg_echo('delete'), 'confirm' => elgg_echo('deleteconfirm'), )); - - ?> + + //display an edit link that will open up an edit area + echo " edit"; + echo "

"; + //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', 'value' => $vars['entity']->value)); + $post = elgg_view('input/hidden', array('internalname' => 'post', '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'))); + $commentOwner = elgg_view('input/hidden', array('internalname' => 'commentOwner', 'value' => $vars['entity']->owner_guid)); + $access = elgg_view('input/hidden', array('internalname' => 'access', 'value' => $vars['entity']->access_id)); + + $form_body = << +

+ $text_textarea +

+ $post + $topic + $group + $commentOwner +

+ $submit_input +

+ +
+ +EOT; + +?> + + "{$vars['url']}action/groups/editpost", 'body' => $form_body, 'internalid' => 'editforumpostForm')); + ?> +