コード例 #1
0
 /**
  * A function to generate event block in month calendar
  * @param object $event event to format
  * @param string $color event color
  * @return icalendar list of user events
  */
 public static function icalendar()
 {
     $ical = "BEGIN:VCALENDAR" . PHP_EOL;
     $ical .= "VERSION:2.0" . PHP_EOL;
     $show_personal_bak = Calendar_Events::$calsettings->show_personal;
     $show_course_bak = Calendar_Events::$calsettings->show_course;
     $show_deadline_bak = Calendar_Events::$calsettings->show_deadline;
     $show_admin_bak = Calendar_Events::$calsettings->show_admin;
     Calendar_Events::set_calendar_settings(1, 1, 1, 1);
     Calendar_Events::get_calendar_settings();
     $eventlist = Calendar_Events::get_calendar_events();
     Calendar_Events::set_calendar_settings($show_personal_bak, $show_course_bak, $show_deadline_bak, $show_admin_bak);
     Calendar_Events::get_calendar_settings();
     $events = array();
     foreach ($eventlist as $event) {
         $ical .= "BEGIN:VEVENT" . PHP_EOL;
         $startdatetime = new DateTime($event->start);
         $ical .= "DTSTART:" . $startdatetime->format("Ymd\\THis") . PHP_EOL;
         $duration = new DateTime($event->duration);
         $ical .= "DURATION:" . $duration->format("\\P\\TH\\Hi\\Ms\\S") . PHP_EOL;
         $ical .= "SUMMARY:[" . strtoupper($event->event_group) . "] " . $event->title . PHP_EOL;
         $ical .= "DESCRIPTION:" . canonicalize_whitespace(strip_tags($event->content)) . PHP_EOL;
         if ($event->event_group == 'deadline') {
             $ical .= "BEGIN:VALARM" . PHP_EOL;
             $ical .= "TRIGGER:-PT24H" . PHP_EOL;
             $ical .= "DURATION:PT10H" . PHP_EOL;
             $ical .= "ACTION:DISPLAY" . PHP_EOL;
             $ical .= "DESCRIPTION:DEADLINE REMINDER for " . canonicalize_whitespace(strip_tags($event->title)) . PHP_EOL;
             $ical .= "END:VALARM" . PHP_EOL;
         }
         $ical .= "END:VEVENT" . PHP_EOL;
     }
     $ical .= "END:VCALENDAR" . PHP_EOL;
     return $ical;
 }