diff --git a/calendar/inc/class.calendar_zpush.inc.php b/calendar/inc/class.calendar_zpush.inc.php index 5294b86329..96209bafb2 100644 --- a/calendar/inc/class.calendar_zpush.inc.php +++ b/calendar/inc/class.calendar_zpush.inc.php @@ -80,14 +80,13 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti { if (!isset($this->calendar)) $this->calendar = new calendar_boupdate(); - $cals = $GLOBALS['egw_info']['user']['preferences']['activesync']['calendar-cals']; - $cals = $cals ? explode(',',$cals) : array('P'); // implicit default of 'P' + $cals_pref = $GLOBALS['egw_info']['user']['preferences']['activesync']['calendar-cals']; + $cals = $cals_pref ? explode(',',$cals_pref) : array('P'); // implicit default of 'P' $folderlist = array(); foreach ($this->calendar->list_cals() as $entry) { $account_id = $entry['grantor']; - $label = $entry['name']; if (in_array('A',$cals) || in_array($account_id,$cals) || $account_id == $GLOBALS['egw_info']['user']['account_id'] || // always incl. own calendar! $account_id == $GLOBALS['egw_info']['user']['account_primary_group'] && in_array('G',$cals)) @@ -98,9 +97,9 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti 'parent'=> '0', ); } - }; + } //error_log(__METHOD__."() returning ".array2string($folderlist)); - debugLog(__METHOD__."() returning ".array2string($folderlist)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."() returning ".array2string($folderlist)); return $folderlist; } @@ -112,6 +111,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti */ public function GetFolder($id) { + $type = $owner = null; $this->backend->splitID($id, $type, $owner); $folderObj = new SyncFolder(); @@ -127,7 +127,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti $folderObj->type = SYNC_FOLDER_TYPE_USER_APPOINTMENT; } //error_log(__METHOD__."('$id') folderObj=".array2string($folderObj)); - //debugLog(__METHOD__."('$id') folderObj=".array2string($folderObj)); + //ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$id') folderObj=".array2string($folderObj)); return $folderObj; } @@ -146,7 +146,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti */ public function StatFolder($id) { - $folder = $this->GetFolder($id); + $type = $owner = null; $this->backend->splitID($id, $type, $owner); $stat = array( @@ -155,7 +155,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti 'parent' => '0', ); //error_log(__METHOD__."('$id') folderObj=".array2string($stat)); - //debugLog(__METHOD__."('$id') folderObj=".array2string($stat)); + //ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$id') folderObj=".array2string($stat)); return $stat; } @@ -171,15 +171,16 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti * will work OK apart from that. * * @param string $id folder id - * @param int $cutoffdate=null - * @param array $not_uids=null uids NOT to return for meeting requests + * @param int $cutoffdate =null + * @param array $not_uids =null uids NOT to return for meeting requests * @return array */ function GetMessageList($id, $cutoffdate=NULL, array $not_uids=null) { if (!isset($this->calendar)) $this->calendar = new calendar_boupdate(); - debugLog (__METHOD__."('$id',$cutoffdate)"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$id',$cutoffdate)"); + $type = $user = null; $this->backend->splitID($id,$type,$user); if (!$cutoffdate) $cutoffdate = $this->bo->now - 100*24*3600; // default three month back -30 breaks all sync recurrences @@ -223,12 +224,14 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti * List all meeting requests / invitations of user NOT having a UID in $not_uids (already received by email) * * @param array $not_uids - * @param int $cutoffdate=null + * @param int $cutoffdate =null * @return array */ function GetMeetingRequests(array $not_uids, $cutoffdate=NULL) { -return array(); // temporary disabling meeting requests from calendar + unset($not_uids, $cutoffdate); + return array(); + /* temporary disabling meeting requests from calendar $folderid = $this->backend->createID('calendar', $GLOBALS['egw_info']['user']['account_id']); // users personal calendar $ret = $this->GetMessageList($folderid, $cutoffdate, $not_uids); @@ -238,8 +241,8 @@ return array(); // temporary disabling meeting requests from calendar $message['id'] = -$message['id']; } - debugLog(__METHOD__.'('.array2string($not_uids).", $cutoffdate) returning ".array2string($ret)); - return $ret; + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__.'('.array2string($not_uids).", $cutoffdate) returning ".array2string($ret)); + return $ret;*/ } /** @@ -255,7 +258,7 @@ return array(); // temporary disabling meeting requests from calendar $ret = $this->StatMessage($folderid, abs($id)); $ret['id'] = $id; - debugLog(__METHOD__."($id) returning ".array2string($ret)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."($id) returning ".array2string($ret)); return $ret; } @@ -271,6 +274,8 @@ return array(); // temporary disabling meeting requests from calendar */ function GetMeetingRequest($id, $truncsize, $bodypreference=false, $optionbodypreference=false, $mimesupport = 0) { + unset($truncsize, $optionbodypreference, $mimesupport); // not used, but required by function signature + if (!isset($this->calendar)) $this->calendar = new calendar_boupdate(); if (!($event = $this->calendar->read(abs($id), 0, false, 'server'))) @@ -307,7 +312,7 @@ return array(); // temporary disabling meeting requests from calendar $this->backend->note2messagenote($event['description'], $bodypreference, $message->airsyncbasebody); } } - debugLog(__METHOD__."($id) returning ".array2string($message)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."($id) returning ".array2string($message)); return $message; } @@ -326,11 +331,11 @@ return array(); // temporary disabling meeting requests from calendar $ical = new calendar_ical(); if (!($events = $ical->icaltoegw($event, '', 'utf-8')) || count($events) != 1) { - debugLog(__METHOD__."('$event') error parsing iCal!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$event') error parsing iCal!"); return null; } $event = array_shift($events); - debugLog(__METHOD__."(...) parsed as ".array2string($event)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."(...) parsed as ".array2string($event)); } $message = new SyncMeetingRequest(); // set timezone @@ -339,6 +344,7 @@ return array(); // temporary disabling meeting requests from calendar $message->timezone = base64_encode(self::_getSyncBlobFromTZ($as_tz)); } catch(Exception $e) { + unset($e); // ignore exception, simply set no timezone, as it is optional } // copying timestamps (they are already read in servertime, so non tz conversation) @@ -402,7 +408,7 @@ return array(); // temporary disabling meeting requests from calendar 2 => 'T', 3 => 'D', ); - $status = isset($as2status[$response]) ? $as2status[$response] : 'U'; + $status_in = isset($as2status[$response]) ? $as2status[$response] : 'U'; $uid = $GLOBALS['egw_info']['user']['account_id']; if (!is_numeric($requestid)) // iCal from fmail @@ -410,11 +416,11 @@ return array(); // temporary disabling meeting requests from calendar $ical = new calendar_ical(); if (!($events = $ical->icaltoegw($requestid, '', 'utf-8')) || count($events) != 1) { - debugLog(__METHOD__."('$event') error parsing iCal!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."($folderid, '$requestid') error parsing iCal!"); return null; } $parsed_event = array_shift($events); - debugLog(__METHOD__."(...) parsed as ".array2string($parsed_event)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."(...) parsed as ".array2string($parsed_event)); // check if event already exist (invitation of or already imported by other user) if (!($event = $this->calendar->read($parsed_event['uid'], 0, false, 'server'))) @@ -423,23 +429,24 @@ return array(); // temporary disabling meeting requests from calendar } elseif(!isset($event['participants'][$uid])) { - debugLog(__METHOD__.'('.array2string($requestid).", $folderid, $response) current user ($uid) is NO participant of event ".array2string($event)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__.'('.array2string($requestid).", $folderid, $response) current user ($uid) is NO participant of event ".array2string($event)); // maybe we should silently add him, as he might not have the rights to add him himself with calendar->update ... } elseif($event['deleted']) { - debugLog(__METHOD__.'('.array2string($requestid).", $folderid, $response) event ($uid) deleted on server --> return false"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__.'('.array2string($requestid).", $folderid, $response) event ($uid) deleted on server --> return false"); return false; } } elseif (!($event = $this->calendar->read(abs($requestid), 0, false, 'server'))) { - debugLog(__METHOD__."('$requestid', '$folderid', $response) returning FALSE"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$requestid', '$folderid', $response) returning FALSE"); return false; } // keep role and quantity as AS has no idea about it + $quantity = $role = null; calendar_so::split_status($event['participants'][$uid], $quantity, $role); - $status = calendar_so::combine_status($status,$quantity,$role); + $status = calendar_so::combine_status($status_in, $quantity, $role); if ($event['id'] && isset($event['participants'][$uid])) { @@ -450,7 +457,7 @@ return array(); // temporary disabling meeting requests from calendar $event['participants'][$uid] = $status; $ret = $this->calendar->update($event, true); // true = ignore conflicts, as there seems no conflict handling in AS } - debugLog(__METHOD__.'('.array2string($requestid).", '$folderid', $response) returning ".array2string($ret)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__.'('.array2string($requestid).", '$folderid', $response) returning ".array2string($ret)); return $ret; } @@ -499,7 +506,7 @@ return array(); // temporary disabling meeting requests from calendar * expects user-time! * * @param string $folderid - * @param int $id for change | empty for create new + * @param int $_id for change | empty for create new * @param SyncAppointment $message object to SyncObject to create * @param ContentParameters $contentParameters * @@ -512,38 +519,41 @@ return array(); // temporary disabling meeting requests from calendar * Note that this function will never be called on E-mail items as you can't change e-mail items, you * can only set them as 'read'. */ - public function ChangeMessage($folderid, $id, $message, $contentParameters) + public function ChangeMessage($folderid, $_id, $message, $contentParameters) { + unset($contentParameters); // unused, but required by function signature + if (!isset($this->calendar)) $this->calendar = new calendar_boupdate(); - $event = array(); + $old_event = array(); + $type = $account = null; $this->backend->splitID($folderid, $type, $account); - debugLog (__METHOD__."('$folderid', $id, ".array2string($message).") type='$type', account=$account"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', $_id, ".array2string($message).") type='$type', account=$account"); - list($id,$recur_date) = explode(':',$id); + list($id,$recur_date) = explode(':', $_id); - if ($type != 'calendar' || $id && !($event = $this->calendar->read($id, $recur_date, false, 'server'))) + if ($type != 'calendar' || $id && !($old_event = $this->calendar->read($id, $recur_date, false, 'server'))) { - debugLog(__METHOD__."('$folderid',$id,...) Folder wrong or event does not existing"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid',$id,...) Folder wrong or event does not existing"); return false; } if ($recur_date) // virtual exception { // @todo check if virtual exception needs to be saved as real exception, or only stati need to be changed - debugLog(__METHOD__."('$folderid',$id:$recur_date,".array2string($message).") handling of virtual exception not yet implemented!"); - error_log(__METHOD__."('$folderid',$id:$recur_date,".array2string($message).") handling of virtual exception not yet implemented!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid',$id:$recur_date,".array2string($message).") handling of virtual exception not yet implemented!"); + //error_log(__METHOD__."('$folderid',$id:$recur_date,".array2string($message).") handling of virtual exception not yet implemented!"); } - if (!$this->calendar->check_perms($id ? EGW_ACL_EDIT : EGW_ACL_ADD,$event ? $event : 0,$account)) + if (!$this->calendar->check_perms($id ? EGW_ACL_EDIT : EGW_ACL_ADD, $old_event ? $old_event : 0,$account)) { // @todo: write in users calendar and make account only a participant - debugLog(__METHOD__."('$folderid',$id,...) no rights to add/edit event!"); - error_log(__METHOD__."('$folderid',$id,".array2string($message).") no rights to add/edit event!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid',$id,...) no rights to add/edit event!"); + //error_log(__METHOD__."('$folderid',$id,".array2string($message).") no rights to add/edit event!"); return false; } - if (!$id) $event['owner'] = $account; // we do NOT allow to change the owner of existing events + if (!$id) $old_event['owner'] = $account; // we do NOT allow to change the owner of existing events - $event = $this->message2event($message, $account, $event); + $event = $this->message2event($message, $account, $old_event); // store event, ignore conflicts and skip notifications, as AS clients do their own notifications $skip_notification = false; @@ -552,9 +562,10 @@ return array(); // temporary disabling meeting requests from calendar { $skip_notification = true; // to avoid double notification from client AND Server } - if (!($id = $this->calendar->update($event,$ignore_conflicts=true,$touch_modified=true,$ignore_acl=false,$updateTS=true,$messages=null, $skip_notification))) + $messages = null; + if (!($id = $this->calendar->update($event, true, true, false, true, $messages, $skip_notification))) { - debugLog(__METHOD__."('$folderid',$id,...) error saving event=".array2string($event)."!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid',$id,...) error saving event=".array2string($event)."!"); return false; } // store non-delete exceptions @@ -567,11 +578,14 @@ return array(); // temporary disabling meeting requests from calendar $ex_event = $event; unset($ex_event['id']); unset($ex_event['etag']); - foreach($ex_event as $name => $value) if (substr($name,0,6) == 'recur_') unset($ex_event[$name]); + foreach(array_keys($ex_event) as $name) + { + if (substr($name,0,6) == 'recur_') unset($ex_event[$name]); + } $ex_event['recur_type'] = calendar_rrule::NONE; if ($event['id'] && ($ex_events = $this->calendar->search(array( - 'user' => $user, + 'user' => $account, 'enum_recuring' => false, 'daywise' => false, 'filter' => 'owner', // return all possible entries @@ -588,17 +602,17 @@ return array(); // temporary disabling meeting requests from calendar { $participants = $event['participants']; } - $ex_event = $this->message2event($exception, $account, $ex_event); - $ex_event['participants'] = $participants; // not contained in $exception - $ex_event['reference'] = $event['id']; - $ex_event['recurrence'] = egw_time::server2user($exception->exceptionstarttime); - $ex_ok = $this->calendar->save($ex_event); - debugLog(__METHOD__."('$folderid',$id,...) saving exception=".array2string($ex_event).' returned '.array2string($ex_ok)); - error_log(__METHOD__."('$folderid',$id,...) exception=".array2string($exception).") saving exception=".array2string($ex_event).' returned '.array2string($ex_ok)); + $save_event = $this->message2event($exception, $account, $ex_event); + $save_event['participants'] = $participants; // not contained in $exception + $save_event['reference'] = $event['id']; + $save_event['recurrence'] = egw_time::server2user($exception->exceptionstarttime); + $ex_ok = $this->calendar->save($save_event); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid',$id,...) saving exception=".array2string($save_event).' returned '.array2string($ex_ok)); + //error_log(__METHOD__."('$folderid',$id,...) exception=".array2string($exception).") saving exception=".array2string($save_event).' returned '.array2string($ex_ok)); } } } - debugLog(__METHOD__."('$folderid',$id,...) SUCESS saving event=".array2string($event).", id=$id"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid',$id,...) SUCESS saving event=".array2string($event).", id=$id"); //error_log(__METHOD__."('$folderid',$id,".array2string($message).") SUCESS saving event=".array2string($event).", id=$id"); return $this->StatMessage($folderid, $id); } @@ -608,7 +622,7 @@ return array(); // temporary disabling meeting requests from calendar * * @param SyncAppointment $message * @param int $account - * @param array $event=array() + * @param array $event =array() * @return array */ private function message2event(SyncAppointment $message, $account, $event=array()) @@ -633,7 +647,7 @@ return array(); // temporary disabling meeting requests from calendar // only change description, if one given, as iOS5 skips description in ChangeMessage after MeetingResponse // --> we ignore empty / not set description, so description get no longer lost, but you cant empty it via eSync - if (($description = $this->backend->messagenote2note($message->body, $message->rtf, $message->airsyncbasebody))) + if (($description = $this->backend->messagenote2note($message->body, $message->rtf, $message->asbody))) { $event['description'] = $description; } @@ -656,6 +670,7 @@ return array(); // temporary disabling meeting requests from calendar { if ($attendee->type == 3) continue; // we can not identify resources and re-add them anyway later + $matches = null; if (preg_match('/^noreply-(.*)-uid@egroupware.org$/',$attendee->email,$matches)) { $uid = $matches[1]; @@ -689,8 +704,9 @@ return array(); // temporary disabling meeting requests from calendar if ($event['id'] && isset($event['participants'][$uid])) { $status = $event['participants'][$uid]; + $quantity = $role = null; calendar_so::split_status($status, $quantity, $role); - //debugLog("old status for $uid is status=$status, quantity=$quantitiy, role=$role"); + //ZLog::Write(LOGLEVEL_DEBUG, "old status for $uid is status=$status, quantity=$quantitiy, role=$role"); } // check if just email is an existing attendee (iOS returns email as name too!), keep it to keep status/role if not set elseif ($event['id'] && (isset($event['participants'][$u='e'.$attendee->email]) || @@ -698,14 +714,14 @@ return array(); // temporary disabling meeting requests from calendar { $status = $event['participants'][$u]; calendar_so::split_status($status, $quantity, $role); - //debugLog("old status for $uid as $u is status=$status, quantity=$quantitiy, role=$role"); + //ZLog::Write(LOGLEVEL_DEBUG, "old status for $uid as $u is status=$status, quantity=$quantitiy, role=$role"); } else // set some defaults { $status = 'U'; $quantitiy = 1; $role = 'REQ-PARTICIPANT'; - //debugLog("default status for $uid is status=$status, quantity=$quantitiy, role=$role"); + //ZLog::Write(LOGLEVEL_DEBUG, "default status for $uid is status=$status, quantity=$quantitiy, role=$role"); } if ($role == 'CHAIR') $chair_set = true; // by role from existing participant @@ -725,7 +741,7 @@ return array(); // temporary disabling meeting requests from calendar { $role = $r; } - //debugLog("-> status for $uid is status=$status ($s), quantity=$quantitiy, role=$role ($r)"); + //ZLog::Write(LOGLEVEL_DEBUG, "-> status for $uid is status=$status ($s), quantity=$quantitiy, role=$role ($r)"); $participants[$uid] = calendar_so::combine_status($status,$quantitiy,$role); } // if organizer is not already participant, add him as chair @@ -860,7 +876,7 @@ return array(); // temporary disabling meeting requests from calendar */ public function ChangeFolder($id, $oldid, $displayname, $type) { - debugLog(__METHOD__."('$id', '$oldid', '$displayname', $type) NOT supported!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$id', '$oldid', '$displayname', $type) NOT supported!"); return false; } @@ -875,7 +891,7 @@ return array(); // temporary disabling meeting requests from calendar */ public function DeleteFolder($parentid, $id) { - debugLog(__METHOD__."('$parentid', '$id') NOT supported!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$parentid', '$id') NOT supported!"); return false; } @@ -895,7 +911,7 @@ return array(); // temporary disabling meeting requests from calendar */ public function MoveMessage($folderid, $id, $newfolderid, $contentParameters) { - debugLog(__METHOD__."('$folderid', $id, '$newfolderid',".array2string($contentParameters).") NOT supported!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', $id, '$newfolderid',".array2string($contentParameters).") NOT supported!"); return false; } @@ -915,10 +931,12 @@ return array(); // temporary disabling meeting requests from calendar */ public function DeleteMessage($folderid, $id, $contentParameters) { + unset($contentParameters); // not used, but required by function signature + if (!isset($this->caledar)) $this->calendar = new calendar_boupdate(); $ret = $this->calendar->delete($id); - debugLog(__METHOD__."('$folderid', $id) delete($id) returned ".array2string($ret)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', $id) delete($id) returned ".array2string($ret)); return $ret; } @@ -941,7 +959,9 @@ return array(); // temporary disabling meeting requests from calendar */ function SetReadFlag($folderid, $id, $flags, $contentParameters) { - debugLog(__METHOD__."('$folderid', $id, ".array2string($flags)." NOT supported!"); + unset($contentParameters); // not used, but required by function signature + + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', $id, ".array2string($flags)." NOT supported!"); return false; } @@ -956,7 +976,7 @@ return array(); // temporary disabling meeting requests from calendar */ function ChangeMessageFlag($folderid, $id, $flags) { - debugLog(__METHOD__."('$folderid', $id, ".array2string($flags)." NOT supported!"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', $id, ".array2string($flags)." NOT supported!"); return false; } @@ -980,7 +1000,8 @@ return array(); // temporary disabling meeting requests from calendar $mimesupport = $contentparameters->GetMimeSupport(); $bodypreference = $contentparameters->GetBodyPreference(); /* fmbiete's contribution r1528, ZP-320 */ - debugLog (__METHOD__."('$folderid', ".array2string($id).", truncsize=$truncsize, bodyprefence=".array2string($bodypreference).", mimesupport=$mimesupport)"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', ".array2string($id).", truncsize=$truncsize, bodyprefence=".array2string($bodypreference).", mimesupport=$mimesupport)"); + $type = $account = null; $this->backend->splitID($folderid, $type, $account); if (is_array($id)) { @@ -996,9 +1017,11 @@ return array(); // temporary disabling meeting requests from calendar return false; } } - debugLog(__METHOD__."($folderid,$id,...) start=$event[start]=".date('Y-m-d H:i:s',$event['start']).", recurrence=$event[recurrence]=".date('Y-m-d H:i:s',$event['recurrence'])); - foreach($event['recur_exception'] as $ex) debugLog("exception=$ex=".date('Y-m-d H:i:s',$ex)); - + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."($folderid,$id,...) start=$event[start]=".date('Y-m-d H:i:s',$event['start']).", recurrence=$event[recurrence]=".date('Y-m-d H:i:s',$event['recurrence'])); + foreach($event['recur_exception'] as $ex) + { + ZLog::Write(LOGLEVEL_DEBUG, "exception=$ex=".date('Y-m-d H:i:s',$ex)); + } $message = new SyncAppointment(); // set timezone @@ -1007,6 +1030,7 @@ return array(); // temporary disabling meeting requests from calendar $message->timezone = base64_encode(self::_getSyncBlobFromTZ($as_tz)); } catch(Exception $e) { + unset($e); // ignore exception, simply set no timezone, as it is optional } // copying timestamps (they are already read in servertime, so non tz conversation) @@ -1044,7 +1068,7 @@ return array(); // temporary disabling meeting requests from calendar { if (strlen($event['description']) > 0) { - debugLog("airsyncbasebody!"); + ZLog::Write(LOGLEVEL_DEBUG, "airsyncbasebody!"); $message->asbody = new SyncBaseBody(); $message->nativebodytype=1; $this->backend->note2messagenote($event['description'], $bodypreference, $message->asbody); @@ -1065,6 +1089,7 @@ return array(); // temporary disabling meeting requests from calendar { // AS does NOT want calendar owner as participant if ($uid == $account) continue; + $quantity = $role = null; calendar_so::split_status($status, $quantity, $role); $attendee = new SyncAttendee(); @@ -1094,7 +1119,7 @@ return array(); // temporary disabling meeting requests from calendar { $message->organizername = $attendee->name; $message->organizeremail = $attendee->email; - debugLog(__METHOD__."($folderid, $id, ...) external organizer detected (role=$role, uid=$uid), set as AS organizer: $message->organizername <$message->organizeremail>"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."($folderid, $id, ...) external organizer detected (role=$role, uid=$uid), set as AS organizer: $message->organizername <$message->organizeremail>"); } if ($uid[0] == 'r') $attendee->type = 3; // 3 = resource } @@ -1156,9 +1181,9 @@ return array(); // temporary disabling meeting requests from calendar } else { - debugLog(__METHOD__.__LINE__." Exceptions found but no UID given for Event:".$event['id'].' Exceptions:'.array2string($event['recur_exception'])); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__.__LINE__." Exceptions found but no UID given for Event:".$event['id'].' Exceptions:'.array2string($event['recur_exception'])); } - if (count($ex_events)>=1) debugLog(__METHOD__.__LINE__." found ".count($ex_events)." exeptions for event with UID/ID:".$event['uid'].'/'.$event['id']); + if (count($ex_events)>=1) ZLog::Write(LOGLEVEL_DEBUG, __METHOD__.__LINE__." found ".count($ex_events)." exeptions for event with UID/ID:".$event['uid'].'/'.$event['id']); $message->exceptions = array(); foreach($ex_events as $ex_event) @@ -1175,7 +1200,7 @@ return array(); // temporary disabling meeting requests from calendar { unset($event['recur_exception'][$key]); } - debugLog(__METHOD__."() added exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."() added exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception)); $message->exceptions[] = $exception; } // add rest of exceptions as deleted @@ -1183,11 +1208,11 @@ return array(); // temporary disabling meeting requests from calendar { if (!empty($exception_time)) { - if (empty($event['uid'])) debugLog(__METHOD__.__LINE__." BEWARE no UID given for this event:".$event['id'].' but exception is set for '.$exception_time); + if (empty($event['uid'])) ZLog::Write(LOGLEVEL_DEBUG, __METHOD__.__LINE__." BEWARE no UID given for this event:".$event['id'].' but exception is set for '.$exception_time); $exception = new SyncAppointment(); // exceptions seems to be full SyncAppointments, with only starttime required $exception->deleted = 1; $exception->exceptionstarttime = $exception_time; - debugLog(__METHOD__."() added deleted exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."() added deleted exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception)); $message->exceptions[] = $exception; } } @@ -1201,10 +1226,10 @@ return array(); // temporary disabling meeting requests from calendar $exception = $this->GetMessage($folderid, $event['id'].':'.$exception_time, $contentparameters); $exception->deleted = 0; $exception->exceptionstarttime = $exception_time; - debugLog(__METHOD__."() added virtual exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."() added virtual exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception)); $message->exceptions[] = $exception; }*/ - //debugLog(__METHOD__."($id) message->exceptions=".array2string($message->exceptions)); + //ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."($id) message->exceptions=".array2string($message->exceptions)); } // only return alarms if in own calendar if ($account == $GLOBALS['egw_info']['user']['account_id'] && $event['alarm']) @@ -1237,8 +1262,11 @@ return array(); // temporary disabling meeting requests from calendar */ public function StatMessage($folderid, $id) { + unset($folderid); // not used ($id is unique), but required by function signature + if (!isset($this->calendar)) $this->calendar = new calendar_boupdate(); + $nul = null; if (!($etag = $this->calendar->get_etag($id, $nul, true, true))) // last true: $only_master=true { $stat = false; @@ -1257,7 +1285,7 @@ return array(); // temporary disabling meeting requests from calendar 'flags' => 1, ); } - //debugLog (__METHOD__."('$folderid',".array2string(is_array($id) ? $id['id'] : $id).") returning ".array2string($stat)); + //ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid',".array2string(is_array($id) ? $id['id'] : $id).") returning ".array2string($stat)); return $stat; } @@ -1273,8 +1301,9 @@ return array(); // temporary disabling meeting requests from calendar */ function AlterPingChanges($folderid, &$syncstate) { + $type = $owner = null; $this->backend->splitID($folderid, $type, $owner); - debugLog(__METHOD__."('$folderid','$syncstate') type='$type', owner=$owner"); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid','$syncstate') type='$type', owner=$owner"); if ($type != 'calendar') return false; @@ -1292,7 +1321,7 @@ return array(); // temporary disabling meeting requests from calendar $changes = array(array('type' => 'fakeChange')); } //error_log(__METHOD__."('$folderid','$syncstate_was') syncstate='$syncstate' returning ".array2string($changes)); - debugLog(__METHOD__."('$folderid','$syncstate_was') syncstate='$syncstate' returning ".array2string($changes)); + ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid','$syncstate_was') syncstate='$syncstate' returning ".array2string($changes)); return $changes; } @@ -1316,7 +1345,6 @@ return array(); // temporary disabling meeting requests from calendar * matching timezones for incomming timezone data. iPhone seems not to care on receiving about the above. * * @param string|DateTimeZone $tz timezone, timezone name (eg. "Europe/Berlin") or ical with VTIMEZONE - * @param int|string|DateTime $ts=null time for which active sync timezone data is requested, default current time * @return array with values for keys: * - "bias": timezone offset from UTC in minutes for NO DST * - "dstendmonth", "dstendday", "dstendweek", "dstendhour", "dstendminute", "dstendsecond", "dstendmillis" @@ -1327,7 +1355,7 @@ return array(); // temporary disabling meeting requests from calendar * @link http://download.microsoft.com/download/5/D/D/5DD33FDF-91F5-496D-9884-0A0B0EE698BB/%5BMS-ASDTYPE%5D.pdf * @throws egw_exception_assertion_failed if no vtimezone data found for given timezone */ - static public function tz2as($tz,$ts=null) + static public function tz2as($tz) { /* BEGIN:VTIMEZONE @@ -1366,12 +1394,13 @@ END:VTIMEZONE $name = $component = is_a($tz,'DateTimeZone') ? $tz->getName() : $tz; if (strpos($component, 'VTIMEZONE') === false) $component = calendar_timezones::tz2id($name,'component'); // parse ical timezone defintion - $ical = self::ical2array($ical=$component); + $ical = self::ical2array($component); $standard = $ical['VTIMEZONE']['STANDARD']; $daylight = $ical['VTIMEZONE']['DAYLIGHT']; if (!isset($standard)) { + $matches = null; if (preg_match('/^etc\/gmt([+-])([0-9]+)$/i',$name,$matches)) { $standard = array( @@ -1426,7 +1455,7 @@ END:VTIMEZONE if ($data['dststartmonth'] > $data['dstendmonth']) { $start = $data['dststarthour']; $data['dststarthour'] = $data['dstendhour']; $data['dstendhour'] = $start; - $start = $data['dststartminute']; $data['dststartminute'] = $data['dstendminute']; $data['dstendminute'] = $start; + $end = $data['dststartminute']; $data['dststartminute'] = $data['dstendminute']; $data['dstendminute'] = $end; } } //error_log(__METHOD__."('$name') returning ".array2string($data)); @@ -1481,10 +1510,9 @@ END:VTIMEZONE * ) * * @param string|array $ical lines of ical file - * @param string $component=null * @return array with parsed ical components */ - static public function ical2array(&$ical,$component=null) + static public function ical2array($ical) { $arr = array(); if (!is_array($ical)) $ical = preg_split("/[\r\n]+/m", $ical); @@ -1493,7 +1521,7 @@ END:VTIMEZONE list($name,$value) = explode(':',$line,2); if ($name == 'BEGIN') { - $arr[$value] = self::ical2array($ical,$value); + $arr[$value] = self::ical2array($ical); } elseif($name == 'END') { @@ -1519,7 +1547,7 @@ END:VTIMEZONE */ public static function as2tz(array $data) { - static $cache; // some caching withing the request + static $cache=null; // some caching withing the request unset($data['name']); // not used, but can stall the match @@ -1545,6 +1573,7 @@ END:VTIMEZONE } } catch(Exception $e) { + unset($e); // simpy ignore that, as it only means $tz can NOT be converted, because it has no VTIMEZONE component } } diff --git a/mail/inc/class.mail_zpush.inc.php b/mail/inc/class.mail_zpush.inc.php index 933ff4568f..1a5e4c4050 100644 --- a/mail/inc/class.mail_zpush.inc.php +++ b/mail/inc/class.mail_zpush.inc.php @@ -254,8 +254,6 @@ class mail_zpush implements activesync_plugin_write, activesync_plugin_sendmail, $this->_wasteID = false; $this->_sentID = false; - $connectionFailed = false; - if ($verify_mode) { $waitOnFailure = array(); @@ -1244,12 +1242,9 @@ class mail_zpush implements activesync_plugin_write, activesync_plugin_sendmail, ZLog::Write(LOGLEVEL_DEBUG,__METHOD__."($requestid, '$folderid', $response) iCal found, calling now backend->MeetingResponse('$attachment[attachment]')"); // calling backend again with iCal attachment, to let calendar add the event - if (($ret = $this->backend->MeetingResponse($attachment['attachment'], + $ret = $this->backend->MeetingResponse($attachment['attachment'], $this->backend->createID('calendar',$GLOBALS['egw_info']['user']['account_id']), - $response, $calendarid))) - { - $ret = $calendarid; - } + $response); break; } }