Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MDL-18128 - forum - Addition of group editing for forums.

  • Loading branch information...
commit 72682b886895e963a7602deaff9df83e989da711 1 parent acb3bf8
@abgreeve abgreeve authored
Showing with 28 additions and 6 deletions.
  1. +11 −0 mod/forum/post.php
  2. +17 −6 mod/forum/post_form.php
View
11 mod/forum/post.php
@@ -599,6 +599,8 @@
// WARNING: the $fromform->message array has been overwritten, do not use it anymore!
$fromform->messagetrust = trusttext_trusted($modcontext);
+ $contextcheck = isset($fromform->groupinfo) && has_capability('mod/forum:movediscussions', $modcontext);
+
if ($fromform->edit) { // Updating a post
unset($fromform->groupid);
$fromform->id = $fromform->edit;
@@ -621,6 +623,11 @@
print_error('cannotupdatepost', 'forum');
}
+ // If the user has access to all groups and they are changing the group, then update the post.
+ if ($contextcheck) {
+ $DB->set_field('forum_discussions' ,'groupid' , $fromform->groupinfo, array('firstpost' => $fromform->id));
+ }
+
$updatepost = $fromform; //realpost
$updatepost->forum = $forum->id;
if (!forum_update_post($updatepost, $mform_post, $message)) {
@@ -712,6 +719,10 @@
if (!forum_user_can_post_discussion($forum, $fromform->groupid, -1, $cm, $modcontext)) {
print_error('cannotcreatediscussion', 'forum');
}
+ // If the user has access all groups capability let them choose the group.
+ if ($contextcheck) {
+ $fromform->groupid = $fromform->groupinfo;
+ }
if (empty($fromform->groupid)) {
$fromform->groupid = -1;
}
View
23 mod/forum/post_form.php
@@ -112,15 +112,26 @@ function definition() {
}
if (groups_get_activity_groupmode($cm, $course)) { // hack alert
- if (empty($post->groupid)) {
- $groupname = get_string('allparticipants');
+ $groupdata = groups_get_activity_allowed_groups($cm);
+ $groupcount = count($groupdata);
+ $modulecontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+ $contextcheck = has_capability('mod/forum:movediscussions', $modulecontext) && empty($post->parent) && $groupcount > 1;
+ if ($contextcheck) {
+ $groupinfo = array('0' => get_string('allparticipants'));
+ foreach ($groupdata as $grouptemp) {
+ $groupinfo[$grouptemp->id] = $grouptemp->name;
+ }
+ $mform->addElement('select','groupinfo', get_string('group'), $groupinfo);
+ $mform->setDefault('groupinfo', $post->groupid);
} else {
- $group = groups_get_group($post->groupid);
- $groupname = format_string($group->name);
+ if (empty($post->groupid)) {
+ $groupname = get_string('allparticipants');
+ } else {
+ $groupname = format_string($groupdata[$post->groupid]->name);
+ }
+ $mform->addElement('static', 'groupinfo', get_string('group'), $groupname);
}
- $mform->addElement('static', 'groupinfo', get_string('group'), $groupname);
}
-
//-------------------------------------------------------------------------------
// buttons
if (isset($post->edit)) { // hack alert

0 comments on commit 72682b8

Please sign in to comment.
Something went wrong with that request. Please try again.