steffen: server/kolab-resource-handlers/kolab-resource-handlers/freebusy freebusy.class.php, 1.12, 1.13
cvs at intevation.de
cvs at intevation.de
Wed Oct 27 16:51:21 CEST 2004
Author: steffen
Update of /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/freebusy
In directory doto:/tmp/cvs-serv25872/kolab-resource-handlers/freebusy
Modified Files:
freebusy.class.php
Log Message:
more recurrence improvements
Index: freebusy.class.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/freebusy/freebusy.class.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- freebusy.class.php 27 Oct 2004 14:32:02 -0000 1.12
+++ freebusy.class.php 27 Oct 2004 14:51:18 -0000 1.13
@@ -176,12 +176,13 @@
}
}
case 'monthly':
- // TODO
+ // Weekly recurrence, every 'interval' weeks
$interval = (int)$rec['interval'];
if( !$interval ) $interval = 1;
$count = 0;
for( $t = $initial_start; $t < $endstamp; $t = strtotime( "+$interval months", $t) ) {
if( $rec['type'] == 'daynumber') {
+ // On numbered days
foreach( $rec['daynumber'] as $dayno ) {
$tmp = strtotime( "+$dayno days", $t);
if( $tmp < $endstamp ) {
@@ -193,6 +194,7 @@
}
$count++;
} else if( $rec['type'] == 'weekday' ) {
+ // On named weekdays
for( $i = 0; $i < count($rec['daynumber']); $i++ ) {
$dayno = $rec['daynumber'][$i];
$wday = $rec['day'][$i];
@@ -213,7 +215,54 @@
}
}
case 'yearly':
- // TODO
+ $interval = (int)$rec['interval'];
+ if( !$interval ) $interval = 1;
+ $count = 0;
+ for( $t = $initial_start; $t < $endstamp; $t = strtotime( "+$interval years", $t) ) {
+ if( $rec['type'] == 'yearday') {
+ foreach( $rec['daynumber'] as $dayno ) {
+ $tmp = strtotime( "+$dayno days", $t);
+ if( $tmp < $endstamp ) {
+ myLog("Adding recurrence $tmp -> ".($tmp+$duration), RM_LOG_DEBUG );
+ $vFb->addBusyPeriod('BUSY', $tmp, null, $duration, $extra);
+ } else {
+ break;
+ }
+ }
+ $count++;
+ } else if( $rec['type'] == 'monthday' ) {
+ for( $i = 0; $i < count($rec['daynumber']); $i++ ) {
+ $dayno = $rec['daynumber'][$i];
+ $month = $rec['month'][$i];
+ $tmp = strtotime( "+$dayno $month", $t);
+ if( $tmp < $endstamp ) {
+ myLog("Adding recurrence $tmp -> ".($tmp+$duration), RM_LOG_DEBUG );
+ $vFb->addBusyPeriod('BUSY', $tmp, null, $duration, $extra);
+ } else {
+ break;
+ }
+ }
+ $count++;
+ } else if( $rec['type'] == 'weekday' ) {
+ for( $i = 0; $i < count($rec['daynumber']); $i++ ) {
+ $dayno = $rec['daynumber'][$i];
+ $wday = $rec['day'][$i];
+ $tmp = strtotime( "+$dayno $wday", $t);
+ if( $tmp < $endstamp ) {
+ myLog("Adding recurrence $tmp -> ".($tmp+$duration), RM_LOG_DEBUG );
+ $vFb->addBusyPeriod('BUSY', $tmp, null, $duration, $extra);
+ } else {
+ break;
+ }
+ }
+ $count++;
+ }
+ if( $rangetype == 'number' && $count > $range ) {
+ break;
+ } else if( $rangetype == 'date' && $t > strtotime( '+1 day',$range ) ) {
+ break;
+ }
+ }
}
} else {
// Normal event
More information about the commits
mailing list