steffen: server/kolab-resource-handlers/kolab-resource-handlers/resmgr resmgr.php, 1.39, 1.40

cvs at intevation.de cvs at intevation.de
Wed Oct 27 08:11:35 CEST 2004


Author: steffen

Update of /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr
In directory doto:/tmp/cvs-serv18369/kolab-resource-handlers/resmgr

Modified Files:
	resmgr.php 
Log Message:
more recurrence improvements

Index: resmgr.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/resmgr.php,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- resmgr.php	27 Oct 2004 03:52:12 -0000	1.39
+++ resmgr.php	27 Oct 2004 06:11:33 -0000	1.40
@@ -876,6 +876,14 @@
     // Recurrence
     $rrule_str = $itip->getAttribute('RRULE');
     if( !is_a( $rrule_str, 'PEAR_Error' ) ) {
+      $kolab_days = array( 'MO' => 'monday',
+			   'TU' => 'tuesday',
+			   'WE' => 'wednesday',
+			   'TH' => 'thursday',
+			   'FR' => 'friday',
+			   'SA' => 'saturday',
+			   'SO' => 'sunday');
+
       $rrule_list = split(';', $rrule_str);
       $rrule = array();
       foreach( $rrule_list as $r ) {
@@ -891,19 +899,33 @@
 	break;
       case 'weekly':
 	$days = split(',', $rrule['BYDAY']);
-	$kolab_days = array( 'MO' => 'monday',
-			     'TU' => 'tuesday',
-			     'WE' => 'wednesday',
-			     'TH' => 'thursday',
-			     'FR' => 'friday',
-			     'SA' => 'saturday',
-			     'SO' => 'sunday');
 	foreach( $days as $day ) {
 	  $day_node = $recur_node->append_child( $kolab_xml->create_element( 'day'));	  
 	  $day_node->append_child($kolab_xml->create_text_node($kolab_days[$day]));
 	}
       case 'monthly':
-	// PENDING(steffen)
+	if( $rrule['BYDAY'] ) {
+	  $recur_node->append_child( $kolab_xml->create_attribute( 'type', 'weekday' ));
+	  $wdays = split(',', $rrule['BYDAY']);
+	  foreach( $wdays as $wday ) {
+	    if( ereg('([+-]?[0-9])(.*)', $wday, $regs ) ) {
+	      $daynumber_node = $recur_node->append_child( $kolab_xml->create_element( 'daynumber'));
+	      $daynumber_node->append_child($kolab_xml->create_text_node( $regs[1] ));	      
+	      $day_node = $recur_node->append_child( $kolab_xml->create_element( 'day'));
+	      $day_node->append_child($kolab_xml->create_text_node( $kolab_days[$regs[2]] ));	      
+	    } else {
+	      $day_node = $recur_node->append_child( $kolab_xml->create_element( 'day'));
+	      $day_node->append_child($kolab_xml->create_text_node( $wday ));	      
+	    }
+	  }	  
+	} else if( $rrule['BYMONTHDAY'] ) {
+	  $recur_node->append_child( $kolab_xml->create_attribute( 'type', 'daynumber' ));
+	  $daynumbers = split(',', $rrule['BYMONTHDAY']);
+	  foreach( $daynumbers as $daynumber ) {
+	    $daynumber_node = $recur_node->append_child( $kolab_xml->create_element( 'daynumber'));
+	    $daynumber_node->append_child($kolab_xml->create_text_node( $daynumber ));
+	  }
+	}
       case 'yearly':
 	// PENDING(steffen)
       default:





More information about the commits mailing list