diff options
author | Klaus Weidenbach <Klaus.Weidenbach@gmx.net> | 2016-10-17 23:26:48 +0200 |
---|---|---|
committer | Klaus Weidenbach <Klaus.Weidenbach@gmx.net> | 2016-10-18 18:11:41 +0200 |
commit | 745515b11f438d3658203aaaaf151c72e30d5e7c (patch) | |
tree | ed43b874f5519cf06a05a703e144fd6acad06d4b /vendor/sabre/vobject/lib/Recur | |
parent | 17091bd38c4e4e5d8b1812dd1d9efeffe0046d02 (diff) | |
download | volse-hubzilla-745515b11f438d3658203aaaaf151c72e30d5e7c.tar.gz volse-hubzilla-745515b11f438d3658203aaaaf151c72e30d5e7c.tar.bz2 volse-hubzilla-745515b11f438d3658203aaaaf151c72e30d5e7c.zip |
[FEATURE] Add config and use composer autoloader.
We use composer already to install SabreDAV. Include config
composer.(json|lock) to install and manage more dependencies
in future.
Also provide PSR-4 autoloading for our namespaced classes, e.g.
"Zotlabs\". To regenerate autoloader maps use:
$ composer install --optimize-autoloader --no-dev
We could also remove the whole vendor/ folder from our repository, but
that would need changes in deployment and how to install hubs and needs
more discussion first.
Diffstat (limited to 'vendor/sabre/vobject/lib/Recur')
-rw-r--r-- | vendor/sabre/vobject/lib/Recur/EventIterator.php | 12 | ||||
-rw-r--r-- | vendor/sabre/vobject/lib/Recur/RRuleIterator.php | 5 |
2 files changed, 13 insertions, 4 deletions
diff --git a/vendor/sabre/vobject/lib/Recur/EventIterator.php b/vendor/sabre/vobject/lib/Recur/EventIterator.php index 86c996aec..f91c336bc 100644 --- a/vendor/sabre/vobject/lib/Recur/EventIterator.php +++ b/vendor/sabre/vobject/lib/Recur/EventIterator.php @@ -325,7 +325,7 @@ class EventIterator implements \Iterator { $index = []; foreach ($this->overriddenEvents as $key => $event) { $stamp = $event->DTSTART->getDateTime($this->timeZone)->getTimeStamp(); - $index[$stamp] = $key; + $index[$stamp][] = $key; } krsort($index); $this->counter = 0; @@ -372,8 +372,9 @@ class EventIterator implements \Iterator { // overridden event may cut ahead. if ($this->overriddenEventsIndex) { - $offset = end($this->overriddenEventsIndex); + $offsets = end($this->overriddenEventsIndex); $timestamp = key($this->overriddenEventsIndex); + $offset = end($offsets); if (!$nextDate || $timestamp < $nextDate->getTimeStamp()) { // Overridden event comes first. $this->currentOverriddenEvent = $this->overriddenEvents[$offset]; @@ -383,7 +384,10 @@ class EventIterator implements \Iterator { $this->currentDate = $this->currentOverriddenEvent->DTSTART->getDateTime($this->timeZone); // Ensuring that this item will only be used once. - array_pop($this->overriddenEventsIndex); + array_pop($this->overriddenEventsIndex[$timestamp]); + if (!$this->overriddenEventsIndex[$timestamp]) { + array_pop($this->overriddenEventsIndex); + } // Exit point! return; @@ -451,7 +455,7 @@ class EventIterator implements \Iterator { /** * Overridden event index. * - * Key is timestamp, value is the index of the item in the $overriddenEvent + * Key is timestamp, value is the list of indexes of the item in the $overriddenEvent * property. * * @var array diff --git a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php index 402e2de83..4c89f3ce4 100644 --- a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php +++ b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php @@ -718,6 +718,11 @@ class RRuleIterator implements Iterator { case 'BYMONTH' : $this->byMonth = (array)$value; + foreach ($this->byMonth as $byMonth) { + if (!is_numeric($byMonth) || (int)$byMonth < 1 || (int)$byMonth > 12) { + throw new InvalidDataException('BYMONTH in RRULE must have value(s) betweeen 1 and 12!'); + } + } break; case 'BYSETPOS' : |