aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/vobject/lib/ITip/Broker.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/vobject/lib/ITip/Broker.php')
-rw-r--r--vendor/sabre/vobject/lib/ITip/Broker.php20
1 files changed, 15 insertions, 5 deletions
diff --git a/vendor/sabre/vobject/lib/ITip/Broker.php b/vendor/sabre/vobject/lib/ITip/Broker.php
index effa74317..b9a30611b 100644
--- a/vendor/sabre/vobject/lib/ITip/Broker.php
+++ b/vendor/sabre/vobject/lib/ITip/Broker.php
@@ -849,6 +849,7 @@ class Broker {
$exdate = [];
foreach ($calendar->VEVENT as $vevent) {
+ $rrule = [];
if (is_null($uid)) {
$uid = $vevent->UID->getValue();
@@ -889,6 +890,18 @@ class Broker {
}
sort($exdate);
}
+ if (isset($vevent->RRULE)) {
+ foreach ($vevent->select('RRULE') as $rr) {
+ foreach ($rr->getParts() as $key => $val) {
+ // ignore default values (https://github.com/sabre-io/vobject/issues/126)
+ if ($key === 'INTERVAL' && $val == 1) {
+ continue;
+ }
+ $rrule[] = "$key=$val";
+ }
+ }
+ sort($rrule);
+ }
if (isset($vevent->STATUS)) {
$status = strtoupper($vevent->STATUS->getValue());
}
@@ -953,19 +966,16 @@ class Broker {
$significantChangeHash .= $prop . ':';
if ($prop === 'EXDATE') {
-
$significantChangeHash .= implode(',', $exdate) . ';';
-
+ } elseif ($prop === 'RRULE') {
+ $significantChangeHash .= implode(',', $rrule) . ';';
} else {
-
foreach ($propertyValues as $val) {
$significantChangeHash .= $val->getValue() . ';';
}
-
}
}
}
-
}
$significantChangeHash = md5($significantChangeHash);