Internal: Fix forum notification issue for subscribed users in sessions - refs BT#21550

pull/5419/head
christianbeeznst 1 year ago
parent f07acca2a1
commit 86646ab1bf
  1. 16
      public/main/forum/forumfunction.inc.php

@ -4306,21 +4306,12 @@ function get_notifications(string $content, int $id): array
$field = 'forum_id'; $field = 'forum_id';
} }
$sessionId = api_get_session_id();
$conditionSession = "";
if (!empty($sessionId)) {
$users = SessionManager::getUsersByCourseSession($sessionId, api_get_course_info());
if (!empty($users)) {
$conditionSession = " AND user.id IN(".implode(',', $users).")";
}
}
$sql = "SELECT user.id as user_id, user.firstname, user.lastname, user.email, user.id user $sql = "SELECT user.id as user_id, user.firstname, user.lastname, user.email, user.id user
FROM $table_users user, $table_notification notification FROM $table_users user, $table_notification notification
WHERE WHERE
notification.c_id = $course_id AND user.active = 1 AND notification.c_id = $course_id AND user.active = 1 AND
user.id = notification.user_id AND user.id = notification.user_id AND
notification.$field = $id $conditionSession"; notification.$field = $id ";
$result = Database::query($sql); $result = Database::query($sql);
$return = []; $return = [];
@ -4369,6 +4360,11 @@ function send_notifications(CForum $forum, CForumThread $thread, $post_id = 0)
// Merging the two // Merging the two
$users_to_be_notified = array_merge($users_to_be_notified_by_forum, $users_to_be_notified_by_thread); $users_to_be_notified = array_merge($users_to_be_notified_by_forum, $users_to_be_notified_by_thread);
$subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications');
if (1 === $subscribe) {
$users_to_be_notified = CourseManager::get_user_list_from_course_code(api_get_course_id(), api_get_session_id());
}
if (is_array($users_to_be_notified)) { if (is_array($users_to_be_notified)) {
foreach ($users_to_be_notified as $value) { foreach ($users_to_be_notified as $value) {
$userInfo = api_get_user_info($value['user_id']); $userInfo = api_get_user_info($value['user_id']);

Loading…
Cancel
Save