From 7c50db30f95605b8a517f4b560d08168675ad81a Mon Sep 17 00:00:00 2001 From: dwoolhead Date: Wed, 13 Jun 2007 10:00:30 +0000 Subject: [PATCH] MDL-10048 General calendar view enhancements as per spec with regard to event highlighting --- calendar/lib.php | 23 ++++++++++++++--------- calendar/view.php | 35 ++++++++--------------------------- 2 files changed, 22 insertions(+), 36 deletions(-) diff --git a/calendar/lib.php b/calendar/lib.php index f94f3618a5..e5474deb69 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -173,7 +173,7 @@ function calendar_get_mini($courses, $groups, $users, $cal_month = false, $cal_y // We want to have easy access by day, since the display is on a per-day basis. // Arguments passed by reference. //calendar_events_by_day($events, $display->tstart, $eventsbyday, $durationbyday, $typesbyday); - calendar_events_by_day($events, $m, $y, $eventsbyday, $durationbyday, $typesbyday); + calendar_events_by_day($events, $m, $y, $eventsbyday, $durationbyday, $typesbyday, $courses); //Accessibility: added summary and elements. ///global $CALENDARDAYS; appears to be broken. @@ -1032,7 +1032,7 @@ function calendar_sub_month($month, $year) { } } -function calendar_events_by_day($events, $month, $year, &$eventsbyday, &$durationbyday, &$typesbyday) { +function calendar_events_by_day($events, $month, $year, &$eventsbyday, &$durationbyday, &$typesbyday, &$courses) { $eventsbyday = array(); $typesbyday = array(); $durationbyday = array(); @@ -1041,9 +1041,6 @@ function calendar_events_by_day($events, $month, $year, &$eventsbyday, &$duratio return; } - // Define array of course id's - $courseids = array(); - foreach($events as $event) { $startdate = usergetdate($event->timestart); @@ -1075,10 +1072,7 @@ function calendar_events_by_day($events, $month, $year, &$eventsbyday, &$duratio else if($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { $typesbyday[$eventdaystart]['startcourse'] = true; // Set event class for course event - if (!in_array($event->courseid, $courseids)) { - $courseids[] = $event->courseid; - } - $events[$event->id]->class = 'event_course'.array_search($event->courseid, $courseids) % 3; + $events[$event->id]->class = 'event_course'.array_search($event->courseid, $courses) % 3; } else if($event->groupid) { $typesbyday[$eventdaystart]['startgroup'] = true; @@ -1252,6 +1246,17 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU foreach ($courses as $index => $value) { if (empty($value)) unset($courses[$index]); } + + // Sort courses for consistent colour highlighting + // Effectively ignoring SITEID as setting as last course id + $key = array_search(SITEID, $courses); + if ($key !== false) { + unset($courses[$key]); + sort($courses); + $courses[] = SITEID; + } else { + sort($courses); + } } if($SESSION->cal_show_user || $ignorefilters) { diff --git a/calendar/view.php b/calendar/view.php index 01e465a53f..982a1c2178 100644 --- a/calendar/view.php +++ b/calendar/view.php @@ -117,18 +117,6 @@ calendar_set_filters($courses, $groups, $users); } - // Sort courses for consistent colour highlighting - // Effectively ignoring SITEID as setting as last course id - // Consider inside calendar_set_filters() and SITEID always last - $key = array_search(SITEID, $courses); - if ($key !== false) { - unset($courses[$key]); - sort($courses); - $courses[] = SITEID; - } else { - sort($courses); - } - // Let's see if we are supposed to provide a referring course link // but NOT for the "main page" course if ($SESSION->cal_course_referer != SITEID && @@ -274,6 +262,12 @@ function calendar_show_day($d, $m, $y, $courses, $groups, $users) { // First, print details about events that start today foreach ($events as $event) { + + // Set event course class if a course event + if($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { + $event->class = 'event_course'.array_search($event->courseid, $courses) % 3; + } + if ($event->timestart >= $starttime && $event->timestart <= $endtime) { // Print it now @@ -286,11 +280,6 @@ function calendar_show_day($d, $m, $y, $courses, $groups, $users) { */ //unset($event->time); - // Set event course class if a course event - if($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { - $event->class = 'event_course'.array_search($event->courseid, $courses) % 3; - } - $event->time = calendar_format_event_time($event, time(), '', false, $starttime); calendar_print_event($event); @@ -379,7 +368,7 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users) { } // Extract information: events vs. time - calendar_events_by_day($events, $m, $y, $eventsbyday, $durationbyday, $typesbyday); + calendar_events_by_day($events, $m, $y, $eventsbyday, $durationbyday, $typesbyday, $courses); $text = ''; if(!isguest() && !empty($USER->id)) { @@ -544,20 +533,12 @@ function calendar_show_upcoming_events($courses, $groups, $users, $futuredays, $ if ($events) { - // Sort courses for consistent colour highlighting (ignoring SITEID) - $courseids = $courses; - $key = array_search(SITEID, $courseids); - if ($key !== false) { - unset($courseids[$key]); - } - sort($courseids); - echo '
'; foreach ($events as $event) { // Set event course class if a course event if($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { - $event->class = 'event_course'.array_search($event->courseid, $courseids) % 3; + $event->class = 'event_course'.array_search($event->courseid, $courses) % 3; } calendar_print_event($event); -- 2.39.5