From 902d5690265f862e585975a7358d8bdac2fee19d Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Wed, 1 Feb 2012 19:52:19 +0000 Subject: [PATCH] * Addressbook/CardDAV: fixed Apple iOS and OS X addressbook messed up phone numbers (Mobile is now mobile for both and iPhone is matched to EGroupware private cell) also removed copy of supportedFields and using again default ones from addressbook_vcal, with Apple specific fixes in _get_handler() --- .../inc/class.addressbook_groupdav.inc.php | 61 ++++++------------- 1 file changed, 17 insertions(+), 44 deletions(-) diff --git a/addressbook/inc/class.addressbook_groupdav.inc.php b/addressbook/inc/class.addressbook_groupdav.inc.php index 87027b7959..3a20ad7d7e 100644 --- a/addressbook/inc/class.addressbook_groupdav.inc.php +++ b/addressbook/inc/class.addressbook_groupdav.inc.php @@ -36,43 +36,6 @@ class addressbook_groupdav extends groupdav_handler 'ORG' => 'org_name', ); - var $supportedFields = array( - 'ADR;WORK' => array('','adr_one_street2','adr_one_street','adr_one_locality','adr_one_region', - 'adr_one_postalcode','adr_one_countryname'), - 'ADR;HOME' => array('','adr_two_street2','adr_two_street','adr_two_locality','adr_two_region', - 'adr_two_postalcode','adr_two_countryname'), - 'BDAY' => array('bday'), - //'CLASS' => array('private'), - //'CATEGORIES' => array('cat_id'), - 'EMAIL;WORK' => array('email'), - 'EMAIL;HOME' => array('email_home'), - 'N' => array('n_family','n_given','n_middle', - 'n_prefix','n_suffix'), - 'FN' => array('n_fn'), - 'NOTE' => array('note'), - 'ORG' => array('org_name','org_unit','room'), - 'TEL;CELL;WORK' => array('tel_cell'), - 'TEL;CELL;HOME' => array('tel_cell_private'), - 'TEL;CAR' => array('tel_car'), - 'TEL;OTHER' => array('tel_other'), - 'TEL;VOICE;WORK' => array('tel_work'), - 'TEL;FAX;WORK' => array('tel_fax'), - 'TEL;HOME;VOICE' => array('tel_home'), - 'TEL;FAX;HOME' => array('tel_fax_home'), - 'TEL;PAGER' => array('tel_pager'), - 'TITLE' => array('title'), - 'URL;WORK' => array('url'), - 'URL;HOME' => array('url_home'), - 'ROLE' => array('role'), - 'NICKNAME' => array('label'), - 'FBURL' => array('freebusy_uri'), - 'PHOTO' => array('jpegphoto'), - 'X-ASSISTANT' => array('assistent'), - 'X-ASSISTANT-TEL' => array('tel_assistent'), - 'UID' => array('uid'), - 'REV' => array('modified'), - ); - /** * Charset for exporting data, as some clients ignore the headers specifying the charset * @@ -719,14 +682,24 @@ class addressbook_groupdav extends groupdav_handler */ private function _get_handler() { - if ($this->agent != 'cfnetwork' && $this->agent != 'dataaccess') - { - // Apple Addressbook don't support CLASS - $this->supportedFields['CLASS'] = array('private'); - $this->supportedFields['CATEGORIES'] = array('cat_id'); - } $handler = new addressbook_vcal('addressbook','text/vcard'); - $handler->setSupportedFields('GroupDAV',$this->agent, $this->supportedFields); + // Apple iOS or OS X addressbook + if ($this->agent = 'cfnetwork' || $this->agent == 'dataaccess') + { + $supportedFields = $handler->supportedFields; + // Apple Addressbook don't support CLASS + unset($supportedFields['CLASS']); + unset($supportedFields['CATEGORIES']); + // use just CELL and IPHONE, CELL;WORK and CELL;HOME are NOT understood + //'TEL;CELL;WORK' => array('tel_cell'), + //'TEL;CELL;HOME' => array('tel_cell_private'), + $supportedFields['TEL;CELL'] = array('tel_cell'); + unset($supportedFields['TEL;CELL;WORK']); + $supportedFields['TEL;IPHONE'] = array('tel_cell_private'); + unset($supportedFields['TEL;CELL;HOME']); + } + $handler->setSupportedFields('GroupDAV',$this->agent, isset($supportedFields) ? + $supportedFields : $handler->supportedFields); return $handler; }