default to user timezone on export, if event has no or invalid timezone

This commit is contained in:
Ralf Becker 2017-12-18 19:47:27 +07:00
parent a39a466fed
commit 26c67aa33d

View File

@ -309,7 +309,15 @@ class calendar_ical extends calendar_boupdate
if (!isset(self::$tz_cache[$event['tzid']])) if (!isset(self::$tz_cache[$event['tzid']]))
{ {
self::$tz_cache[$event['tzid']] = calendar_timezones::DateTimeZone($event['tzid']); try {
self::$tz_cache[$event['tzid']] = calendar_timezones::DateTimeZone($event['tzid']);
}
catch (Exception $e) {
// log unknown timezones
if (!empty($event['tzid'])) __egw_log_exception($e);
// default for no timezone and unkown to user timezone
self::$tz_cache[$event['tzid']] = Api\DateTime::$user_timezone;
}
} }
if ($this->so->isWholeDay($event)) $event['whole_day'] = true; if ($this->so->isWholeDay($event)) $event['whole_day'] = true;
@ -2488,7 +2496,7 @@ class calendar_ical extends calendar_boupdate
$component->getAllAttributes('DTEND'), $component->getAllAttributes('DTEND'),
$component->getAllAttributes('DURATION')) as $attributes) $component->getAllAttributes('DURATION')) as $attributes)
{ {
error_log(__METHOD__."() attribute=".array2string($attributes)); //error_log(__METHOD__."() attribute=".array2string($attributes));
switch ($attributes['name']) switch ($attributes['name'])
{ {
case 'DTSTART': case 'DTSTART':