]> git.mjollnir.org Git - moodle.git/commitdiff
Replaced forum_get_user() with forum_add_user_default_subscriptions()
authormoodler <moodler>
Sun, 3 Sep 2006 08:01:48 +0000 (08:01 +0000)
committermoodler <moodler>
Sun, 3 Sep 2006 08:01:48 +0000 (08:01 +0000)
mod/forum/lib.php

index 7fa52e17c5cf4d8ca10695fd80f9d3a851c9bba2..3570396c9e9afdc366a5e83bb7bf1a7c1f319942 100644 (file)
@@ -3508,10 +3508,10 @@ function forum_update_subscriptions_button($courseid, $forumid) {
     global $CFG, $USER;
 
     if (!empty($USER->subscriptionsediting)) {
-        $string = get_string("turneditingoff");
+        $string = get_string('turneditingoff');
         $edit = "off";
     } else {
-        $string = get_string("turneditingon");
+        $string = get_string('turneditingon');
         $edit = "on";
     }
     return "<form target=\"$CFG->framename\" method=\"get\" action=\"$CFG->wwwroot/mod/forum/subscribers.php\">".
@@ -3520,19 +3520,47 @@ function forum_update_subscriptions_button($courseid, $forumid) {
            "<input type=\"submit\" value=\"$string\" /></form>";
 }
 
-function forum_add_user($userid, $courseid) {
+function forum_add_user_default_subscriptions($userid, $context) {
 /// Add subscriptions for new users
-    if ($forums = get_records_select('forum', "course = '$courseid' AND forcesubscribe = '".FORUM_INITIALSUBSCRIBE."'")) {
-        foreach ($forums as $forum) {
-            if ($cm = get_coursemodule_from_id('forum', $forum->id)) {   // TODO: get this data in the above query
-                if ($context = get_context_instance(CONTEXT_MODULE, $cm->id)) {
-                    if (has_capability('mod/forum:viewforum', $context)) {
-                        forum_subscribe($userid, $forum->id);
-                    }
-                }
-            }
-        }
+
+    if (empty($context->aggregatelevel)) {
+        return false;
     }
+
+    switch ($context->aggregatelevel) {
+
+        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) {
+                         if ($forum->forcesubscribe != FORUM_INITIALSUBSCRIBE) {
+                             continue;
+                         }
+                         if ($modcontext = get_context_instance(CONTEXT_MODULE, $forum->coursemodule)) {
+                             if (has_capability('mod/forum:viewdiscussion', $modcontext, $userid)) {
+                                 forum_subscribe($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)) { 
+                     if ($forum->forcesubscribe != FORUM_INITIALSUBSCRIBE) {
+                         continue;
+                     }
+                     if (has_capability('mod/forum:viewdiscussion', $context, $userid)) {
+                         forum_subscribe($userid, $forum->id);
+                     }
+                 }
+             }
+             break;
+    }
+
+    return true;
 }
 
 /// Functions to do with read tracking.