From: toyomoyo Date: Fri, 20 Oct 2006 05:09:37 +0000 (+0000) Subject: merged, fixed an infinite loop X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=80dfce19ae86b15bff044cd831a2ee0dbe41c826;p=moodle.git merged, fixed an infinite loop --- diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 1eb4979e90..d73c72f6bb 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -3766,13 +3766,23 @@ function forum_remove_user_subscriptions($userid, $context) { switch ($context->contextlevel) { case CONTEXT_SYSTEM: // For the whole site - if ($courses = get_records('course')) { - foreach ($courses as $course) { - $subcontext = get_context_instance(CONTEXT_COURSE, $course->id); - forum_remove_user_subscriptions($userid, $subcontext); - } - } - break; + if ($courses = get_records('course')) { + foreach ($courses as $course) { + if ($course->id == SITEID) { + if ($course = get_records('course', 'id', $context->instanceid)) { + if ($forums = get_all_instances_in_course('forum', $course)) { + foreach ($forums as $forum) { + forum_unsubscribe($userid, $forum->id); + } + } + } + continue; + } + $subcontext = get_context_instance(CONTEXT_COURSE, $course->id); + forum_remove_user_subscriptions($userid, $subcontext); + } + } + break; case CONTEXT_COURSECAT: // For a whole category if ($courses = get_records('course', 'category', $context->instanceid)) {