diff --git a/blocks/calendar_month/block_calendar_month.php b/blocks/calendar_month/block_calendar_month.php index 9fa7ecb..f1de52d 100644 --- a/blocks/calendar_month/block_calendar_month.php +++ b/blocks/calendar_month/block_calendar_month.php @@ -36,7 +36,8 @@ class block_calendar_month extends block_base { // the list of courses it will be grabbing events from. $filtercourse = NULL; $groupeventsfrom = NULL; - $SESSION->cal_courses_shown = calendar_get_default_courses(true); + $SESSION->cal_courses_shown = 0; //calendar_get_default_courses(true); + $coursesshown = calendar_get_default_courses(true); calendar_set_referring_course(0); } else { @@ -49,9 +50,9 @@ class block_calendar_month extends block_base { calendar_set_referring_course($courseshown); // MDL-9059, set to show this course when admins go into a course, then unset it. - if ($this->page->course->id != SITEID && !isset($SESSION->cal_courses_shown[$this->page->course->id]) && has_capability('moodle/calendar:manageentries', get_context_instance(CONTEXT_SYSTEM))) { + if ($this->page->course->id != SITEID && !isset($coursesshown[$this->page->course->id]) && has_capability('moodle/calendar:manageentries', get_context_instance(CONTEXT_SYSTEM))) { $courseset = true; - $SESSION->cal_courses_shown[$this->page->course->id] = $this->page->course; + $coursesshown[$this->page->course->id] = $this->page->course; } // Be VERY careful with the format for default courses arguments! @@ -73,9 +74,9 @@ class block_calendar_month extends block_base { } // MDL-9059, unset this so that it doesn't stay in session - if (!empty($courseset)) { - unset($SESSION->cal_courses_shown[$this->page->course->id]); - } + //if (!empty($courseset)) { + // unset($SESSION->cal_courses_shown[$this->page->course->id]); + //} return $this->content; } diff --git a/blocks/calendar_upcoming/block_calendar_upcoming.php b/blocks/calendar_upcoming/block_calendar_upcoming.php index 21d63b4..ff289e0 100644 --- a/blocks/calendar_upcoming/block_calendar_upcoming.php +++ b/blocks/calendar_upcoming/block_calendar_upcoming.php @@ -42,7 +42,7 @@ class block_calendar_upcoming extends block_base { // the list of courses it will be grabbing events from. $filtercourse = NULL; $groupeventsfrom = NULL; - $SESSION->cal_courses_shown = calendar_get_default_courses(true); + $SESSION->cal_courses_shown = 0; //calendar_get_default_courses(true); calendar_set_referring_course(0); } else { // Forcibly filter events to include only those from the particular course we are in. diff --git a/calendar/event.php b/calendar/event.php index f2fa293..430d875 100644 --- a/calendar/event.php +++ b/calendar/event.php @@ -104,7 +104,7 @@ $courseexists = false; if ($courseid > 0) { if ($courseid == SITEID) { // If coming from the site page, show all courses - $SESSION->cal_courses_shown = calendar_get_default_courses(true); + $SESSION->cal_courses_shown = 0; //calendar_get_default_courses(true); calendar_set_referring_course(0); } else if ($DB->record_exists('course', array('id'=>$courseid))) { $courseexists = true; diff --git a/calendar/lib.php b/calendar/lib.php index 4917100..88f360c 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -1227,9 +1227,9 @@ function calendar_session_vars($course=null) { $course = clone $course; unset($course->coursenode); } - $SESSION->cal_courses_shown = array($course->id => $course); + $SESSION->cal_courses_shown = $course->id; } else { - $SESSION->cal_courses_shown = calendar_get_default_courses(true); + $SESSION->cal_courses_shown = 0; //calendar_get_default_courses(true); } if(empty($SESSION->cal_users_shown)) { // The empty() instead of !isset() here makes a whole world of difference, @@ -1253,11 +1253,11 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU // Insidious bug-wannabe: setting $SESSION->cal_courses_shown to $course->id would cause // the code to function incorrectly UNLESS we convert it to an integer. One case where // PHP's loose type system works against us. - if(is_string($SESSION->cal_courses_shown)) { + if(is_string($SESSION->cal_courses_shown) && $SESSION->cal_courses_shown > 0) { $SESSION->cal_courses_shown = intval($SESSION->cal_courses_shown); } if($courseeventsfrom === NULL) { - $courseeventsfrom = $SESSION->cal_courses_shown; + $courseeventsfrom = ($SESSION->cal_courses_shown === 0 ? calendar_get_default_courses(true) : $SESSION->cal_courses_shown); } // MDL-9059, $courseeventsfrom can be an int, or an array of ints, or an array of course objects @@ -1276,7 +1276,7 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU } if($groupeventsfrom === NULL) { - $groupeventsfrom = $SESSION->cal_courses_shown; + $groupeventsfrom = ($SESSION->cal_courses_shown === 0 ? calendar_get_default_courses(true) : $SESSION->cal_courses_shown); } if(($SESSION->cal_show_course && $SESSION->cal_show_global) || $ignorefilters) { @@ -1369,7 +1369,7 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU $groupids[] = $courseid; } } - else if(isset($SESSION->cal_courses_shown[$courseid]) && ($SESSION->cal_courses_shown[$courseid]->groupmode != NOGROUPS || !$SESSION->cal_courses_shown[$courseid]->groupmodeforce)) { + else if(isset($courseeventsfrom[$courseid]) && ($courseeventsfrom[$courseid]->groupmode != NOGROUPS || !$courseeventsfrom[$courseid]->groupmodeforce)) { $groupids[] = $courseid; } } diff --git a/calendar/renderer.php b/calendar/renderer.php index 1c906d6..513685e 100644 --- a/calendar/renderer.php +++ b/calendar/renderer.php @@ -650,7 +650,7 @@ class core_calendar_renderer extends plugin_renderer_base { $courseoptions[$course->id] = format_string($course->shortname); } - if (is_numeric($SESSION->cal_courses_shown)) { + if (is_numeric($SESSION->cal_courses_shown) && $SESSION->cal_courses_shown > 0) { $selected = $SESSION->cal_courses_shown; } else { $selected = ''; @@ -663,4 +663,4 @@ class core_calendar_renderer extends plugin_renderer_base { } return $this->output->render($select); } -} \ No newline at end of file +} diff --git a/calendar/set.php b/calendar/set.php index 039139e..8728dbc 100644 --- a/calendar/set.php +++ b/calendar/set.php @@ -93,7 +93,7 @@ switch($var) { calendar_set_referring_course(0); } else if($id == 1) { - $SESSION->cal_courses_shown = calendar_get_default_courses(true); + $SESSION->cal_courses_shown = 0; //calendar_get_default_courses(true); calendar_set_referring_course(0); } else { @@ -144,4 +144,4 @@ switch($from) { break; default: -} \ No newline at end of file +} diff --git a/calendar/view.php b/calendar/view.php index a1a06be..6201153 100644 --- a/calendar/view.php +++ b/calendar/view.php @@ -122,7 +122,7 @@ if (!empty($courseid)) { if ($course = $DB->get_record('course', array('id'=>$courseid))) { if ($course->id == SITEID) { // If coming from the home page, show all courses - $SESSION->cal_courses_shown = calendar_get_default_courses(true); + $SESSION->cal_courses_shown = 0; //calendar_get_default_courses(true); calendar_set_referring_course(0); } else {