diff --git a/mod/forum/lib.php b/mod/forum/lib.php index ccef8dcba77c5..8994e713475c1 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -214,6 +214,14 @@ function forum_update_instance($forum, $mform) { $DB->update_record('forum', $forum); + $modcontext = get_context_instance(CONTEXT_MODULE, $forum->coursemodule); + if (($forum->forcesubscribe == FORUM_INITIALSUBSCRIBE) && ($oldforum->forcesubscribe <> $forum->forcesubscribe)) { + $users = forum_get_potential_subscribers($modcontext, 0, 'u.id, u.email', ''); + foreach ($users as $user) { + forum_subscribe($user->id, $forum->id); + } + } + forum_grade_item_update($forum); return true; diff --git a/mod/forum/subscribe.php b/mod/forum/subscribe.php index a7ea07bcf95cc..c10d099469306 100644 --- a/mod/forum/subscribe.php +++ b/mod/forum/subscribe.php @@ -111,6 +111,12 @@ redirect($returnto, get_string("everyoneisnowsubscribed", "forum"), 1); break; case FORUM_INITIALSUBSCRIBE : // 2 + if ($forum->forcesubscribe <> FORUM_INITIALSUBSCRIBE) { + $users = forum_get_potential_subscribers($context, 0, 'u.id, u.email', ''); + foreach ($users as $user) { + forum_subscribe($user->id, $forum->id); + } + } forum_forcesubscribe($forum->id, FORUM_INITIALSUBSCRIBE); redirect($returnto, get_string("everyoneisnowsubscribed", "forum"), 1); break;