mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Expanded forum_add_user_default_subscriptions() for more contexts
Added forum_remove_user_subscriptions()
This commit is contained in:
parent
d74067e8e7
commit
8d630fda5a
1 changed files with 81 additions and 0 deletions
|
@ -3530,6 +3530,31 @@ function forum_add_user_default_subscriptions($userid, $context) {
|
|||
|
||||
switch ($context->aggregatelevel) {
|
||||
|
||||
case CONTEXT_SYSTEM: // For the whole site
|
||||
if ($courses = get_record('course')) {
|
||||
foreach ($courses as $course) {
|
||||
$subcontext = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
forum_add_user_default_subscriptions($userid, $subcontext);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CONTEXT_CATEGORY: // For a whole category
|
||||
if ($courses = get_record('course', 'category', $context->instanceid)) {
|
||||
foreach ($courses as $course) {
|
||||
$subcontext = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
forum_add_user_default_subscriptions($userid, $subcontext);
|
||||
}
|
||||
}
|
||||
if ($categories = get_record('course_categories', 'parent', $context->instanceid)) {
|
||||
foreach ($categories as $category) {
|
||||
$subcontext = get_context_instance(CONTEXT_CATEGORY, $category->id);
|
||||
forum_add_user_default_subscriptions($userid, $subcontext);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case CONTEXT_COURSE: // For a whole course
|
||||
if ($course = get_record('course', 'id', $context->instanceid)) {
|
||||
if ($forums = get_all_instances_in_course('forum', $course)) {
|
||||
|
@ -3564,6 +3589,62 @@ function forum_add_user_default_subscriptions($userid, $context) {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
function forum_remove_user_subscriptions($userid, $context) {
|
||||
/// Remove subscriptions for a user in a context
|
||||
|
||||
if (empty($context->aggregatelevel)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch ($context->aggregatelevel) {
|
||||
|
||||
case CONTEXT_SYSTEM: // For the whole site
|
||||
if ($courses = get_record('course')) {
|
||||
foreach ($courses as $course) {
|
||||
$subcontext = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
forum_remove_user_subscriptions($userid, $subcontext);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CONTEXT_CATEGORY: // For a whole category
|
||||
if ($courses = get_record('course', 'category', $context->instanceid)) {
|
||||
foreach ($courses as $course) {
|
||||
$subcontext = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
forum_remove_user_subscriptions($userid, $subcontext);
|
||||
}
|
||||
}
|
||||
if ($categories = get_record('course_categories', 'parent', $context->instanceid)) {
|
||||
foreach ($categories as $category) {
|
||||
$subcontext = get_context_instance(CONTEXT_CATEGORY, $category->id);
|
||||
forum_remove_user_subscriptions($userid, $subcontext);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CONTEXT_COURSE: // For a whole course
|
||||
if ($course = get_record('course', 'id', $context->instanceid)) {
|
||||
if ($forums = get_all_instances_in_course('forum', $course)) {
|
||||
foreach ($forums as $forum) {
|
||||
forum_unsubscribe($userid, $forum->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CONTEXT_MODULE: // Just one forum
|
||||
if ($cm = get_coursemodule_from_id('forum', $context->instanceid)) {
|
||||
if ($forum = get_record('forum', 'id', $cm->instance)) {
|
||||
forum_unsubscribe($userid, $forum->id);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Functions to do with read tracking.
|
||||
|
||||
function forum_tp_add_read_record($userid, $postid, $discussionid=-1, $forumid=-1) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue