From 9ff136e50382069d498f63956ecee04cc2087188 Mon Sep 17 00:00:00 2001 From: defacer Date: Fri, 14 May 2004 12:48:50 +0000 Subject: [PATCH] Behavior change, according to Gustav's remarks on the forums. Events from courses other than the one you are browsing are not displayed in the month views or as upcoming events, except only if you explicitly do it in the full month view. However, if you manually go to a day with such an event and get a day view, you will see the event. Should I find a way to hide that too? --- calendar/lib.php | 8 ++++++-- calendar/view.php | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/calendar/lib.php b/calendar/lib.php index ad313a70ce..39e3a01950 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -1145,8 +1145,12 @@ function calendar_edit_event_allowed($event) { return false; } -function calendar_get_default_courses() { - global $USER, $CFG; +function calendar_get_default_courses($overridereferer = true) { + global $USER, $CFG, $SESSION; + + if(!empty($SESSION->cal_course_referer) && $overridereferer) { + return array($SESSION->cal_course_referer => 1); + } $courses = array(); if(isadmin($USER->id)) { diff --git a/calendar/view.php b/calendar/view.php index 178f7d87ff..db762e7ad5 100644 --- a/calendar/view.php +++ b/calendar/view.php @@ -123,19 +123,22 @@ echo ''; - $defaultcourses = calendar_get_default_courses(); + $conform = ($_GET['view'] == 'month' && $SESSION->cal_show_course === true); + + $defaultcourses = calendar_get_default_courses(!$conform); $courses = array(); calendar_set_filters($courses, $groups, $users, $defaultcourses, $defaultcourses); // Are we left with a bad filter in effect? - if($_GET['view'] != 'month') { - if(is_int($SESSION->cal_show_course)) { - // There is a filter in action that shows events from courses other than the current. - // Reset the filter... this effectively allows course filtering only in the month display. - // This filter resetting is also done in the course sideblock display, in case someone - // sets a filter for course X and then goes to view course Y. - $SESSION->cal_show_course = true; + if($_GET['view'] != 'month' && !empty($SESSION->cal_course_referer)) { + if(is_numeric($SESSION->cal_show_course)) { + if($SESSION->cal_course_referer != $SESSION->cal_show_course) { + $SESSION->cal_show_course = intval($SESSION->cal_course_referer); + } + } + if(is_array($SESSION->cal_show_course) && !in_array($SESSION->cal_course_referer, $SESSION->cal_show_course)) { + $SESSION->cal_show_course = intval($SESSION->cal_course_referer); } } -- 2.39.5