diff options
Diffstat (limited to 'mod/groups/actions/discussion/reply')
-rw-r--r-- | mod/groups/actions/discussion/reply/delete.php | 26 | ||||
-rw-r--r-- | mod/groups/actions/discussion/reply/save.php | 45 |
2 files changed, 71 insertions, 0 deletions
diff --git a/mod/groups/actions/discussion/reply/delete.php b/mod/groups/actions/discussion/reply/delete.php new file mode 100644 index 000000000..88c6b79d6 --- /dev/null +++ b/mod/groups/actions/discussion/reply/delete.php @@ -0,0 +1,26 @@ +<?php +/** + * Delete discussion reply + */ + +$id = (int) get_input('annotation_id'); + +$reply = elgg_get_annotation_from_id($id); +if (!$reply || $reply->name != 'group_topic_post') { + register_error(elgg_echo('discussion:reply:error:notdeleted')); + forward(REFERER); +} + +if (!$reply->canEdit()) { + register_error(elgg_echo('discussion:error:permissions')); + forward(REFERER); +} + +$result = $reply->delete(); +if ($result) { + system_message(elgg_echo('discussion:reply:deleted')); +} else { + register_error(elgg_echo('discussion:reply:error:notdeleted')); +} + +forward(REFERER); diff --git a/mod/groups/actions/discussion/reply/save.php b/mod/groups/actions/discussion/reply/save.php new file mode 100644 index 000000000..e535856da --- /dev/null +++ b/mod/groups/actions/discussion/reply/save.php @@ -0,0 +1,45 @@ +<?php +/** + * Post a reply to discussion topic + * + */ + +gatekeeper(); + +// Get input +$entity_guid = (int) get_input('entity_guid'); +$text = get_input('group_topic_post'); + +// reply cannot be empty +if (empty($text)) { + register_error(elgg_echo('grouppost:nopost')); + forward(REFERER); +} + +$topic = get_entity($entity_guid); +if (!$topic) { + register_error(elgg_echo('grouppost:nopost')); + forward(REFERER); +} + +$user = get_loggedin_user(); + +$group = $topic->getContainerEntity(); +if (!$group->isMember($user)) { + register_error(elgg_echo('groups:notmember')); + forward(REFERER); +} + + +// add the reply to the forum topic +$reply_id = $topic->annotate('group_topic_post', $text, $topic->access_id, $user->guid); +if ($reply_id == false) { + system_message(elgg_echo('groupspost:failure')); + forward(REFERER); +} + +add_to_river('river/annotation/group_topic_post/reply', 'reply', $user->guid, $topic->guid, "", 0, $reply_id); + +system_message(elgg_echo('groupspost:success')); + +forward(REFERER); |