[Tickets #8571] Only one e-Mail Address is synced with SIF-C (Funambol)

bugs at horde.org bugs at horde.org
Fri Sep 11 07:22:10 UTC 2009


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/8571
------------------------------------------------------------------------------
  Ticket             | 8571
  Created By         | lst_hoe02 at kwsoft.de
  Summary            | Only one e-Mail Address is synced with SIF-C (Funambol)
  Queue              | SyncML
  Type               | Enhancement
  State              | New
  Priority           | 1. Low
  Milestone          |
  Patch              | 1
  Owners             |
------------------------------------------------------------------------------


lst_hoe02 at kwsoft.de (2009-09-11 03:22) wrote:

Outlook has 3 mail addresses and these are translatet to  
Email1Address, Email2Address, Email3Address in SIF-C. Newer Funambol  
clients map these to
EMAIL
EMAIL:HOME
EMAIL:WORK
The patch does this for vacrd->SIF and the otherway around to sync  
more than one address.

--- lib/SyncML/Device/Sync4j.php.orig        2009-08-14  
17:01:24.000000000 +0200
+++ lib/SyncML/Device/Sync4j.php.patch        2009-09-11  
09:10:36.000000000 +0200
@@ -253,8 +253,8 @@
              'OtherTelephoneNumber' => array('TEL'),
              'OtherFaxNumber' => array('TEL'),
              'Email1Address' => array('EMAIL'),
-            'Email2Address' => array('EMAIL'),
-            'Email3Address' => array('EMAIL'),
+            'Email2Address' => array('EMAIL', array('TYPE' => 'HOME')),
+            'Email3Address' => array('EMAIL', array('TYPE' => 'WORK')),
              'HomeLabel' => array('LABEL', array('TYPE' => 'HOME')),
              'BusinessLabel' => array('LABEL', array('TYPE' => 'WORK')),
              'OtherLabel' => array('LABEL'),
@@ -729,9 +729,34 @@
                  break;

              case 'EMAIL':
-                if (isset($item['params']['PREF']) ||  
!isset($hash['email'])) {
-                    $hash['Email1Address'] =  
Horde_iCalendar_vcard::getBareEmail($item['value']);
-                    $hash['Email1AddressType'] = 'SMTP';
+                if (isset($item['params']['TYPE'])) {
+                    if (!is_array($item['params']['TYPE'])) {
+                        $item['params']['TYPE'] =  
array($item['params']['TYPE']);
+                    }
+                    // For vCard 3.0.
+                    foreach ($item['params']['TYPE'] as $mail) {
+                        if (String::upper($mail) == 'WORK') {
+                            $hash['Email3Address'] =  
Horde_iCalendar_vcard::getBareEmail($item['value']);
+                            $hash['Email3AddressType'] = 'SMTP';
+                        } elseif (String::upper($mail) == 'HOME') {
+                            $hash['Email2Address'] =  
Horde_iCalendar_vcard::getBareEmail($item['value']);
+                            $hash['Email2AddressType'] = 'SMTP';
+                        } else {
+                            $hash['Email1Address'] =  
Horde_iCalendar_vcard::getBareEmail($item['value']);
+                            $hash['Email1AddressType'] = 'SMTP';
+                        }
+                    }
+                } else {
+                    if (isset($item['params']['HOME'])) {
+                        $hash['Email2Address'] =  
Horde_iCalendar_vcard::getBareEmail($item['value']);
+                        $hash['Email2AddressType'] = 'SMTP';
+                    } elseif (isset($item['params']['WORK'])) {
+                        $hash['Email3Address'] =  
Horde_iCalendar_vcard::getBareEmail($item['value']);
+                        $hash['Email3AddressType'] = 'SMTP';
+                    } else {
+                        $hash['Email1Address'] =  
Horde_iCalendar_vcard::getBareEmail($item['value']);
+                        $hash['Email1AddressType'] = 'SMTP';
+                    }
                  }
                  break;






More information about the bugs mailing list