Пример #1
0
 /**
  * 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;
 }