mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-21 23:43:17 +01:00
"exporting whole day events with dates instead of times for DT{START|END}, as other clients fail to recognice them as such otherwise"
This commit is contained in:
parent
906bf5f450
commit
4a6dbe37fd
@ -240,9 +240,22 @@ class calendar_ical extends calendar_boupdate
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'DTEND':
|
case 'DTEND':
|
||||||
if(date('H:i:s',$event['end']) == '23:59:59') $event['end']++;
|
// write start + end of whole day events as dates
|
||||||
if(date('H:i:s',$event['end']) == '23:59:00') $event['end']+=60; // needed by old eGW whole-day events
|
if (date('H:i:s',$event['start']) == '00:00:00' && in_array(date('H:i:s',$event['end']),array('23:59:59','23:59:00')))
|
||||||
$attributes[$icalFieldName] = $event['end'];
|
{
|
||||||
|
$event['end'] += 12*3600; // we need the date of the next day, as DTEND is non-inclusive (= exclusive) in rfc2445
|
||||||
|
foreach(array('start' => 'DTSTART','end' => 'DTEND') as $f => $t)
|
||||||
|
{
|
||||||
|
$arr = calendar_bo::date2array($event[$f]);
|
||||||
|
$vevent->setAttribute($t, array('year' => $arr['year'],'month' => $arr['month'],'mday' => $arr['day']),
|
||||||
|
array('VALUE' => 'DATE'));
|
||||||
|
}
|
||||||
|
unset($attributes['DTSTART']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$attributes['DTEND'] = $event['end'];
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'RRULE':
|
case 'RRULE':
|
||||||
@ -431,10 +444,9 @@ class calendar_ical extends calendar_boupdate
|
|||||||
}
|
}
|
||||||
|
|
||||||
$attributes['UID'] = $force_own_uid ? $eventGUID : $event['uid'];
|
$attributes['UID'] = $force_own_uid ? $eventGUID : $event['uid'];
|
||||||
|
|
||||||
foreach($attributes as $key => $value)
|
foreach($attributes as $key => $value)
|
||||||
{
|
{
|
||||||
foreach(is_array($value) ? $value : array($value) as $valueID => $valueData)
|
foreach(is_array($value)&&$parameters[$key]['VALUE']!='DATE' ? $value : array($value) as $valueID => $valueData)
|
||||||
{
|
{
|
||||||
$valueData = $GLOBALS['egw']->translation->convert($valueData,$GLOBALS['egw']->translation->charset(),'UTF-8');
|
$valueData = $GLOBALS['egw']->translation->convert($valueData,$GLOBALS['egw']->translation->charset(),'UTF-8');
|
||||||
$paramData = (array) $GLOBALS['egw']->translation->convert(is_array($value) ? $parameters[$key][$valueID] : $parameters[$key],
|
$paramData = (array) $GLOBALS['egw']->translation->convert(is_array($value) ? $parameters[$key][$valueID] : $parameters[$key],
|
||||||
|
Loading…
Reference in New Issue
Block a user