MDL-49561 core_calendar: Fix ical export for events with no duration
This commit is contained in:
committed by
Mark Nelson
parent
1dabedeedf
commit
2be327dca9
@@ -189,10 +189,14 @@ foreach($events as $event) {
|
||||
$ev->add_property('class', 'PUBLIC'); // PUBLIC / PRIVATE / CONFIDENTIAL
|
||||
$ev->add_property('last-modified', Bennu::timestamp_to_datetime($event->timemodified));
|
||||
$ev->add_property('dtstamp', Bennu::timestamp_to_datetime()); // now
|
||||
$ev->add_property('dtstart', Bennu::timestamp_to_datetime($event->timestart)); // when event starts
|
||||
if ($event->timeduration > 0) {
|
||||
//dtend is better than duration, because it works in Microsoft Outlook and works better in Korganizer
|
||||
$ev->add_property('dtstart', Bennu::timestamp_to_datetime($event->timestart)); // when event starts.
|
||||
$ev->add_property('dtend', Bennu::timestamp_to_datetime($event->timestart + $event->timeduration));
|
||||
} else {
|
||||
// When no duration is present, ie an all day event, VALUE should be date instead of time and dtend = dtstart + 1 day
|
||||
$ev->add_property('dtstart', Bennu::timestamp_to_date($event->timestart), array('value' => 'DATE')); // All day event.
|
||||
$ev->add_property('dtend', Bennu::timestamp_to_date($event->timestart + 86400), array('value' => 'DATE')); // All day event.
|
||||
}
|
||||
if ($event->courseid != 0) {
|
||||
$coursecontext = context_course::instance($event->courseid);
|
||||
|
||||
@@ -20,6 +20,14 @@ class Bennu {
|
||||
return gmstrftime('%Y%m%dT%H%M%SZ', $t);
|
||||
}
|
||||
|
||||
static function timestamp_to_date($t = NULL) {
|
||||
if($t === NULL) {
|
||||
$t = time();
|
||||
}
|
||||
return strftime('%Y%m%d', $t);
|
||||
}
|
||||
|
||||
|
||||
static function generate_guid() {
|
||||
// Implemented as per the Network Working Group draft on UUIDs and GUIDs
|
||||
|
||||
|
||||
Reference in New Issue
Block a user