mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-07 16:44:20 +01:00
* Fix Funambol vCard issues (community bug #1999)
This commit is contained in:
parent
3418c5284e
commit
358252b4a1
@ -726,6 +726,7 @@ class addressbook_groupdav extends groupdav_handler
|
|||||||
if ($this->agent == 'cfnetwork' || $this->agent == 'dataaccess')
|
if ($this->agent == 'cfnetwork' || $this->agent == 'dataaccess')
|
||||||
{
|
{
|
||||||
$supportedFields = $handler->supportedFields;
|
$supportedFields = $handler->supportedFields;
|
||||||
|
$databaseFields = $handler->databaseFields;
|
||||||
// use just CELL and IPHONE, CELL;WORK and CELL;HOME are NOT understood
|
// use just CELL and IPHONE, CELL;WORK and CELL;HOME are NOT understood
|
||||||
//'TEL;CELL;WORK' => array('tel_cell'),
|
//'TEL;CELL;WORK' => array('tel_cell'),
|
||||||
//'TEL;CELL;HOME' => array('tel_cell_private'),
|
//'TEL;CELL;HOME' => array('tel_cell_private'),
|
||||||
@ -733,19 +734,23 @@ class addressbook_groupdav extends groupdav_handler
|
|||||||
unset($supportedFields['TEL;CELL;WORK']);
|
unset($supportedFields['TEL;CELL;WORK']);
|
||||||
$supportedFields['TEL;IPHONE'] = array('tel_cell_private');
|
$supportedFields['TEL;IPHONE'] = array('tel_cell_private');
|
||||||
unset($supportedFields['TEL;CELL;HOME']);
|
unset($supportedFields['TEL;CELL;HOME']);
|
||||||
$supportedFields['X-ABSHOWAS'] = array('fileas_type'); // Horde vCard class uses uppercase prop-names!
|
$databaseFields['X-ABSHOWAS'] = $supportedFields['X-ABSHOWAS'] = array('fileas_type'); // Horde vCard class uses uppercase prop-names!
|
||||||
// Apple Addressbook pre Lion (OS X 10.7) messes up CLASS and CATEGORIES (Lion cant set them but leaves them alone)
|
// Apple Addressbook pre Lion (OS X 10.7) messes up CLASS and CATEGORIES (Lion cant set them but leaves them alone)
|
||||||
if (preg_match('|CFNetwork/([0-9]+)|i', $_SERVER['HTTP_USER_AGENT'],$matches) && $matches[1] < 520)
|
if (preg_match('|CFNetwork/([0-9]+)|i', $_SERVER['HTTP_USER_AGENT'],$matches) && $matches[1] < 520)
|
||||||
{
|
{
|
||||||
unset($supportedFields['CLASS']);
|
unset($supportedFields['CLASS']);
|
||||||
|
unset($databaseFields['CLASS']);
|
||||||
unset($supportedFields['CATEGORIES']);
|
unset($supportedFields['CATEGORIES']);
|
||||||
|
unset($databaseFields['CATEGORIES']);
|
||||||
// gd cant parse or resize images stored from snow leopard addressbook: gd-jpeg:
|
// gd cant parse or resize images stored from snow leopard addressbook: gd-jpeg:
|
||||||
// - JPEG library reports unrecoverable error
|
// - JPEG library reports unrecoverable error
|
||||||
// - Passed data is not in 'JPEG' format
|
// - Passed data is not in 'JPEG' format
|
||||||
// - Couldn't create GD Image Stream out of Data
|
// - Couldn't create GD Image Stream out of Data
|
||||||
// FF (10), Safari (5.1.3) and Chrome (17) cant display it either --> ignore images
|
// FF (10), Safari (5.1.3) and Chrome (17) cant display it either --> ignore images
|
||||||
unset($supportedFields['PHOTO']);
|
unset($supportedFields['PHOTO']);
|
||||||
|
unset($databaseFields['PHOTO']);
|
||||||
}
|
}
|
||||||
|
$handler->setDatabaseFields($databaseFields);
|
||||||
}
|
}
|
||||||
$handler->setSupportedFields('GroupDAV',$this->agent, isset($supportedFields) ?
|
$handler->setSupportedFields('GroupDAV',$this->agent, isset($supportedFields) ?
|
||||||
$supportedFields : $handler->supportedFields);
|
$supportedFields : $handler->supportedFields);
|
||||||
|
@ -38,7 +38,7 @@ class addressbook_vcal extends addressbook_bo
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
var $supportedFields = array( // all entries e.g. for groupdav
|
var $databaseFields = array( // all entries e.g. for groupdav
|
||||||
'ADR;WORK' => array('','adr_one_street2','adr_one_street','adr_one_locality','adr_one_region',
|
'ADR;WORK' => array('','adr_one_street2','adr_one_street','adr_one_locality','adr_one_region',
|
||||||
'adr_one_postalcode','adr_one_countryname'),
|
'adr_one_postalcode','adr_one_countryname'),
|
||||||
'ADR;HOME' => array('','adr_two_street2','adr_two_street','adr_two_locality','adr_two_region',
|
'ADR;HOME' => array('','adr_two_street2','adr_two_street','adr_two_locality','adr_two_region',
|
||||||
@ -75,6 +75,8 @@ class addressbook_vcal extends addressbook_bo
|
|||||||
'REV' => array('modified'),
|
'REV' => array('modified'),
|
||||||
//set for Apple: 'X-ABSHOWAS' => array('fileas_type'), // Horde vCard class uses uppercase prop-names!
|
//set for Apple: 'X-ABSHOWAS' => array('fileas_type'), // Horde vCard class uses uppercase prop-names!
|
||||||
);
|
);
|
||||||
|
|
||||||
|
var $supportedFields;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* VCard version
|
* VCard version
|
||||||
@ -122,6 +124,7 @@ class addressbook_vcal extends addressbook_bo
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$this->clientProperties = $_clientProperties;
|
$this->clientProperties = $_clientProperties;
|
||||||
|
$this->supportedFields = $this->databaseFields;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* import a vard into addressbook
|
* import a vard into addressbook
|
||||||
@ -517,12 +520,16 @@ class addressbook_vcal extends addressbook_bo
|
|||||||
|
|
||||||
function setSupportedFields($_productManufacturer='file', $_productName='', $_supportedFields = null)
|
function setSupportedFields($_productManufacturer='file', $_productName='', $_supportedFields = null)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->productManufacturer = strtolower($_productManufacturer);
|
$this->productManufacturer = strtolower($_productManufacturer);
|
||||||
$this->productName = strtolower($_productName);
|
$this->productName = strtolower($_productName);
|
||||||
|
|
||||||
if (is_array($_supportedFields)) $this->supportedFields = $_supportedFields;
|
if (is_array($_supportedFields)) $this->supportedFields = $_supportedFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setDatabaseFields($_databaseFields)
|
||||||
|
{
|
||||||
|
if (is_array($_databaseFields)) $this->databaseFields = $_databaseFields;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses a string containing vCard data.
|
* Parses a string containing vCard data.
|
||||||
@ -913,9 +920,9 @@ class addressbook_vcal extends addressbook_bo
|
|||||||
|
|
||||||
foreach ($finalRowNames as $key => $vcardKey)
|
foreach ($finalRowNames as $key => $vcardKey)
|
||||||
{
|
{
|
||||||
if (isset($this->supportedFields[$key]))
|
if (isset($this->databaseFields[$key]))
|
||||||
{
|
{
|
||||||
$fieldNames = $this->supportedFields[$key];
|
$fieldNames = $this->databaseFields[$key];
|
||||||
foreach ($fieldNames as $fieldKey => $fieldName)
|
foreach ($fieldNames as $fieldKey => $fieldName)
|
||||||
{
|
{
|
||||||
if (!empty($fieldName))
|
if (!empty($fieldName))
|
||||||
|
Loading…
Reference in New Issue
Block a user