From e0de504c338d9128f51774e7aaff6273f88517d3 Mon Sep 17 00:00:00 2001 From: jmontoyaa Date: Mon, 28 Aug 2017 13:52:34 +0200 Subject: [PATCH] Hide base course announcements when entering a group see BT#13044 Setting added: $_configuration['hide_base_course_announcements_in_group'] = false; --- main/inc/lib/AnnouncementManager.php | 20 +++++++++++++++++--- main/install/configuration.dist.php | 3 +++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/main/inc/lib/AnnouncementManager.php b/main/inc/lib/AnnouncementManager.php index d8d4553281..a591bc7652 100755 --- a/main/inc/lib/AnnouncementManager.php +++ b/main/inc/lib/AnnouncementManager.php @@ -1411,6 +1411,12 @@ class AnnouncementManager $searchCondition .= " AND (ip.insert_user_id = $userIdToSearch)"; } + $allowOnlyGroup = api_get_configuration_value('hide_base_course_announcements_in_group'); + $extraGroupCondition = ''; + if ($allowOnlyGroup) { + $extraGroupCondition = " AND ip.to_group_id = $group_id "; + } + if (api_is_allowed_to_edit(false, true) || ($allowUserEditSetting && !api_is_anonymous()) ) { @@ -1467,13 +1473,14 @@ class AnnouncementManager (ip.to_group_id = $group_id OR ip.to_group_id='0' OR ip.to_group_id IS NULL) $condition_session $searchCondition + $extraGroupCondition ORDER BY display_order DESC"; //GROUP BY ip.ref } else { // A.3 you are a course admin without any group or user filter // A.3.a you are a course admin without user or group filter but WITH studentview // => see all the messages of all the users and groups without editing possibilities - if (isset($isStudentView) && $isStudentView == "true") { + if (isset($isStudentView) && $isStudentView == 'true') { $sql = "SELECT $select FROM $tbl_announcement announcement INNER JOIN $tbl_item_property ip @@ -1521,6 +1528,7 @@ class AnnouncementManager $cond_user_id = " AND ( ip.lastedit_user_id = '".$user_id."' OR ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".$group_id.") )"; + $cond_user_id .= $extraGroupCondition; } } else { if ($group_id == 0) { @@ -1528,9 +1536,10 @@ class AnnouncementManager (ip.to_user_id='$user_id' OR ip.to_user_id IS NULL) AND (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) "; } else { - $cond_user_id = " AND ( + $cond_user_id = " AND ( (ip.to_user_id='$user_id' OR ip.to_user_id IS NULL) AND (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".$group_id.")) )"; + $cond_user_id .= $extraGroupCondition; } } @@ -1648,7 +1657,12 @@ class AnnouncementManager } $groupReference = ($myrow['to_group_id'] > 0) ? ' '.get_lang('Group').' ' : ''; $title = $myrow['title'].$groupReference.$sent_to_icon; - $item_visibility = api_get_item_visibility($_course, TOOL_ANNOUNCEMENT, $myrow['id'], $session_id); + $item_visibility = api_get_item_visibility( + $_course, + TOOL_ANNOUNCEMENT, + $myrow['id'], + $session_id + ); $myrow['visibility'] = $item_visibility; // show attachment list diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php index 1d043b6820..3e4a80427f 100755 --- a/main/install/configuration.dist.php +++ b/main/install/configuration.dist.php @@ -613,3 +613,6 @@ $_configuration['gradebook_badge_sidebar'] = [ // When using the my-courses list filter by category, set this option to true // to only show courses in the user's configured language // $_configuration['my_courses_show_courses_in_user_language_only'] = false; + +// Hide base course announcements when entering a group. +//$_configuration['hide_base_course_announcements_in_group'] = false;