From d7729b3812584bcbd2fd9a2896c3c21cac74fb83 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Fri, 8 Oct 2010 18:51:34 +0200 Subject: [PATCH] Fix converting all-day events to SIF-E. --- framework/SyncML/SyncML/Device/Sync4j.php | 13 ++++++++---- framework/SyncML/tests/sif.phpt | 35 ++++++++++++++++++++++++++++++- horde/docs/CHANGES | 4 +++- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/framework/SyncML/SyncML/Device/Sync4j.php b/framework/SyncML/SyncML/Device/Sync4j.php index c941ff7c3..c2f69c1dc 100644 --- a/framework/SyncML/SyncML/Device/Sync4j.php +++ b/framework/SyncML/SyncML/Device/Sync4j.php @@ -900,12 +900,17 @@ class SyncML_Device_sync4j extends SyncML_Device { if (!empty($start_params[0]['VALUE']) && $start_params[0]['VALUE'] == 'DATE') { $hash['AllDayEvent'] = 1; - $hash['Start'] = $start->format('Y-m-d'); - $start = $start->datestamp(); + $hash['Start'] = sprintf('%04d-%02d-%02d', + $start['year'], + $start['month'], + $start['mday']); + $start = mktime(0, 0, 0, + $start['month'], + $start['mday'], + $start['year']); } else { $hash['AllDayEvent'] = 0; $hash['Start'] = Horde_Icalendar::_exportDateTime($start); - $start = $start->timestamp(); } foreach ($content->getAllAttributes() as $item) { @@ -1098,7 +1103,7 @@ class SyncML_Device_sync4j extends SyncML_Device { } else { // Parse VALARM components. foreach ($content->getComponents() as $component) { - if ($component->getType != 'vAlarm' || + if ($component->getType() != 'vAlarm' || is_a($trigger = $component->getAttribute('TRIGGER'), 'PEAR_Error') || is_array($trigger) || empty($trigger)) { diff --git a/framework/SyncML/tests/sif.phpt b/framework/SyncML/tests/sif.phpt index 8c36b66af..c5d47d14e 100644 --- a/framework/SyncML/tests/sif.phpt +++ b/framework/SyncML/tests/sif.phpt @@ -44,6 +44,37 @@ EVENT; echo $device->vevent2sif($data); echo "\n\n"; +$data = <<vevent2sif($data); +echo "\n\n"; + $data = << @@ -144,13 +175,15 @@ echo $device->sif2vcard($data); --EXPECT-- 102020080630T110000Z20080630T120000ZServer0201560 +10212008-06-302008-06-30Server02015 + BEGIN:VCARD VERSION:3.0 FN:Lastname\, Firstname TEL;TYPE=WORK:+61 712341234 TEL;TYPE=CELL:+61 123123123 EMAIL:test@domain.com -EMAIL:user@seconddomain.com +EMAIL;TYPE=HOME:user@seconddomain.com NOTE:Comments\nMore comments\nAnd just a couple more BDAY:2008-10-18 N:Lastname;Firstname;;; diff --git a/horde/docs/CHANGES b/horde/docs/CHANGES index 1b89c87a2..fd1340a40 100644 --- a/horde/docs/CHANGES +++ b/horde/docs/CHANGES @@ -51,7 +51,9 @@ v4.0-cvs v3.3.10-cvs ----------- -[mms] Fix memcache cache regression introduced in v3.3.9 (Bug #9279). +[jan] Fix conversion of all-day events and certain yearly recurring events for + Funambol clients. +[mms] Fix memcache cache regression (Bug #9279). [jan] Fix SyncML page sometimes deleting more anchors than selected. -- 2.11.0