steffen: server/kolab-resource-handlers/kolab-resource-handlers/resmgr resmgr.php, 1.37, 1.38

cvs at intevation.de cvs at intevation.de
Wed Oct 27 05:28:57 CEST 2004


Author: steffen

Update of /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr
In directory doto:/tmp/cvs-serv15048/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.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- resmgr.php	26 Oct 2004 02:03:56 -0000	1.37
+++ resmgr.php	27 Oct 2004 03:28:55 -0000	1.38
@@ -813,11 +813,16 @@
     $kolab_node->append_child($kolab_xml->create_text_node($uid));
 
     $kolab_node = $kolab_event->append_child($kolab_xml->create_element('organizer'));
-    $orgnzr_node = $kolab_node->append_child($kolab_xml->create_element('display-name'));
+    $org_params = $itip->getAttribute('ORGANIZER', true);
+    if( !is_a( $org_params, 'PEAR_Error' ) ) {
+      $orgcn = $org_params['CN'];
+      $orgnzr_node = $kolab_node->append_child($kolab_xml->create_element('display-name'));
+      $orgnzr_node->append_child($kolab_xml->create_text_node($orgcn));
+    }
     $orgnzr_node = $kolab_node->append_child($kolab_xml->create_element('smtp-address'));
-    $orgnzr_node->append_child($kolab_xml->create_text_node(
-        $itip->getAttributeDefault('ORGANIZER', '')
-    ));
+    $orgemail = $itip->getAttributeDefault('ORGANIZER', '');
+    if( eregi('mailto:(.*)', $orgemail, $regs ) ) $orgemail = $regs[1];
+    $orgnzr_node->append_child($kolab_xml->create_text_node( $orgemail ));
 
     $kolab_node = $kolab_event->append_child($kolab_xml->create_element('summary'));
     $kolab_node->append_child($kolab_xml->create_text_node(
@@ -847,15 +852,20 @@
       if( !is_array( $attendees_params ) ) $attendees_params = array( $attendees_params );
       for( $i = 0; $i < count($attendees); $i++ ) {
 	$attendee_node = $kolab_event->append_child($kolab_xml->create_element('attendee'));	
+	$dispname_node = $attendee_node->append_child($kolab_xml->create_element('display-name'));	
+	$dispname_node->append_child($kolab_xml->create_text_node($attendees_params[$i]['CN']));
 	$kolab_node = $attendee_node->append_child($kolab_xml->create_element('smtp-address'));
-	$kolab_node->append_child($kolab_xml->create_text_node($attendees[$i]));
+	$attendeeemail = $attendees[$i];
+	if( eregi('mailto:(.*)',$attendeeemail,$regs) ) {
+	  $attendeeemail = $regs[1];
+	}
+	$kolab_node->append_child($kolab_xml->create_text_node($attendeeemail));
 	$kolab_node = $attendee_node->append_child($kolab_xml->create_element('status'));
 	$kolab_node->append_child($kolab_xml->create_text_node(strtolower($attendees_params[$i]['PARTSTAT'])));
+	$kolab_node = $attendee_node->append_child($kolab_xml->create_element('request-response'));
 	if( $attendees_params[$i]['RSVP'] == 'FALSE' ) {
-	  $kolab_node = $attendee_node->append_child($kolab_xml->create_element('status'));
 	  $kolab_node->append_child($kolab_xml->create_text_node('false'));
 	} else {
-	  $kolab_node = $attendee_node->append_child($kolab_xml->create_element('status'));
 	  $kolab_node->append_child($kolab_xml->create_text_node('true'));	  
 	}
 	$kolab_node = $attendee_node->append_child($kolab_xml->create_element('role'));
@@ -871,14 +881,15 @@
       foreach( $rrule_list as $r ) {
 	list( $k, $v ) = split( '=', $r );
 	$rrule[$k]=$v;
+	myLog('RRULE['.$k.']='.$v, RM_LOG_DEBUG);
       }
       $recur_node = $kolab_event->append_child($kolab_xml->create_element('recurrence'));
       $freq = strtolower($rrule['FREQ']);
       $recur_node->append_child( $kolab_xml->create_attribute( 'cycle', $freq ));
       switch( $freq ) {
-      case 'DAILY':
+      case 'daily':
 	break;
-      case 'WEEKLY':
+      case 'weekly':
 	$days = split(',', $rrule['BYDAY']);
 	$kolab_days = array( 'MO' => 'monday',
 			     'TU' => 'tuesday',
@@ -891,9 +902,9 @@
 	  $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':
+      case 'monthly':
 	// PENDING(steffen)
-      case 'YEARLY':
+      case 'yearly':
 	// PENDING(steffen)
       default:
 	// Not supported
@@ -903,8 +914,15 @@
 
       // PENDING(steffen): Implement ranges
       $range_node = $recur_node->append_child( $kolab_xml->create_element( 'range' ));
-      $range_node->append_child( $kolab_xml->create_attribute( 'type', 'none' ));      
-      $range_node->append_child($kolab_xml->create_text_node(''));
+      if( $rrule['COUNT'] ) {
+	$range_node->append_child( $kolab_xml->create_attribute( 'type', 'number' ));      
+	$range_node->append_child($kolab_xml->create_text_node($rrule['COUNT']));
+      } else if( $rrule['UNTIL'] ) {
+	$range_node->append_child( $kolab_xml->create_attribute( 'type', 'date' ));      
+	$range_node->append_child($kolab_xml->create_text_node($rrule['UNTIL']));
+      } else {
+	$range_node->append_child( $kolab_xml->create_attribute( 'type', 'none' ));      
+      }
     }
 
 





More information about the commits mailing list