mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-05-01 16:11:20 +00:00
Tweaking the date expansion functions. Need to test this soon.
This commit is contained in:
parent
9460803f71
commit
3cefbf9894
@ -77,7 +77,7 @@ if ( class_exists('RepeatRule') ) {
|
|||||||
*
|
*
|
||||||
* @return array An array keyed on the UTC dates, referring to the component
|
* @return array An array keyed on the UTC dates, referring to the component
|
||||||
*/
|
*/
|
||||||
function rdate_expand( $property, $component, $range_end ) {
|
function rdate_expand( $property, $component, $range_end = null ) {
|
||||||
$timezone = $comp->GetPParamValue($property, 'TZID');
|
$timezone = $comp->GetPParamValue($property, 'TZID');
|
||||||
$rdate = $comp->GetPValue($property);
|
$rdate = $comp->GetPValue($property);
|
||||||
$rdates = explode( ',', $rdate );
|
$rdates = explode( ',', $rdate );
|
||||||
@ -85,6 +85,7 @@ if ( class_exists('RepeatRule') ) {
|
|||||||
foreach( $rdates AS $k => $v ) {
|
foreach( $rdates AS $k => $v ) {
|
||||||
$rdate = new RepeatRuleDateTime( $v, $timezone);
|
$rdate = new RepeatRuleDateTime( $v, $timezone);
|
||||||
$expansion[$rdate->UTC()] = $component;
|
$expansion[$rdate->UTC()] = $component;
|
||||||
|
if ( $rdate > $range_end ) break;
|
||||||
}
|
}
|
||||||
return $expansion;
|
return $expansion;
|
||||||
}
|
}
|
||||||
@ -120,7 +121,7 @@ if ( class_exists('RepeatRule') ) {
|
|||||||
$result_limit = 1000;
|
$result_limit = 1000;
|
||||||
while( $date = $rule->next() ) {
|
while( $date = $rule->next() ) {
|
||||||
$expansion[$date->UTC()] = $component;
|
$expansion[$date->UTC()] = $component;
|
||||||
if ( $i >= $result_limit ) break;
|
if ( $i >= $result_limit || $date > $range_end ) break;
|
||||||
}
|
}
|
||||||
return $expansion;
|
return $expansion;
|
||||||
}
|
}
|
||||||
@ -171,9 +172,9 @@ if ( class_exists('RepeatRule') ) {
|
|||||||
}
|
}
|
||||||
$instances[] = $comp;
|
$instances[] = $comp;
|
||||||
}
|
}
|
||||||
$instances = array_merge( $instances, rrule_expand($dtstart, 'RRULE', $comp) );
|
$instances = array_merge( $instances, rrule_expand($dtstart, 'RRULE', $comp, $range_end) );
|
||||||
$instances = array_merge( $instances, rdate_expand($dtstart, 'RDATE', $comp) );
|
$instances = array_merge( $instances, rdate_expand($dtstart, 'RDATE', $comp, $range_end) );
|
||||||
foreach ( rdate_expand($dtstart, 'EXDATE', $comp) AS $k => $v ) {
|
foreach ( rdate_expand($dtstart, 'EXDATE', $comp, $range_end) AS $k => $v ) {
|
||||||
unset($instances[$k]);
|
unset($instances[$k]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user