Browse Source

Subscribe user to a forum when subscribing session users see BT#15932

Option "subscribe_users_to_forum_notifications"
Julio Montoya 5 years ago
parent
commit
dcacabc2b0
1 changed files with 15 additions and 2 deletions
  1. 15 2
      main/inc/lib/sessionmanager.lib.php

+ 15 - 2
main/inc/lib/sessionmanager.lib.php

@@ -455,7 +455,7 @@ class SessionManager
         return $num;
     }
 
-     /**
+    /**
      * Get session list for a session admin or platform admin.
      *
      * @param int   $userId   User Id for the session admin.
@@ -1035,7 +1035,6 @@ class SessionManager
         return $formattedSessions;
     }
 
-
     /**
      * Gets the progress of learning paths in the given session.
      *
@@ -2600,6 +2599,12 @@ class SessionManager
         $course_code = Database::escape_string($course_code);
         $courseInfo = api_get_course_info($course_code);
         $courseId = $courseInfo['real_id'];
+        $subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications', $course_code);
+        $forums = [];
+        if ($subscribe === 1) {
+            require_once api_get_path(SYS_CODE_PATH).'forum/forumfunction.inc.php';
+            $forums = get_forums(0, $course_code, true, $session_id);
+        }
 
         if ($removeUsersNotInList) {
             $currentUsers = self::getUsersByCourseSession($session_id, $courseInfo, 0);
@@ -2648,6 +2653,14 @@ class SessionManager
                 }
             }
 
+            if (!empty($forums)) {
+                $userInfo = api_get_user_info($enreg_user);
+                foreach ($forums as $forum) {
+                    $forumId = $forum['iid'];
+                    set_notification('forum', $forumId, false, $userInfo, $courseInfo);
+                }
+            }
+
             // Checking if user exists in session - user table.
             $sql = "SELECT count(user_id) as count
                     FROM $tbl_session_rel_user