This commit is contained in:
Aleksander Machniak 2016-04-07 10:46:24 +02:00
parent 156959ddd8
commit 27b1fd0e8c

View file

@ -9,7 +9,7 @@
* @version @package_version@
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* Copyright (C) 2012, Kolab Systems AG <contact@kolabsys.com>
* Copyright (C) 2012-2016, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@ -36,7 +36,7 @@ class kolab_date_recurrence
/**
* Default constructor
*
* @param array The Kolab object to operate on
* @param kolab_format_xcal The Kolab object to operate on
*/
function __construct($object)
{
@ -47,8 +47,9 @@ class kolab_date_recurrence
$this->start = $this->next = $data['start'];
$this->cnext = kolab_format::get_datetime($this->next);
if (is_object($data['start']) && is_object($data['end']))
if (is_object($data['start']) && is_object($data['end'])) {
$this->duration = $data['start']->diff($data['end']);
}
else {
// Prevent from errors when end date is not set (#5307) RFC5545 3.6.1
$seconds = !empty($data['end']) ? ($data['end'] - $data['start']) : 0;
@ -70,6 +71,7 @@ class kolab_date_recurrence
if (($cnext = new cDateTime($this->engine->getNextOccurence($this->cnext))) && $cnext->isValid()) {
$next = kolab_format::php_datetime($cnext);
$time = $timestamp ? $next->format('U') : $next;
$this->cnext = $cnext;
$this->next = $next;
}
@ -120,7 +122,9 @@ class kolab_date_recurrence
}
// let libkolab do the work
if ($this->engine && ($cend = $this->engine->getLastOccurrence()) && ($end_dt = kolab_format::php_datetime(new cDateTime($cend)))) {
if ($this->engine && ($cend = $this->engine->getLastOccurrence())
&& ($end_dt = kolab_format::php_datetime(new cDateTime($cend)))
) {
return $end_dt;
}
@ -134,6 +138,7 @@ class kolab_date_recurrence
$end_dt = clone $event['end'];
$end_dt->add(new DateInterval($intvl));
return $end_dt;
}