From b446f6de4e66299f584a2f32d596c7797681e3f9 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Thu, 7 Jan 2010 02:04:09 +0000 Subject: [PATCH] supported-report-set as required for CardDAV and Sogo connector --- .../inc/class.addressbook_groupdav.inc.php | 16 ++++++++++++++++ phpgwapi/inc/class.groupdav.inc.php | 11 ++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/addressbook/inc/class.addressbook_groupdav.inc.php b/addressbook/inc/class.addressbook_groupdav.inc.php index 6475630fbe..01b03250ff 100644 --- a/addressbook/inc/class.addressbook_groupdav.inc.php +++ b/addressbook/inc/class.addressbook_groupdav.inc.php @@ -325,6 +325,22 @@ class addressbook_groupdav extends groupdav_handler return '"'.$result[0]['modified'].'"'; } + /** + * Add extra properties for addressbook collections + * + * @param array $props=array() regular props by the groupdav handler + * @return array + */ + static function extra_properties(array $props=array()) + { + // supported reports (required property for CardDAV) + $props[] = HTTP_WebDAV_Server::mkprop('supported-report-set',array( + HTTP_WebDAV_Server::mkprop('supported-report','addressbook-query'), + HTTP_WebDAV_Server::mkprop('supported-report','addressbook-multiget'), + )); + return $props; + } + /** * Get the handler and set the supported fields * diff --git a/phpgwapi/inc/class.groupdav.inc.php b/phpgwapi/inc/class.groupdav.inc.php index 703823bf14..ddc2044b1f 100644 --- a/phpgwapi/inc/class.groupdav.inc.php +++ b/phpgwapi/inc/class.groupdav.inc.php @@ -497,7 +497,16 @@ class groupdav extends HTTP_WebDAV_Server default: $ns = $prop['ns']; } - $arr[$ns.':'.$prop['name']] = $prop['val']; + // allow multiple values for same name + if (isset($arr[$ns.':'.$prop['name']])) + { + $arr[$ns.':'.$prop['name']] = (array)$arr[$ns.':'.$prop['name']]; + $arr[$ns.':'.$prop['name']][] = $prop['val']; + } + else + { + $arr[$ns.':'.$prop['name']] = $prop['val']; + } } return $arr; }