/** * Create a CalendarWeekView (a schedule) for an institute * for the current user and return it. * * @param string $institute_id the institute to get the calendar for * @param bool $show_hidden show hidden entries * @param mixed $semester the semester to use * @param mixed $days the days to consider * * @return CalendarWeekView */ static function getInstCalendarView($institute_id, $show_hidden = false, $semester = false, $days = false) { $schedule_settings = self::getScheduleSettings(); if (!$semester) { $semester = self::getCurrentSemester(); } if (!$days) { $days = $schedule_settings['glb_days']; foreach ($days as $key => $day_number) { $days[$key] = ($day_number + 6) % 7; } } $user_id = $GLOBALS['user']->id; $entries = CalendarScheduleModel::getInstituteEntries($user_id, $semester, $schedule_settings['glb_start_time'], $schedule_settings['glb_end_time'], $institute_id, $days, $show_hidden); $view = new CalendarWeekView($entries, 'schedule'); $view->setHeight(40 + 20 * $schedule_settings['zoom']); $view->setRange($schedule_settings['glb_start_time'], $schedule_settings['glb_end_time']); // group entries in institute calendar $view->groupEntries(); // if enabled, group entries with same start- and end-date return $view; }