From 5fd88ce1cbb79e1c7d040d9992fc140da3927049 Mon Sep 17 00:00:00 2001 From: ClemensN Date: Fri, 13 Nov 2015 21:52:22 +0100 Subject: [PATCH] Fixed grouped Properties naming (e.g. Addresses: item1.ADR instead of just ADR) that caused item1.ADR to be written to DB(address_address_adr) because it doesn't match ADR, fix works ofr every grouped Property (yet there is only ADR...) Added VCard Property ORG as nondefault (because it takes more then one Value) Fixed false handling of Properties that can have more than one value (e.g. ORG) where values are seperated by semicolons --- inc/caldav-PUT-vcard.php | 3 +-- inc/vcard.php | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/inc/caldav-PUT-vcard.php b/inc/caldav-PUT-vcard.php index 419e2bc5..727bf960 100644 --- a/inc/caldav-PUT-vcard.php +++ b/inc/caldav-PUT-vcard.php @@ -103,8 +103,7 @@ elseif( !preg_match('{^\d{8}T\d{6}Z$}', $last_modified) ) { $vcard->ClearProperties('REV'); $vcard->AddProperty('REV',$last_modified); } - -$rendered_card = $vcard->Render(); +$rendered_card = $vcard->Render(); $etag = md5($rendered_card); $params = array( ':user_no' => $user_no, diff --git a/inc/vcard.php b/inc/vcard.php index bccf7874..7fc890dc 100644 --- a/inc/vcard.php +++ b/inc/vcard.php @@ -93,7 +93,9 @@ CREATE TABLE addressbook_address_adr ( $type = $adr->GetParameterValue('TYPE'); if ( is_array($type) ) $type = implode('~|~',$type); $params[':type'] = $type; - $address = explode(';',$adr->Value()); + //explode on ; that is not preceeded by an \ + $address = preg_split( '{(?Value()); + //$address = explode(';',$adr->Value()); // We use @ to suppress the warnings here, because the NULL in the database suits us well. @$params[':box_no'] = $address[0];