Export recurrence UNTIL parameter as DATE for all-day events (#3998)
This commit is contained in:
parent
88692ea3fe
commit
3702557dc3
2 changed files with 10 additions and 5 deletions
|
@ -1501,7 +1501,7 @@ class libcalendaring extends rcube_plugin
|
||||||
/**
|
/**
|
||||||
* Convert the internal structured data into a vcalendar rrule 2.0 string
|
* Convert the internal structured data into a vcalendar rrule 2.0 string
|
||||||
*/
|
*/
|
||||||
public static function to_rrule($recurrence)
|
public static function to_rrule($recurrence, $allday = false)
|
||||||
{
|
{
|
||||||
if (is_string($recurrence))
|
if (is_string($recurrence))
|
||||||
return $recurrence;
|
return $recurrence;
|
||||||
|
@ -1513,9 +1513,14 @@ class libcalendaring extends rcube_plugin
|
||||||
case 'UNTIL':
|
case 'UNTIL':
|
||||||
// convert to UTC according to RFC 5545
|
// convert to UTC according to RFC 5545
|
||||||
if (is_a($val, 'DateTime')) {
|
if (is_a($val, 'DateTime')) {
|
||||||
$until = clone $val;
|
if (!$allday && !$val->_dateonly) {
|
||||||
$until->setTimezone(new DateTimeZone('UTC'));
|
$until = clone $val;
|
||||||
$val = $until->format('Ymd\THis\Z');
|
$until->setTimezone(new DateTimeZone('UTC'));
|
||||||
|
$val = $until->format('Ymd\THis\Z');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$val = $val->format('Ymd');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'RDATE':
|
case 'RDATE':
|
||||||
|
|
|
@ -993,7 +993,7 @@ class libvcalendar implements Iterator
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($event['recurrence']['FREQ']) {
|
if ($event['recurrence']['FREQ']) {
|
||||||
$ve->add('RRULE', libcalendaring::to_rrule($event['recurrence']));
|
$ve->add('RRULE', libcalendaring::to_rrule($event['recurrence'], (bool)$event['allday']));
|
||||||
}
|
}
|
||||||
|
|
||||||
// add EXDATEs each one per line (for Thunderbird Lightning)
|
// add EXDATEs each one per line (for Thunderbird Lightning)
|
||||||
|
|
Loading…
Add table
Reference in a new issue