mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-16 10:21:23 +01:00
Use get_recurrence_exceptions() to calculate the pseudo-exceptions
This commit is contained in:
parent
ed326ddc69
commit
30a6a67337
@ -479,30 +479,7 @@ class calendar_ical extends calendar_boupdate
|
|||||||
// dont use "virtual" exceptions created by participant status for GroupDAV or file export
|
// dont use "virtual" exceptions created by participant status for GroupDAV or file export
|
||||||
if (!in_array($this->productManufacturer,array('file','groupdav')))
|
if (!in_array($this->productManufacturer,array('file','groupdav')))
|
||||||
{
|
{
|
||||||
$participants = $this->so->get_participants($event['id'], 0);
|
$days = $this->so->get_recurrence_exceptions($event);
|
||||||
|
|
||||||
// Check if the stati for all participants are identical for all recurrences
|
|
||||||
foreach ($participants as $uid => $attendee)
|
|
||||||
{
|
|
||||||
switch ($attendee['type'])
|
|
||||||
{
|
|
||||||
case 'u': // account
|
|
||||||
case 'c': // contact
|
|
||||||
case 'e': // email address
|
|
||||||
$recurrences = $this->so->get_recurrences($event['id'], $uid);
|
|
||||||
foreach ($recurrences as $rdate => $recur_status)
|
|
||||||
{
|
|
||||||
if ($rdate && $recur_status != $recurrences[0])
|
|
||||||
{
|
|
||||||
// Every distinct status results in an exception
|
|
||||||
$days[] = $rdate;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default: // We don't handle the rest
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (is_array($event['recur_exception']))
|
if (is_array($event['recur_exception']))
|
||||||
{
|
{
|
||||||
|
@ -1402,11 +1402,13 @@ ORDER BY cal_user_type, cal_usre_id
|
|||||||
* Gets the exception days of a given recurring event caused by
|
* Gets the exception days of a given recurring event caused by
|
||||||
* irregular participant stati
|
* irregular participant stati
|
||||||
*
|
*
|
||||||
* @param array $event Recurring Event.
|
* @param array $event Recurring Event.
|
||||||
|
* @param int servertime=0 == 0 -> export event with UTC timestamps
|
||||||
|
* != 0 -> export with servertime timestamps
|
||||||
*
|
*
|
||||||
* @return array Array of exception days (false for non-recurring events).
|
* @return array Array of exception days (false for non-recurring events).
|
||||||
*/
|
*/
|
||||||
function get_recurrence_exceptions(&$event)
|
function get_recurrence_exceptions(&$event, $servertime=0)
|
||||||
{
|
{
|
||||||
$cal_id = (int) $event['id'];
|
$cal_id = (int) $event['id'];
|
||||||
if (!$cal_id || $event['recur_type'] == MCAL_RECUR_NONE) return false;
|
if (!$cal_id || $event['recur_type'] == MCAL_RECUR_NONE) return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user