mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-25 01:13:25 +01:00
* InfoLog/CalDAV: fixed wrong timezone used for iCal generation
times where read in server-time, but infolog_ical was told it is user-time, now set to server-time in infolog_groupdav::get_handler()
This commit is contained in:
parent
02f43870c1
commit
d88b9a8cea
@ -623,6 +623,7 @@ class infolog_groupdav extends groupdav_handler
|
|||||||
private function _get_handler()
|
private function _get_handler()
|
||||||
{
|
{
|
||||||
$handler = new infolog_ical();
|
$handler = new infolog_ical();
|
||||||
|
$handler->tzid = false; // as we read server-time timestamps (!= null=user-time), exports UTC times
|
||||||
$handler->setSupportedFields('GroupDAV',$this->agent);
|
$handler->setSupportedFields('GroupDAV',$this->agent);
|
||||||
|
|
||||||
return $handler;
|
return $handler;
|
||||||
|
@ -171,7 +171,6 @@ class infolog_ical extends infolog_bo
|
|||||||
$vcal->setAttribute('METHOD',$_method);
|
$vcal->setAttribute('METHOD',$_method);
|
||||||
|
|
||||||
$tzid = $this->tzid;
|
$tzid = $this->tzid;
|
||||||
|
|
||||||
if ($tzid && $tzid != 'UTC')
|
if ($tzid && $tzid != 'UTC')
|
||||||
{
|
{
|
||||||
// check if we have vtimezone component data for tzid of event, if not default to user timezone (default to server tz)
|
// check if we have vtimezone component data for tzid of event, if not default to user timezone (default to server tz)
|
||||||
@ -312,7 +311,7 @@ class infolog_ical extends infolog_bo
|
|||||||
}
|
}
|
||||||
if ($taskData['info_enddate'])
|
if ($taskData['info_enddate'])
|
||||||
{
|
{
|
||||||
self::setDateOrTime($vevent, 'DUE', $taskData['info_enddate'], false); // export always as date
|
self::setDateOrTime($vevent, 'DUE', $taskData['info_enddate'], $tzid);
|
||||||
}
|
}
|
||||||
if ($taskData['info_datecompleted'])
|
if ($taskData['info_datecompleted'])
|
||||||
{
|
{
|
||||||
@ -365,6 +364,7 @@ class infolog_ical extends infolog_bo
|
|||||||
static function setDateOrTime(&$vevent, $attr, $time, $tzid)
|
static function setDateOrTime(&$vevent, $attr, $time, $tzid)
|
||||||
{
|
{
|
||||||
$params = array();
|
$params = array();
|
||||||
|
$time_in = $time;
|
||||||
|
|
||||||
if ($tzid)
|
if ($tzid)
|
||||||
{
|
{
|
||||||
@ -395,7 +395,8 @@ class infolog_ical extends infolog_bo
|
|||||||
$value = array(
|
$value = array(
|
||||||
'year' => $arr['year'],
|
'year' => $arr['year'],
|
||||||
'month' => $arr['month'],
|
'month' => $arr['month'],
|
||||||
'mday' => $arr['day']);
|
'mday' => $arr['day'],
|
||||||
|
);
|
||||||
$params['VALUE'] = 'DATE';
|
$params['VALUE'] = 'DATE';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -414,6 +415,7 @@ class infolog_ical extends infolog_bo
|
|||||||
$value = egw_time::to($time, 'ts');
|
$value = egw_time::to($time, 'ts');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//error_log(__METHOD__."(, '$attr', ".array2string($time_in).', '.array2string($tzid).') tz='.$tz->getName().', value='.array2string($value).(is_int($value)?date('Y-m-d H:i:s',$value):''));
|
||||||
$vevent->setAttribute($attr, $value, $params);
|
$vevent->setAttribute($attr, $value, $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user