@@ -101,8 +101,7 @@ discard block |
||
| 101 | 101 | /** |
| 102 | 102 | * imports entries according to given definition object. |
| 103 | 103 | * @param resource $_stream |
| 104 | - * @param string $_charset |
|
| 105 | - * @param definition $_definition |
|
| 104 | + * @param importexport_definition $_definition |
|
| 106 | 105 | */ |
| 107 | 106 | public function import( $_stream, importexport_definition $_definition ) { |
| 108 | 107 | |
@@ -157,7 +156,6 @@ discard block |
||
| 157 | 156 | /** |
| 158 | 157 | * Add a warning message about conflicting events |
| 159 | 158 | * |
| 160 | - * @param int $record_num Current record index |
|
| 161 | 159 | * @param Array $conflicts List of found conflicting events |
| 162 | 160 | */ |
| 163 | 161 | public function conflict_warning(&$event, &$conflicts) |
@@ -15,19 +15,19 @@ discard block |
||
| 15 | 15 | /** |
| 16 | 16 | * import ical for calendar |
| 17 | 17 | */ |
| 18 | -class calendar_import_ical implements importexport_iface_import_plugin { |
|
| 18 | +class calendar_import_ical implements importexport_iface_import_plugin { |
|
| 19 | 19 | |
| 20 | 20 | private static $plugin_options = array( |
| 21 | - 'fieldsep', // char |
|
| 22 | - 'charset', // string |
|
| 23 | - 'owner', // int |
|
| 24 | - 'update_cats', // string {override|add} overides record |
|
| 21 | + 'fieldsep', // char |
|
| 22 | + 'charset', // string |
|
| 23 | + 'owner', // int |
|
| 24 | + 'update_cats', // string {override|add} overides record |
|
| 25 | 25 | // with cat(s) from csv OR add the cat from |
| 26 | 26 | // csv file to exeisting cat(s) of record |
| 27 | 27 | 'num_header_lines', // int number of header lines |
| 28 | 28 | 'field_conversion', // array( $csv_col_num => conversion) |
| 29 | - 'field_mapping', // array( $csv_col_num => adb_filed) |
|
| 30 | - 'conditions', /* => array containing condition arrays: |
|
| 29 | + 'field_mapping', // array( $csv_col_num => adb_filed) |
|
| 30 | + 'conditions', /* => array containing condition arrays: |
|
| 31 | 31 | 'type' => exists, // exists |
| 32 | 32 | 'string' => '#kundennummer', |
| 33 | 33 | 'true' => array( |
@@ -104,7 +104,7 @@ discard block |
||
| 104 | 104 | * @param string $_charset |
| 105 | 105 | * @param definition $_definition |
| 106 | 106 | */ |
| 107 | - public function import( $_stream, importexport_definition $_definition ) { |
|
| 107 | + public function import($_stream, importexport_definition $_definition) { |
|
| 108 | 108 | |
| 109 | 109 | $this->definition = $_definition; |
| 110 | 110 | |
@@ -112,20 +112,20 @@ discard block |
||
| 112 | 112 | $this->user = $GLOBALS['egw_info']['user']['account_id']; |
| 113 | 113 | |
| 114 | 114 | // dry run? |
| 115 | - $this->dry_run = isset( $_definition->plugin_options['dry_run'] ) ? $_definition->plugin_options['dry_run'] : false; |
|
| 115 | + $this->dry_run = isset($_definition->plugin_options['dry_run']) ? $_definition->plugin_options['dry_run'] : false; |
|
| 116 | 116 | |
| 117 | 117 | // fetch the addressbook bo |
| 118 | - $this->bo= new calendar_boupdate(); |
|
| 118 | + $this->bo = new calendar_boupdate(); |
|
| 119 | 119 | |
| 120 | 120 | |
| 121 | 121 | // Failures |
| 122 | 122 | $this->errors = array(); |
| 123 | 123 | |
| 124 | - @set_time_limit(0); // try switching execution time limit off |
|
| 124 | + @set_time_limit(0); // try switching execution time limit off |
|
| 125 | 125 | |
| 126 | 126 | $calendar_ical = new calendar_ical; |
| 127 | 127 | $calendar_ical->setSupportedFields('file', ''); |
| 128 | - if($this->dry_run) |
|
| 128 | + if ($this->dry_run) |
|
| 129 | 129 | { |
| 130 | 130 | // No real dry run for iCal |
| 131 | 131 | echo lang("No preview for iCal"); |
@@ -137,11 +137,11 @@ discard block |
||
| 137 | 137 | $_definition->plugin_options['no_notification'] = true; |
| 138 | 138 | } |
| 139 | 139 | // User wants conflicting events to not be imported |
| 140 | - if($_definition->plugin_options['skip_conflicts']) |
|
| 140 | + if ($_definition->plugin_options['skip_conflicts']) |
|
| 141 | 141 | { |
| 142 | 142 | $calendar_ical->conflict_callback = array($this, 'conflict_warning'); |
| 143 | 143 | } |
| 144 | - if (!$calendar_ical->importVCal($_stream, -1,null,false,0,'',null,null,null,$_definition->plugin_options['no_notification'])) |
|
| 144 | + if (!$calendar_ical->importVCal($_stream, -1, null, false, 0, '', null, null, null, $_definition->plugin_options['no_notification'])) |
|
| 145 | 145 | { |
| 146 | 146 | $this->errors[] = lang('Error: importing the iCal'); |
| 147 | 147 | } |
@@ -162,10 +162,10 @@ discard block |
||
| 162 | 162 | */ |
| 163 | 163 | public function conflict_warning(&$event, &$conflicts) |
| 164 | 164 | { |
| 165 | - $warning = EGroupware\Api\DateTime::to($event['start']) . ' ' . $event['title'] . ' ' . lang('Conflicts') . ':'; |
|
| 166 | - foreach($conflicts as $conflict) |
|
| 165 | + $warning = EGroupware\Api\DateTime::to($event['start']).' '.$event['title'].' '.lang('Conflicts').':'; |
|
| 166 | + foreach ($conflicts as $conflict) |
|
| 167 | 167 | { |
| 168 | - $warning .= "<br />\n" . EGroupware\Api\DateTime::to($conflict['start']) . "\t" . $conflict['title']; |
|
| 168 | + $warning .= "<br />\n".EGroupware\Api\DateTime::to($conflict['start'])."\t".$conflict['title']; |
|
| 169 | 169 | } |
| 170 | 170 | $this->warnings[] = $warning; |
| 171 | 171 | |
@@ -38,7 +38,7 @@ discard block |
||
| 38 | 38 | function wizard_step50(&$content, &$sel_options, &$readonlys, &$preserv) |
| 39 | 39 | { |
| 40 | 40 | $result = parent::wizard_step50($content, $sel_options, $readonlys, $preserv); |
| 41 | - $content['msg'] .= "\n*" ; |
|
| 41 | + $content['msg'] .= "\n*"; |
|
| 42 | 42 | |
| 43 | 43 | return $result; |
| 44 | 44 | } |
@@ -52,13 +52,13 @@ discard block |
||
| 52 | 52 | switch (array_search('pressed', $content['button'])) |
| 53 | 53 | { |
| 54 | 54 | case 'next': |
| 55 | - return $GLOBALS['egw']->importexport_definitions_ui->get_step($content['step'],1); |
|
| 55 | + return $GLOBALS['egw']->importexport_definitions_ui->get_step($content['step'], 1); |
|
| 56 | 56 | case 'previous' : |
| 57 | - return $GLOBALS['egw']->importexport_definitions_ui->get_step($content['step'],-1); |
|
| 57 | + return $GLOBALS['egw']->importexport_definitions_ui->get_step($content['step'], -1); |
|
| 58 | 58 | case 'finish': |
| 59 | 59 | return 'wizard_finish'; |
| 60 | 60 | default : |
| 61 | - return $this->wizard_step55($content,$sel_options,$readonlys,$preserv); |
|
| 61 | + return $this->wizard_step55($content, $sel_options, $readonlys, $preserv); |
|
| 62 | 62 | } |
| 63 | 63 | } |
| 64 | 64 | // init step30 |
@@ -66,7 +66,7 @@ discard block |
||
| 66 | 66 | { |
| 67 | 67 | $content['text'] = $this->steps['wizard_step55']; |
| 68 | 68 | $content['step'] = 'wizard_step55'; |
| 69 | - if(!$content['skip_conflicts'] && array_key_exists('skip_conflicts', $content['plugin_options'])) |
|
| 69 | + if (!$content['skip_conflicts'] && array_key_exists('skip_conflicts', $content['plugin_options'])) |
|
| 70 | 70 | { |
| 71 | 71 | $content['skip_conflicts'] = $content['plugin_options']['skip_conflicts']; |
| 72 | 72 | } |
@@ -36,7 +36,7 @@ discard block |
||
| 36 | 36 | // List each custom field |
| 37 | 37 | unset($this->mapping_fields['customfields']); |
| 38 | 38 | $custom = Api\Storage\Customfields::get('calendar'); |
| 39 | - foreach($custom as $name => $data) { |
|
| 39 | + foreach ($custom as $name => $data) { |
|
| 40 | 40 | $this->mapping_fields['#'.$name] = $data['label']; |
| 41 | 41 | } |
| 42 | 42 | |
@@ -56,7 +56,7 @@ discard block |
||
| 56 | 56 | function wizard_step50(&$content, &$sel_options, &$readonlys, &$preserv) |
| 57 | 57 | { |
| 58 | 58 | $result = parent::wizard_step50($content, $sel_options, $readonlys, $preserv); |
| 59 | - $content['msg'] .= "\n*" ; |
|
| 59 | + $content['msg'] .= "\n*"; |
|
| 60 | 60 | |
| 61 | 61 | return $result; |
| 62 | 62 | } |
@@ -71,7 +71,7 @@ discard block |
||
| 71 | 71 | 'id' => 'Calendar ID' |
| 72 | 72 | ); |
| 73 | 73 | |
| 74 | - if(!$content['skip_conflicts'] && $content['plugin_options']['skip_conflicts']) |
|
| 74 | + if (!$content['skip_conflicts'] && $content['plugin_options']['skip_conflicts']) |
|
| 75 | 75 | { |
| 76 | 76 | $content['skip_conflicts'] = $content['plugin_options']['skip_conflicts']; |
| 77 | 77 | } |
@@ -61,39 +61,39 @@ discard block |
||
| 61 | 61 | * @var array $priority_egw2ical conversion of the priority egw => ical |
| 62 | 62 | */ |
| 63 | 63 | var $priority_egw2ical = array( |
| 64 | - 0 => 0, // undefined |
|
| 65 | - 1 => 9, // low |
|
| 66 | - 2 => 5, // normal |
|
| 67 | - 3 => 1, // high |
|
| 64 | + 0 => 0, // undefined |
|
| 65 | + 1 => 9, // low |
|
| 66 | + 2 => 5, // normal |
|
| 67 | + 3 => 1, // high |
|
| 68 | 68 | ); |
| 69 | 69 | |
| 70 | 70 | /** |
| 71 | 71 | * @var array $priority_ical2egw conversion of the priority ical => egw |
| 72 | 72 | */ |
| 73 | 73 | var $priority_ical2egw = array( |
| 74 | - 0 => 0, // undefined |
|
| 75 | - 9 => 1, 8 => 1, 7 => 1, 6 => 1, // low |
|
| 76 | - 5 => 2, // normal |
|
| 77 | - 4 => 3, 3 => 3, 2 => 3, 1 => 3, // high |
|
| 74 | + 0 => 0, // undefined |
|
| 75 | + 9 => 1, 8 => 1, 7 => 1, 6 => 1, // low |
|
| 76 | + 5 => 2, // normal |
|
| 77 | + 4 => 3, 3 => 3, 2 => 3, 1 => 3, // high |
|
| 78 | 78 | ); |
| 79 | 79 | |
| 80 | 80 | /** |
| 81 | 81 | * @var array $priority_egw2funambol conversion of the priority egw => funambol |
| 82 | 82 | */ |
| 83 | 83 | var $priority_egw2funambol = array( |
| 84 | - 0 => 1, // undefined (mapped to normal since undefined does not exist) |
|
| 85 | - 1 => 0, // low |
|
| 86 | - 2 => 1, // normal |
|
| 87 | - 3 => 2, // high |
|
| 84 | + 0 => 1, // undefined (mapped to normal since undefined does not exist) |
|
| 85 | + 1 => 0, // low |
|
| 86 | + 2 => 1, // normal |
|
| 87 | + 3 => 2, // high |
|
| 88 | 88 | ); |
| 89 | 89 | |
| 90 | 90 | /** |
| 91 | 91 | * @var array $priority_funambol2egw conversion of the priority funambol => egw |
| 92 | 92 | */ |
| 93 | 93 | var $priority_funambol2egw = array( |
| 94 | - 0 => 1, // low |
|
| 95 | - 1 => 2, // normal |
|
| 96 | - 2 => 3, // high |
|
| 94 | + 0 => 1, // low |
|
| 95 | + 1 => 2, // normal |
|
| 96 | + 2 => 3, // high |
|
| 97 | 97 | ); |
| 98 | 98 | |
| 99 | 99 | /** |
@@ -163,7 +163,7 @@ discard block |
||
| 163 | 163 | * @var boolean |
| 164 | 164 | */ |
| 165 | 165 | var $log = false; |
| 166 | - var $logfile="/tmp/log-vcal"; |
|
| 166 | + var $logfile = "/tmp/log-vcal"; |
|
| 167 | 167 | |
| 168 | 168 | /** |
| 169 | 169 | * Conflict callback |
@@ -200,7 +200,7 @@ discard block |
||
| 200 | 200 | * @param int|string $current_user =0 uid of current user to only export that one as participant for method=REPLY |
| 201 | 201 | * @return string|boolean string with iCal or false on error (e.g. no permission to read the event) |
| 202 | 202 | */ |
| 203 | - function &exportVCal($events, $version='1.0', $method='PUBLISH', $recur_date=0, $principalURL='', $charset='UTF-8', $current_user=0) |
|
| 203 | + function &exportVCal($events, $version = '1.0', $method = 'PUBLISH', $recur_date = 0, $principalURL = '', $charset = 'UTF-8', $current_user = 0) |
|
| 204 | 204 | { |
| 205 | 205 | if ($this->log) |
| 206 | 206 | { |
@@ -231,13 +231,13 @@ discard block |
||
| 231 | 231 | |
| 232 | 232 | if (!is_array($this->supportedFields)) $this->setSupportedFields(); |
| 233 | 233 | |
| 234 | - if ($this->productManufacturer == '' ) |
|
| 234 | + if ($this->productManufacturer == '') |
|
| 235 | 235 | { // syncevolution is broken |
| 236 | 236 | $version = '2.0'; |
| 237 | 237 | } |
| 238 | 238 | |
| 239 | 239 | $vcal = new Horde_Icalendar; |
| 240 | - $vcal->setAttribute('PRODID','-//EGroupware//NONSGML EGroupware Calendar '.$GLOBALS['egw_info']['apps']['calendar']['version'].'//'. |
|
| 240 | + $vcal->setAttribute('PRODID', '-//EGroupware//NONSGML EGroupware Calendar '.$GLOBALS['egw_info']['apps']['calendar']['version'].'//'. |
|
| 241 | 241 | strtoupper($GLOBALS['egw_info']['user']['preferences']['common']['lang'])); |
| 242 | 242 | $vcal->setAttribute('VERSION', $version); |
| 243 | 243 | if ($method) $vcal->setAttribute('METHOD', $method); |
@@ -267,15 +267,15 @@ discard block |
||
| 267 | 267 | if ($this->log) |
| 268 | 268 | { |
| 269 | 269 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 270 | - '() User does not have the permission to read event ' . $event['id']. "\n", |
|
| 271 | - 3,$this->logfile); |
|
| 270 | + '() User does not have the permission to read event '.$event['id']."\n", |
|
| 271 | + 3, $this->logfile); |
|
| 272 | 272 | } |
| 273 | 273 | return -1; // Permission denied |
| 274 | 274 | } |
| 275 | 275 | } |
| 276 | 276 | else |
| 277 | 277 | { |
| 278 | - $retval = false; // Entry does not exist |
|
| 278 | + $retval = false; // Entry does not exist |
|
| 279 | 279 | if ($this->log) |
| 280 | 280 | { |
| 281 | 281 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
@@ -289,7 +289,7 @@ discard block |
||
| 289 | 289 | if ($this->log) |
| 290 | 290 | { |
| 291 | 291 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 292 | - '() export event UID: ' . $event['uid'] . ".\n", |
|
| 292 | + '() export event UID: '.$event['uid'].".\n", |
|
| 293 | 293 | 3, $this->logfile); |
| 294 | 294 | } |
| 295 | 295 | |
@@ -314,8 +314,8 @@ discard block |
||
| 314 | 314 | if ($this->log) |
| 315 | 315 | { |
| 316 | 316 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 317 | - '(' . $event['id']. ',' . $recurrence . ")\n" . |
|
| 318 | - array2string($event)."\n",3,$this->logfile); |
|
| 317 | + '('.$event['id'].','.$recurrence.")\n". |
|
| 318 | + array2string($event)."\n", 3, $this->logfile); |
|
| 319 | 319 | } |
| 320 | 320 | |
| 321 | 321 | if ($recurrence) |
@@ -336,7 +336,7 @@ discard block |
||
| 336 | 336 | { |
| 337 | 337 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 338 | 338 | "(, $recurrence) Gratuitous pseudo exception, skipped ...\n", |
| 339 | - 3,$this->logfile); |
|
| 339 | + 3, $this->logfile); |
|
| 340 | 340 | } |
| 341 | 341 | continue; // unsupported status only exception |
| 342 | 342 | } |
@@ -346,13 +346,13 @@ discard block |
||
| 346 | 346 | $days = $this->so->get_recurrence_exceptions($master, $tzid, 0, 0, 'rrule'); |
| 347 | 347 | if ($this->log) |
| 348 | 348 | { |
| 349 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."()\n" . |
|
| 350 | - array2string($days)."\n",3,$this->logfile); |
|
| 349 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."()\n". |
|
| 350 | + array2string($days)."\n", 3, $this->logfile); |
|
| 351 | 351 | } |
| 352 | 352 | $recurrence = $days[$recurrence]; // use remote representation |
| 353 | 353 | } |
| 354 | 354 | // force single event |
| 355 | - foreach (array('recur_enddate','recur_interval','recur_exception','recur_data','recur_date','id','etag') as $name) |
|
| 355 | + foreach (array('recur_enddate', 'recur_interval', 'recur_exception', 'recur_data', 'recur_date', 'id', 'etag') as $name) |
|
| 356 | 356 | { |
| 357 | 357 | unset($event[$name]); |
| 358 | 358 | } |
@@ -360,7 +360,7 @@ discard block |
||
| 360 | 360 | } |
| 361 | 361 | |
| 362 | 362 | // check if tzid of event (not only recuring ones) is already added to export |
| 363 | - if ($tzid && $tzid != 'UTC' && !in_array($tzid,$vtimezones_added)) |
|
| 363 | + if ($tzid && $tzid != 'UTC' && !in_array($tzid, $vtimezones_added)) |
|
| 364 | 364 | { |
| 365 | 365 | // check if we have vtimezone component data for tzid of event, if not default to user timezone (default to server tz) |
| 366 | 366 | if (calendar_timezones::add_vtimezone($vcal, $tzid) || |
@@ -378,7 +378,7 @@ discard block |
||
| 378 | 378 | { |
| 379 | 379 | // Append UID to DESCRIPTION |
| 380 | 380 | if (!preg_match('/\[UID:.+\]/m', $event['description'])) { |
| 381 | - $event['description'] .= "\n[UID:" . $event['uid'] . "]"; |
|
| 381 | + $event['description'] .= "\n[UID:".$event['uid']."]"; |
|
| 382 | 382 | } |
| 383 | 383 | } |
| 384 | 384 | |
@@ -399,14 +399,14 @@ discard block |
||
| 399 | 399 | $exceptions = array(); |
| 400 | 400 | |
| 401 | 401 | // dont use "virtual" exceptions created by participant status for GroupDAV or file export |
| 402 | - if (!in_array($this->productManufacturer,array('file','groupdav'))) |
|
| 402 | + if (!in_array($this->productManufacturer, array('file', 'groupdav'))) |
|
| 403 | 403 | { |
| 404 | 404 | $filter = isset($this->supportedFields['participants']) ? 'rrule' : 'tz_rrule'; |
| 405 | 405 | $exceptions = $this->so->get_recurrence_exceptions($event, $tzid, 0, 0, $filter); |
| 406 | 406 | if ($this->log) |
| 407 | 407 | { |
| 408 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."(EXCEPTIONS)\n" . |
|
| 409 | - array2string($exceptions)."\n",3,$this->logfile); |
|
| 408 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."(EXCEPTIONS)\n". |
|
| 409 | + array2string($exceptions)."\n", 3, $this->logfile); |
|
| 410 | 410 | } |
| 411 | 411 | } |
| 412 | 412 | elseif (is_array($event['recur_exception'])) |
@@ -423,8 +423,8 @@ discard block |
||
| 423 | 423 | if ($this->log) |
| 424 | 424 | { |
| 425 | 425 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 426 | - '(' . $event['id'] . ") [$icalFieldName] not supported\n", |
|
| 427 | - 3,$this->logfile); |
|
| 426 | + '('.$event['id'].") [$icalFieldName] not supported\n", |
|
| 427 | + 3, $this->logfile); |
|
| 428 | 428 | } |
| 429 | 429 | continue; |
| 430 | 430 | } |
@@ -441,23 +441,23 @@ discard block |
||
| 441 | 441 | |
| 442 | 442 | if (!($info = $this->resource_info($uid))) continue; |
| 443 | 443 | |
| 444 | - if (in_array($status, array('X','E'))) continue; // dont include deleted participants |
|
| 444 | + if (in_array($status, array('X', 'E'))) continue; // dont include deleted participants |
|
| 445 | 445 | |
| 446 | 446 | if ($this->log) |
| 447 | 447 | { |
| 448 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . |
|
| 449 | - '()attendee:' . array2string($info) ."\n",3,$this->logfile); |
|
| 448 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
|
| 449 | + '()attendee:'.array2string($info)."\n", 3, $this->logfile); |
|
| 450 | 450 | } |
| 451 | 451 | $participantCN = str_replace(array('\\', ',', ';', ':'), |
| 452 | 452 | array('\\\\', '\\,', '\\;', '\\:'), |
| 453 | 453 | trim(empty($info['cn']) ? $info['name'] : $info['cn'])); |
| 454 | 454 | if ($version == '1.0') |
| 455 | 455 | { |
| 456 | - $participantURL = trim('"' . $participantCN . '"' . (empty($info['email']) ? '' : ' <' . $info['email'] .'>')); |
|
| 456 | + $participantURL = trim('"'.$participantCN.'"'.(empty($info['email']) ? '' : ' <'.$info['email'].'>')); |
|
| 457 | 457 | } |
| 458 | 458 | else |
| 459 | 459 | { |
| 460 | - $participantURL = empty($info['email']) ? '' : 'mailto:' . $info['email']; |
|
| 460 | + $participantURL = empty($info['email']) ? '' : 'mailto:'.$info['email']; |
|
| 461 | 461 | } |
| 462 | 462 | // RSVP={TRUE|FALSE} // resonse expected, not set in eGW => status=U |
| 463 | 463 | $rsvp = $status == 'U' ? 'TRUE' : 'FALSE'; |
@@ -485,7 +485,7 @@ discard block |
||
| 485 | 485 | ($members = $GLOBALS['egw']->accounts->members($uid, true)) && in_array($this->user, $members)) |
| 486 | 486 | { |
| 487 | 487 | $user = $this->resource_info($this->user); |
| 488 | - $attributes['ATTENDEE'][] = 'mailto:' . $user['email']; |
|
| 488 | + $attributes['ATTENDEE'][] = 'mailto:'.$user['email']; |
|
| 489 | 489 | $parameters['ATTENDEE'][] = array( |
| 490 | 490 | 'CN' => $user['name'], |
| 491 | 491 | 'ROLE' => 'REQ-PARTICIPANT', |
@@ -527,7 +527,7 @@ discard block |
||
| 527 | 527 | if (!empty($rsvp)) $options['RSVP'] = $rsvp; |
| 528 | 528 | if (!empty($info['email']) && $participantURL != 'mailto:'.$info['email']) |
| 529 | 529 | { |
| 530 | - $options['EMAIL'] = $info['email']; // only add EMAIL attribute, if not already URL, as eg. Akonadi is reported to have problems with it |
|
| 530 | + $options['EMAIL'] = $info['email']; // only add EMAIL attribute, if not already URL, as eg. Akonadi is reported to have problems with it |
|
| 531 | 531 | } |
| 532 | 532 | if ($info['type'] != 'e') $options['X-EGROUPWARE-UID'] = (string)$uid; |
| 533 | 533 | if ($quantity > 1) $options['X-EGROUPWARE-QUANTITY'] = (string)$quantity; |
@@ -537,7 +537,7 @@ discard block |
||
| 537 | 537 | break; |
| 538 | 538 | |
| 539 | 539 | case 'CLASS': |
| 540 | - if ($event['public']) continue; // public is default, no need to export, fails CalDAVTester if added as default |
|
| 540 | + if ($event['public']) continue; // public is default, no need to export, fails CalDAVTester if added as default |
|
| 541 | 541 | $attributes['CLASS'] = $event['public'] ? 'PUBLIC' : 'PRIVATE'; |
| 542 | 542 | // Apple iCal on OS X uses X-CALENDARSERVER-ACCESS: CONFIDENTIAL on VCALANDAR (not VEVENT!) |
| 543 | 543 | if (!$event['public'] && $this->productManufacturer == 'groupdav') |
@@ -549,16 +549,16 @@ discard block |
||
| 549 | 549 | case 'ORGANIZER': |
| 550 | 550 | if (!$organizerURL) |
| 551 | 551 | { |
| 552 | - $organizerCN = '"' . trim($GLOBALS['egw']->accounts->id2name($event['owner'],'account_firstname') |
|
| 553 | - . ' ' . $GLOBALS['egw']->accounts->id2name($event['owner'],'account_lastname')) . '"'; |
|
| 554 | - $organizerEMail = $GLOBALS['egw']->accounts->id2name($event['owner'],'account_email'); |
|
| 552 | + $organizerCN = '"'.trim($GLOBALS['egw']->accounts->id2name($event['owner'], 'account_firstname') |
|
| 553 | + . ' '.$GLOBALS['egw']->accounts->id2name($event['owner'], 'account_lastname')).'"'; |
|
| 554 | + $organizerEMail = $GLOBALS['egw']->accounts->id2name($event['owner'], 'account_email'); |
|
| 555 | 555 | if ($version == '1.0') |
| 556 | 556 | { |
| 557 | - $organizerURL = trim($organizerCN . (empty($organizerURL) ? '' : ' <' . $organizerURL .'>')); |
|
| 557 | + $organizerURL = trim($organizerCN.(empty($organizerURL) ? '' : ' <'.$organizerURL.'>')); |
|
| 558 | 558 | } |
| 559 | 559 | else |
| 560 | 560 | { |
| 561 | - $organizerURL = empty($organizerEMail) ? '' : 'mailto:' . $organizerEMail; |
|
| 561 | + $organizerURL = empty($organizerEMail) ? '' : 'mailto:'.$organizerEMail; |
|
| 562 | 562 | } |
| 563 | 563 | $organizerUID = $event['owner']; |
| 564 | 564 | if (!isset($event['participants'][$event['owner']])) |
@@ -591,7 +591,7 @@ discard block |
||
| 591 | 591 | case 'DTSTART': |
| 592 | 592 | if (empty($event['whole_day'])) |
| 593 | 593 | { |
| 594 | - $attributes['DTSTART'] = self::getDateTime($event['start'],$tzid,$parameters['DTSTART']); |
|
| 594 | + $attributes['DTSTART'] = self::getDateTime($event['start'], $tzid, $parameters['DTSTART']); |
|
| 595 | 595 | } |
| 596 | 596 | break; |
| 597 | 597 | |
@@ -602,27 +602,27 @@ discard block |
||
| 602 | 602 | if ($tzid == 'UTC' && $event['end'] - $event['start'] <= 86400) |
| 603 | 603 | $attributes['duration'] = $event['end'] - $event['start']; |
| 604 | 604 | else |
| 605 | - $attributes['DTEND'] = self::getDateTime($event['end'],$tzid,$parameters['DTEND']); |
|
| 605 | + $attributes['DTEND'] = self::getDateTime($event['end'], $tzid, $parameters['DTEND']); |
|
| 606 | 606 | } |
| 607 | 607 | else |
| 608 | 608 | { |
| 609 | 609 | // write start + end of whole day events as dates |
| 610 | - $event['end-nextday'] = $event['end'] + 12*3600; // we need the date of the next day, as DTEND is non-inclusive (= exclusive) in rfc2445 |
|
| 611 | - foreach (array('start' => 'DTSTART','end-nextday' => 'DTEND') as $f => $t) |
|
| 610 | + $event['end-nextday'] = $event['end'] + 12 * 3600; // we need the date of the next day, as DTEND is non-inclusive (= exclusive) in rfc2445 |
|
| 611 | + foreach (array('start' => 'DTSTART', 'end-nextday' => 'DTEND') as $f => $t) |
|
| 612 | 612 | { |
| 613 | - $time = new egw_time($event[$f],egw_time::$server_timezone); |
|
| 614 | - $arr = egw_time::to($time,'array'); |
|
| 615 | - $vevent->setAttribute($t, array('year' => $arr['year'],'month' => $arr['month'],'mday' => $arr['day']), |
|
| 613 | + $time = new egw_time($event[$f], egw_time::$server_timezone); |
|
| 614 | + $arr = egw_time::to($time, 'array'); |
|
| 615 | + $vevent->setAttribute($t, array('year' => $arr['year'], 'month' => $arr['month'], 'mday' => $arr['day']), |
|
| 616 | 616 | array('VALUE' => 'DATE')); |
| 617 | 617 | } |
| 618 | 618 | unset($attributes['DTSTART']); |
| 619 | 619 | // Outlook does NOT care about type of DTSTART/END, only setting X-MICROSOFT-CDO-ALLDAYEVENT is used to determine an event is a whole-day event |
| 620 | - $vevent->setAttribute('X-MICROSOFT-CDO-ALLDAYEVENT','TRUE'); |
|
| 620 | + $vevent->setAttribute('X-MICROSOFT-CDO-ALLDAYEVENT', 'TRUE'); |
|
| 621 | 621 | } |
| 622 | 622 | break; |
| 623 | 623 | |
| 624 | 624 | case 'RRULE': |
| 625 | - if ($event['recur_type'] == MCAL_RECUR_NONE) break; // no recuring event |
|
| 625 | + if ($event['recur_type'] == MCAL_RECUR_NONE) break; // no recuring event |
|
| 626 | 626 | $rriter = calendar_rrule::event2rrule($event, false, $tzid); |
| 627 | 627 | $rrule = $rriter->generate_rrule($version); |
| 628 | 628 | if ($event['recur_enddate']) |
@@ -641,16 +641,16 @@ discard block |
||
| 641 | 641 | { |
| 642 | 642 | if ($event['recur_enddate'] && $tzid) |
| 643 | 643 | { |
| 644 | - $rrule['UNTIL'] = self::getDateTime($rrule['UNTIL'],$tzid); |
|
| 644 | + $rrule['UNTIL'] = self::getDateTime($rrule['UNTIL'], $tzid); |
|
| 645 | 645 | } |
| 646 | 646 | $attributes['RRULE'] = $rrule['FREQ'].' '.$rrule['UNTIL']; |
| 647 | 647 | } |
| 648 | 648 | else // $version == '2.0' |
| 649 | 649 | { |
| 650 | 650 | $attributes['RRULE'] = ''; |
| 651 | - foreach($rrule as $n => $v) |
|
| 651 | + foreach ($rrule as $n => $v) |
|
| 652 | 652 | { |
| 653 | - $attributes['RRULE'] .= ($attributes['RRULE']?';':'').$n.'='.$v; |
|
| 653 | + $attributes['RRULE'] .= ($attributes['RRULE'] ? ';' : '').$n.'='.$v; |
|
| 654 | 654 | } |
| 655 | 655 | } |
| 656 | 656 | break; |
@@ -665,7 +665,7 @@ discard block |
||
| 665 | 665 | { |
| 666 | 666 | // current Horde_Icalendar 2.1.4 exports EXDATE always in UTC, so we should not set a timezone here |
| 667 | 667 | // Apple calendar on OS X 10.11.4 uses a timezone, so does Horde eg. for Recurrence-ID |
| 668 | - $event['recur_exception'][$key] = self::getDateTime($timestamp,$tzid);//,$parameters['EXDATE']); |
|
| 668 | + $event['recur_exception'][$key] = self::getDateTime($timestamp, $tzid); //,$parameters['EXDATE']); |
|
| 669 | 669 | } |
| 670 | 670 | } |
| 671 | 671 | else |
@@ -673,9 +673,9 @@ discard block |
||
| 673 | 673 | // use 'DATE' instead of 'DATE-TIME' on whole day events |
| 674 | 674 | foreach ($event['recur_exception'] as $id => $timestamp) |
| 675 | 675 | { |
| 676 | - $time = new egw_time($timestamp,egw_time::$server_timezone); |
|
| 676 | + $time = new egw_time($timestamp, egw_time::$server_timezone); |
|
| 677 | 677 | $time->setTimezone(self::$tz_cache[$event['tzid']]); |
| 678 | - $arr = egw_time::to($time,'array'); |
|
| 678 | + $arr = egw_time::to($time, 'array'); |
|
| 679 | 679 | $days[$id] = array( |
| 680 | 680 | 'year' => $arr['year'], |
| 681 | 681 | 'month' => $arr['month'], |
@@ -690,21 +690,21 @@ discard block |
||
| 690 | 690 | break; |
| 691 | 691 | |
| 692 | 692 | case 'PRIORITY': |
| 693 | - if (!$event['priority']) continue; // 0=undefined is default, no need to export, fails CalDAVTester if our default is added |
|
| 693 | + if (!$event['priority']) continue; // 0=undefined is default, no need to export, fails CalDAVTester if our default is added |
|
| 694 | 694 | if ($this->productManufacturer == 'funambol' && |
| 695 | 695 | (strpos($this->productName, 'outlook') !== false |
| 696 | 696 | || strpos($this->productName, 'pocket pc') !== false)) |
| 697 | 697 | { |
| 698 | - $attributes['PRIORITY'] = (int) $this->priority_egw2funambol[$event['priority']]; |
|
| 698 | + $attributes['PRIORITY'] = (int)$this->priority_egw2funambol[$event['priority']]; |
|
| 699 | 699 | } |
| 700 | 700 | else |
| 701 | 701 | { |
| 702 | - $attributes['PRIORITY'] = (int) $this->priority_egw2ical[$event['priority']]; |
|
| 702 | + $attributes['PRIORITY'] = (int)$this->priority_egw2ical[$event['priority']]; |
|
| 703 | 703 | } |
| 704 | 704 | break; |
| 705 | 705 | |
| 706 | 706 | case 'TRANSP': |
| 707 | - if (!$event['non_blocking']) continue; // OPAQUE is default, no need to export, fails CalDAVTester if added as default |
|
| 707 | + if (!$event['non_blocking']) continue; // OPAQUE is default, no need to export, fails CalDAVTester if added as default |
|
| 708 | 708 | if ($version == '1.0') |
| 709 | 709 | { |
| 710 | 710 | $attributes['TRANSP'] = ($event['non_blocking'] ? 1 : 0); |
@@ -743,13 +743,13 @@ discard block |
||
| 743 | 743 | // We handle a pseudo exception |
| 744 | 744 | if (empty($event['whole_day'])) |
| 745 | 745 | { |
| 746 | - $attributes[$icalFieldName] = self::getDateTime($recur_date,$tzid,$parameters[$icalFieldName]); |
|
| 746 | + $attributes[$icalFieldName] = self::getDateTime($recur_date, $tzid, $parameters[$icalFieldName]); |
|
| 747 | 747 | } |
| 748 | 748 | else |
| 749 | 749 | { |
| 750 | - $time = new egw_time($recur_date,egw_time::$server_timezone); |
|
| 750 | + $time = new egw_time($recur_date, egw_time::$server_timezone); |
|
| 751 | 751 | $time->setTimezone(self::$tz_cache[$event['tzid']]); |
| 752 | - $arr = egw_time::to($time,'array'); |
|
| 752 | + $arr = egw_time::to($time, 'array'); |
|
| 753 | 753 | $vevent->setAttribute($icalFieldName, array( |
| 754 | 754 | 'year' => $arr['year'], |
| 755 | 755 | 'month' => $arr['month'], |
@@ -761,17 +761,17 @@ discard block |
||
| 761 | 761 | elseif ($event['recurrence'] && $event['reference']) |
| 762 | 762 | { |
| 763 | 763 | // $event['reference'] is a calendar_id, not a timestamp |
| 764 | - if (!($revent = $this->read($event['reference']))) break; // referenced event does not exist |
|
| 764 | + if (!($revent = $this->read($event['reference']))) break; // referenced event does not exist |
|
| 765 | 765 | |
| 766 | 766 | if (empty($revent['whole_day'])) |
| 767 | 767 | { |
| 768 | - $attributes[$icalFieldName] = self::getDateTime($event['recurrence'],$tzid,$parameters[$icalFieldName]); |
|
| 768 | + $attributes[$icalFieldName] = self::getDateTime($event['recurrence'], $tzid, $parameters[$icalFieldName]); |
|
| 769 | 769 | } |
| 770 | 770 | else |
| 771 | 771 | { |
| 772 | - $time = new egw_time($event['recurrence'],egw_time::$server_timezone); |
|
| 772 | + $time = new egw_time($event['recurrence'], egw_time::$server_timezone); |
|
| 773 | 773 | $time->setTimezone(self::$tz_cache[$event['tzid']]); |
| 774 | - $arr = egw_time::to($time,'array'); |
|
| 774 | + $arr = egw_time::to($time, 'array'); |
|
| 775 | 775 | $vevent->setAttribute($icalFieldName, array( |
| 776 | 776 | 'year' => $arr['year'], |
| 777 | 777 | 'month' => $arr['month'], |
@@ -795,9 +795,9 @@ discard block |
||
| 795 | 795 | $noTruncate = $this->clientProperties[$icalFieldName]['NoTruncate']; |
| 796 | 796 | if ($this->log && $size > 0) |
| 797 | 797 | { |
| 798 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . |
|
| 799 | - "() $icalFieldName Size: $size, NoTruncate: " . |
|
| 800 | - ($noTruncate ? 'TRUE' : 'FALSE') . "\n",3,$this->logfile); |
|
| 798 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
|
| 799 | + "() $icalFieldName Size: $size, NoTruncate: ". |
|
| 800 | + ($noTruncate ? 'TRUE' : 'FALSE')."\n", 3, $this->logfile); |
|
| 801 | 801 | } |
| 802 | 802 | //Horde::logMessage("vCalendar $icalFieldName Size: $size, NoTruncate: " . |
| 803 | 803 | // ($noTruncate ? 'TRUE' : 'FALSE'), __FILE__, __LINE__, PEAR_LOG_DEBUG); |
@@ -815,8 +815,8 @@ discard block |
||
| 815 | 815 | { |
| 816 | 816 | if ($this->log) |
| 817 | 817 | { |
| 818 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . |
|
| 819 | - "() $icalFieldName omitted due to maximum size $size\n",3,$this->logfile); |
|
| 818 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
|
| 819 | + "() $icalFieldName omitted due to maximum size $size\n", 3, $this->logfile); |
|
| 820 | 820 | } |
| 821 | 821 | //Horde::logMessage("vCalendar $icalFieldName omitted due to maximum size $size", |
| 822 | 822 | // __FILE__, __LINE__, PEAR_LOG_WARNING); |
@@ -826,8 +826,8 @@ discard block |
||
| 826 | 826 | $value = substr($value, 0, $size - 1); |
| 827 | 827 | if ($this->log) |
| 828 | 828 | { |
| 829 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . |
|
| 830 | - "() $icalFieldName truncated to maximum size $size\n",3,$this->logfile); |
|
| 829 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
|
| 830 | + "() $icalFieldName truncated to maximum size $size\n", 3, $this->logfile); |
|
| 831 | 831 | } |
| 832 | 832 | //Horde::logMessage("vCalendar $icalFieldName truncated to maximum size $size", |
| 833 | 833 | // __FILE__, __LINE__, PEAR_LOG_INFO); |
@@ -842,7 +842,7 @@ discard block |
||
| 842 | 842 | // for CalDAV add all X-Properties previously parsed |
| 843 | 843 | if ($this->productManufacturer == 'groupdav' || $this->productManufacturer == 'file') |
| 844 | 844 | { |
| 845 | - foreach($event as $name => $value) |
|
| 845 | + foreach ($event as $name => $value) |
|
| 846 | 846 | { |
| 847 | 847 | if (substr($name, 0, 2) == '##') |
| 848 | 848 | { |
@@ -914,8 +914,8 @@ discard block |
||
| 914 | 914 | $values['AALARM']['repeat count'] = ''; |
| 915 | 915 | $values['AALARM']['display text'] = $description; |
| 916 | 916 | } |
| 917 | - $attributes['DALARM'] = self::getDateTime($alarmData['time'],$tzid,$parameters['DALARM']); |
|
| 918 | - $attributes['AALARM'] = self::getDateTime($alarmData['time'],$tzid,$parameters['AALARM']); |
|
| 917 | + $attributes['DALARM'] = self::getDateTime($alarmData['time'], $tzid, $parameters['DALARM']); |
|
| 918 | + $attributes['AALARM'] = self::getDateTime($alarmData['time'], $tzid, $parameters['AALARM']); |
|
| 919 | 919 | // lets take only the first alarm |
| 920 | 920 | break; |
| 921 | 921 | } |
@@ -952,7 +952,7 @@ discard block |
||
| 952 | 952 | $alarmData['offset'] = false; |
| 953 | 953 | } |
| 954 | 954 | |
| 955 | - $valarm = Horde_Icalendar::newComponent('VALARM',$vevent); |
|
| 955 | + $valarm = Horde_Icalendar::newComponent('VALARM', $vevent); |
|
| 956 | 956 | if ($alarmData['offset'] !== false) |
| 957 | 957 | { |
| 958 | 958 | $valarm->setAttribute('TRIGGER', -$alarmData['offset'], |
@@ -961,7 +961,7 @@ discard block |
||
| 961 | 961 | else |
| 962 | 962 | { |
| 963 | 963 | $params = array('VALUE' => 'DATE-TIME'); |
| 964 | - $value = self::getDateTime($alarmData['time'],$tzid,$params); |
|
| 964 | + $value = self::getDateTime($alarmData['time'], $tzid, $params); |
|
| 965 | 965 | $valarm->setAttribute('TRIGGER', $value, $params); |
| 966 | 966 | } |
| 967 | 967 | if (!empty($alarmData['uid'])) |
@@ -972,7 +972,7 @@ discard block |
||
| 972 | 972 | // set evtl. existing attributes set by iCal clients not used by EGroupware |
| 973 | 973 | if (isset($alarmData['attrs'])) |
| 974 | 974 | { |
| 975 | - foreach($alarmData['attrs'] as $attr => $data) |
|
| 975 | + foreach ($alarmData['attrs'] as $attr => $data) |
|
| 976 | 976 | { |
| 977 | 977 | $valarm->setAttribute($attr, $data['value'], $data['params']); |
| 978 | 978 | } |
@@ -980,11 +980,11 @@ discard block |
||
| 980 | 980 | // set default ACTION and DESCRIPTION, if not set by a client |
| 981 | 981 | if (!isset($alarmData['attrs']) || !isset($alarmData['attrs']['ACTION'])) |
| 982 | 982 | { |
| 983 | - $valarm->setAttribute('ACTION','DISPLAY'); |
|
| 983 | + $valarm->setAttribute('ACTION', 'DISPLAY'); |
|
| 984 | 984 | } |
| 985 | 985 | if (!isset($alarmData['attrs']) || !isset($alarmData['attrs']['DESCRIPTION'])) |
| 986 | 986 | { |
| 987 | - $valarm->setAttribute('DESCRIPTION',$event['title'] ? $event['title'] : $description); |
|
| 987 | + $valarm->setAttribute('DESCRIPTION', $event['title'] ? $event['title'] : $description); |
|
| 988 | 988 | } |
| 989 | 989 | $vevent->addComponent($valarm); |
| 990 | 990 | } |
@@ -992,15 +992,15 @@ discard block |
||
| 992 | 992 | |
| 993 | 993 | foreach ($attributes as $key => $value) |
| 994 | 994 | { |
| 995 | - foreach (is_array($value) && $parameters[$key]['VALUE']!='DATE' ? $value : array($value) as $valueID => $valueData) |
|
| 995 | + foreach (is_array($value) && $parameters[$key]['VALUE'] != 'DATE' ? $value : array($value) as $valueID => $valueData) |
|
| 996 | 996 | { |
| 997 | - $valueData = translation::convert($valueData,translation::charset(),$charset); |
|
| 998 | - $paramData = (array) translation::convert(is_array($value) ? |
|
| 997 | + $valueData = translation::convert($valueData, translation::charset(), $charset); |
|
| 998 | + $paramData = (array)translation::convert(is_array($value) ? |
|
| 999 | 999 | $parameters[$key][$valueID] : $parameters[$key], |
| 1000 | - translation::charset(),$charset); |
|
| 1001 | - $valuesData = (array) translation::convert($values[$key], |
|
| 1002 | - translation::charset(),$charset); |
|
| 1003 | - $content = $valueData . implode(';', $valuesData); |
|
| 1000 | + translation::charset(), $charset); |
|
| 1001 | + $valuesData = (array)translation::convert($values[$key], |
|
| 1002 | + translation::charset(), $charset); |
|
| 1003 | + $content = $valueData.implode(';', $valuesData); |
|
| 1004 | 1004 | |
| 1005 | 1005 | if ($version == '1.0' && (preg_match('/[^\x20-\x7F]/', $content) || |
| 1006 | 1006 | ($paramData['CN'] && preg_match('/[^\x20-\x7F]/', $paramData['CN'])))) |
@@ -1050,10 +1050,10 @@ discard block |
||
| 1050 | 1050 | $retval = $events_exported ? $vcal->exportvCalendar() : false; |
| 1051 | 1051 | if ($this->log) |
| 1052 | 1052 | { |
| 1053 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . |
|
| 1054 | - "() '$this->productManufacturer','$this->productName'\n",3,$this->logfile); |
|
| 1055 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . |
|
| 1056 | - "()\n".array2string($retval)."\n",3,$this->logfile); |
|
| 1053 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
|
| 1054 | + "() '$this->productManufacturer','$this->productName'\n", 3, $this->logfile); |
|
| 1055 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
|
| 1056 | + "()\n".array2string($retval)."\n", 3, $this->logfile); |
|
| 1057 | 1057 | } |
| 1058 | 1058 | return $retval; |
| 1059 | 1059 | } |
@@ -1066,15 +1066,15 @@ discard block |
||
| 1066 | 1066 | * @param array &$params=null parameter array to set TZID |
| 1067 | 1067 | * @return mixed attribute value to set: integer timestamp if $tzid == 'UTC' otherwise Ymd\THis string IN $tzid |
| 1068 | 1068 | */ |
| 1069 | - static function getDateTime($time,$tzid,array &$params=null) |
|
| 1069 | + static function getDateTime($time, $tzid, array &$params = null) |
|
| 1070 | 1070 | { |
| 1071 | 1071 | if (empty($tzid) || $tzid == 'UTC') |
| 1072 | 1072 | { |
| 1073 | - return egw_time::to($time,'ts'); |
|
| 1073 | + return egw_time::to($time, 'ts'); |
|
| 1074 | 1074 | } |
| 1075 | - if (!is_a($time,'DateTime')) |
|
| 1075 | + if (!is_a($time, 'DateTime')) |
|
| 1076 | 1076 | { |
| 1077 | - $time = new egw_time($time,egw_time::$server_timezone); |
|
| 1077 | + $time = new egw_time($time, egw_time::$server_timezone); |
|
| 1078 | 1078 | } |
| 1079 | 1079 | if (!isset(self::$tz_cache[$tzid])) |
| 1080 | 1080 | { |
@@ -1109,11 +1109,11 @@ discard block |
||
| 1109 | 1109 | * @param string $caldav_name=null name from CalDAV client or null (to use default) |
| 1110 | 1110 | * @return int|boolean|null cal_id > 0 on success, false on failure or 0 for a failed etag|permission denied or null for "403 Forbidden" |
| 1111 | 1111 | */ |
| 1112 | - function importVCal($_vcalData, $cal_id=-1, $etag=null, $merge=false, $recur_date=0, $principalURL='', $user=null, $charset=null, $caldav_name=null,$skip_notification=false) |
|
| 1112 | + function importVCal($_vcalData, $cal_id = -1, $etag = null, $merge = false, $recur_date = 0, $principalURL = '', $user = null, $charset = null, $caldav_name = null, $skip_notification = false) |
|
| 1113 | 1113 | { |
| 1114 | 1114 | //error_log(__METHOD__."(, $cal_id, $etag, $merge, $recur_date, $principalURL, $user, $charset, $caldav_name)"); |
| 1115 | 1115 | $this->events_imported = 0; |
| 1116 | - $replace = $delete_exceptions= false; |
|
| 1116 | + $replace = $delete_exceptions = false; |
|
| 1117 | 1117 | |
| 1118 | 1118 | if (!is_array($this->supportedFields)) $this->setSupportedFields(); |
| 1119 | 1119 | |
@@ -1121,7 +1121,7 @@ discard block |
||
| 1121 | 1121 | { |
| 1122 | 1122 | return false; |
| 1123 | 1123 | } |
| 1124 | - if (!is_array($events)) $cal_id = -1; // just to be sure, as iterator does NOT allow array access (eg. $events[0]) |
|
| 1124 | + if (!is_array($events)) $cal_id = -1; // just to be sure, as iterator does NOT allow array access (eg. $events[0]) |
|
| 1125 | 1125 | |
| 1126 | 1126 | if ($cal_id > 0) |
| 1127 | 1127 | { |
@@ -1129,7 +1129,7 @@ discard block |
||
| 1129 | 1129 | { |
| 1130 | 1130 | $replace = $recur_date == 0; |
| 1131 | 1131 | $events[0]['id'] = $cal_id; |
| 1132 | - if (!is_null($etag)) $events[0]['etag'] = (int) $etag; |
|
| 1132 | + if (!is_null($etag)) $events[0]['etag'] = (int)$etag; |
|
| 1133 | 1133 | if ($recur_date) $events[0]['recurrence'] = $recur_date; |
| 1134 | 1134 | } |
| 1135 | 1135 | elseif (($foundEvent = $this->find_event(array('id' => $cal_id), 'exact')) && |
@@ -1181,7 +1181,7 @@ discard block |
||
| 1181 | 1181 | { |
| 1182 | 1182 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 1183 | 1183 | ."($cal_id, $etag, $recur_date, $principalURL, $user, $charset)\n" |
| 1184 | - . array2string($event)."\n",3,$this->logfile); |
|
| 1184 | + . array2string($event)."\n", 3, $this->logfile); |
|
| 1185 | 1185 | } |
| 1186 | 1186 | |
| 1187 | 1187 | $updated_id = false; |
@@ -1204,14 +1204,14 @@ discard block |
||
| 1204 | 1204 | { |
| 1205 | 1205 | if ($delete_exceptions) |
| 1206 | 1206 | { |
| 1207 | - $this->delete($id,0,false,$skip_notification); |
|
| 1207 | + $this->delete($id, 0, false, $skip_notification); |
|
| 1208 | 1208 | } |
| 1209 | 1209 | else |
| 1210 | 1210 | { |
| 1211 | 1211 | if (!($exception = $this->read($id))) continue; |
| 1212 | 1212 | $exception['uid'] = common::generate_uid('calendar', $id); |
| 1213 | 1213 | $exception['reference'] = $exception['recurrence'] = 0; |
| 1214 | - $this->update($exception, true,true,false,true,$msg,$skip_notification); |
|
| 1214 | + $this->update($exception, true, true, false, true, $msg, $skip_notification); |
|
| 1215 | 1215 | } |
| 1216 | 1216 | } |
| 1217 | 1217 | } |
@@ -1228,7 +1228,7 @@ discard block |
||
| 1228 | 1228 | { |
| 1229 | 1229 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 1230 | 1230 | . "(UPDATE Event)\n" |
| 1231 | - . array2string($event_info['stored_event'])."\n",3,$this->logfile); |
|
| 1231 | + . array2string($event_info['stored_event'])."\n", 3, $this->logfile); |
|
| 1232 | 1232 | } |
| 1233 | 1233 | if (empty($event['uid'])) |
| 1234 | 1234 | { |
@@ -1250,7 +1250,7 @@ discard block |
||
| 1250 | 1250 | if ($this->log) |
| 1251 | 1251 | { |
| 1252 | 1252 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1253 | - "() Restore status for $uid\n",3,$this->logfile); |
|
| 1253 | + "() Restore status for $uid\n", 3, $this->logfile); |
|
| 1254 | 1254 | } |
| 1255 | 1255 | $event['participants'][$uid] = $event_info['stored_event']['participants'][$uid]; |
| 1256 | 1256 | } |
@@ -1274,7 +1274,7 @@ discard block |
||
| 1274 | 1274 | if ($this->log) |
| 1275 | 1275 | { |
| 1276 | 1276 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1277 | - "()[MERGE]\n",3,$this->logfile); |
|
| 1277 | + "()[MERGE]\n", 3, $this->logfile); |
|
| 1278 | 1278 | } |
| 1279 | 1279 | // overwrite with server data for merge |
| 1280 | 1280 | foreach ($event_info['stored_event'] as $key => $value) |
@@ -1304,7 +1304,7 @@ discard block |
||
| 1304 | 1304 | else |
| 1305 | 1305 | { |
| 1306 | 1306 | // no merge |
| 1307 | - if(!isset($this->supportedFields['category']) || !isset($event['category'])) |
|
| 1307 | + if (!isset($this->supportedFields['category']) || !isset($event['category'])) |
|
| 1308 | 1308 | { |
| 1309 | 1309 | $event['category'] = $event_info['stored_event']['category']; |
| 1310 | 1310 | } |
@@ -1316,7 +1316,7 @@ discard block |
||
| 1316 | 1316 | if ($this->log) |
| 1317 | 1317 | { |
| 1318 | 1318 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1319 | - "() No participants\n",3,$this->logfile); |
|
| 1319 | + "() No participants\n", 3, $this->logfile); |
|
| 1320 | 1320 | } |
| 1321 | 1321 | |
| 1322 | 1322 | // If this is an updated meeting, and the client doesn't support |
@@ -1335,7 +1335,7 @@ discard block |
||
| 1335 | 1335 | if ($this->log) |
| 1336 | 1336 | { |
| 1337 | 1337 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1338 | - "() Restore resource $uid to status $status\n",3,$this->logfile); |
|
| 1338 | + "() Restore resource $uid to status $status\n", 3, $this->logfile); |
|
| 1339 | 1339 | } |
| 1340 | 1340 | // Add it back in |
| 1341 | 1341 | $event['participants'][$uid] = $status; |
@@ -1423,8 +1423,7 @@ discard block |
||
| 1423 | 1423 | } |
| 1424 | 1424 | // for resources check which new-status to give (eg. with direct booking permision 'A' instead 'U') |
| 1425 | 1425 | $event['participants'][$user] = calendar_so::combine_status( |
| 1426 | - $user < 0 || !isset($this->resources[$user[0]]['new_status']) ? 'U' : |
|
| 1427 | - ExecMethod($this->resources[$user[0]]['new_status'], substr($user, 1))); |
|
| 1426 | + $user < 0 || !isset($this->resources[$user[0]]['new_status']) ? 'U' : ExecMethod($this->resources[$user[0]]['new_status'], substr($user, 1))); |
|
| 1428 | 1427 | } |
| 1429 | 1428 | } |
| 1430 | 1429 | // check if an owner is set and the current user has add rights |
@@ -1489,9 +1488,9 @@ discard block |
||
| 1489 | 1488 | |
| 1490 | 1489 | if ($this->log) |
| 1491 | 1490 | { |
| 1492 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . '(' |
|
| 1493 | - . $event_info['type'] . ")\n" |
|
| 1494 | - . array2string($event)."\n",3,$this->logfile); |
|
| 1491 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.'(' |
|
| 1492 | + . $event_info['type'].")\n" |
|
| 1493 | + . array2string($event)."\n", 3, $this->logfile); |
|
| 1495 | 1494 | } |
| 1496 | 1495 | |
| 1497 | 1496 | // Android (any maybe others) delete recurrences by setting STATUS: CANCELLED |
@@ -1499,10 +1498,10 @@ discard block |
||
| 1499 | 1498 | if (in_array($event_info['type'], array('SERIES-EXCEPTION', 'SERIES-EXCEPTION-PROPAGATE', 'SERIES-PSEUDO-EXCEPTION')) && |
| 1500 | 1499 | $event['status'] == 'CANCELLED') |
| 1501 | 1500 | { |
| 1502 | - if (!$this->delete($event['id'] ? $event['id'] : $cal_id, $event['recurrence'],false,$skip_notification)) |
|
| 1501 | + if (!$this->delete($event['id'] ? $event['id'] : $cal_id, $event['recurrence'], false, $skip_notification)) |
|
| 1503 | 1502 | { |
| 1504 | 1503 | // delete fails (because no rights), reject recurrence |
| 1505 | - $this->set_status($event['id'] ? $event['id'] : $cal_id, $this->user, 'R', $event['recurrence'],false,true,$skip_notification); |
|
| 1504 | + $this->set_status($event['id'] ? $event['id'] : $cal_id, $this->user, 'R', $event['recurrence'], false, true, $skip_notification); |
|
| 1506 | 1505 | } |
| 1507 | 1506 | continue; |
| 1508 | 1507 | } |
@@ -1514,7 +1513,7 @@ discard block |
||
| 1514 | 1513 | if ($this->log) |
| 1515 | 1514 | { |
| 1516 | 1515 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1517 | - "(): event SINGLE\n",3,$this->logfile); |
|
| 1516 | + "(): event SINGLE\n", 3, $this->logfile); |
|
| 1518 | 1517 | } |
| 1519 | 1518 | |
| 1520 | 1519 | // update the event |
@@ -1524,7 +1523,7 @@ discard block |
||
| 1524 | 1523 | $event['reference'] = 0; |
| 1525 | 1524 | $event_to_store = $event; // prevent $event from being changed by the update method |
| 1526 | 1525 | $this->server2usertime($event_to_store); |
| 1527 | - $updated_id = $this->update($event_to_store, true,true,false,true,$msg,$skip_notification); |
|
| 1526 | + $updated_id = $this->update($event_to_store, true, true, false, true, $msg, $skip_notification); |
|
| 1528 | 1527 | unset($event_to_store); |
| 1529 | 1528 | } |
| 1530 | 1529 | break; |
@@ -1533,7 +1532,7 @@ discard block |
||
| 1533 | 1532 | if ($this->log) |
| 1534 | 1533 | { |
| 1535 | 1534 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1536 | - "(): event SERIES-MASTER\n",3,$this->logfile); |
|
| 1535 | + "(): event SERIES-MASTER\n", 3, $this->logfile); |
|
| 1537 | 1536 | } |
| 1538 | 1537 | |
| 1539 | 1538 | // remove all known pseudo exceptions and update the event |
@@ -1543,8 +1542,8 @@ discard block |
||
| 1543 | 1542 | $days = $this->so->get_recurrence_exceptions($event_info['stored_event'], $this->tzid, 0, 0, $filter); |
| 1544 | 1543 | if ($this->log) |
| 1545 | 1544 | { |
| 1546 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."(EXCEPTIONS MAPPING):\n" . |
|
| 1547 | - array2string($days)."\n",3,$this->logfile); |
|
| 1545 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."(EXCEPTIONS MAPPING):\n". |
|
| 1546 | + array2string($days)."\n", 3, $this->logfile); |
|
| 1548 | 1547 | } |
| 1549 | 1548 | if (is_array($days)) |
| 1550 | 1549 | { |
@@ -1562,7 +1561,7 @@ discard block |
||
| 1562 | 1561 | |
| 1563 | 1562 | $event_to_store = $event; // prevent $event from being changed by the update method |
| 1564 | 1563 | $this->server2usertime($event_to_store); |
| 1565 | - $updated_id = $this->update($event_to_store, true,true,false,true,$msg,$skip_notification); |
|
| 1564 | + $updated_id = $this->update($event_to_store, true, true, false, true, $msg, $skip_notification); |
|
| 1566 | 1565 | unset($event_to_store); |
| 1567 | 1566 | } |
| 1568 | 1567 | break; |
@@ -1572,7 +1571,7 @@ discard block |
||
| 1572 | 1571 | if ($this->log) |
| 1573 | 1572 | { |
| 1574 | 1573 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1575 | - "(): event SERIES-EXCEPTION\n",3,$this->logfile); |
|
| 1574 | + "(): event SERIES-EXCEPTION\n", 3, $this->logfile); |
|
| 1576 | 1575 | } |
| 1577 | 1576 | |
| 1578 | 1577 | // update event |
@@ -1628,13 +1627,13 @@ discard block |
||
| 1628 | 1627 | $event['owner'] = $event_info['master_event']['owner']; |
| 1629 | 1628 | $event_to_store = $event_info['master_event']; // prevent the master_event from being changed by the update method |
| 1630 | 1629 | $this->server2usertime($event_to_store); |
| 1631 | - $this->update($event_to_store, true,true,false,true,$msg,$skip_notification); |
|
| 1630 | + $this->update($event_to_store, true, true, false, true, $msg, $skip_notification); |
|
| 1632 | 1631 | unset($event_to_store); |
| 1633 | 1632 | } |
| 1634 | 1633 | |
| 1635 | 1634 | $event_to_store = $event; // prevent $event from being changed by update method |
| 1636 | 1635 | $this->server2usertime($event_to_store); |
| 1637 | - $updated_id = $this->update($event_to_store, true,true,false,true,$msg,$skip_notification); |
|
| 1636 | + $updated_id = $this->update($event_to_store, true, true, false, true, $msg, $skip_notification); |
|
| 1638 | 1637 | unset($event_to_store); |
| 1639 | 1638 | } |
| 1640 | 1639 | break; |
@@ -1643,7 +1642,7 @@ discard block |
||
| 1643 | 1642 | if ($this->log) |
| 1644 | 1643 | { |
| 1645 | 1644 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 1646 | - "(): event SERIES-PSEUDO-EXCEPTION\n",3,$this->logfile); |
|
| 1645 | + "(): event SERIES-PSEUDO-EXCEPTION\n", 3, $this->logfile); |
|
| 1647 | 1646 | } |
| 1648 | 1647 | //Horde::logMessage('importVCAL event SERIES-PSEUDO-EXCEPTION', |
| 1649 | 1648 | // __FILE__, __LINE__, PEAR_LOG_DEBUG); |
@@ -1664,7 +1663,7 @@ discard block |
||
| 1664 | 1663 | // save the series master with the adjusted exceptions |
| 1665 | 1664 | $event_to_store = $event_info['master_event']; // prevent the master_event from being changed by the update method |
| 1666 | 1665 | $this->server2usertime($event_to_store); |
| 1667 | - $updated_id = $this->update($event_to_store, true, true, false, false,$msg,$skip_notification); |
|
| 1666 | + $updated_id = $this->update($event_to_store, true, true, false, false, $msg, $skip_notification); |
|
| 1668 | 1667 | unset($event_to_store); |
| 1669 | 1668 | } |
| 1670 | 1669 | |
@@ -1691,13 +1690,13 @@ discard block |
||
| 1691 | 1690 | if ($event_info['acl_edit']) |
| 1692 | 1691 | { |
| 1693 | 1692 | // update all participants if we have the right to do that |
| 1694 | - $this->update_status($event, $event_info['stored_event'],0,$skip_notification); |
|
| 1693 | + $this->update_status($event, $event_info['stored_event'], 0, $skip_notification); |
|
| 1695 | 1694 | } |
| 1696 | 1695 | elseif (isset($event['participants'][$this->user]) || isset($event_info['stored_event']['participants'][$this->user])) |
| 1697 | 1696 | { |
| 1698 | 1697 | // update the users status only |
| 1699 | 1698 | $this->set_status($event_info['stored_event']['id'], $this->user, |
| 1700 | - ($event['participants'][$this->user] ? $event['participants'][$this->user] : 'R'), 0, true,true,$skip_notification); |
|
| 1699 | + ($event['participants'][$this->user] ? $event['participants'][$this->user] : 'R'), 0, true, true, $skip_notification); |
|
| 1701 | 1700 | } |
| 1702 | 1701 | } |
| 1703 | 1702 | break; |
@@ -1709,13 +1708,13 @@ discard block |
||
| 1709 | 1708 | if ($event_info['acl_edit']) |
| 1710 | 1709 | { |
| 1711 | 1710 | // update all participants if we have the right to do that |
| 1712 | - $this->update_status($event, $event_info['stored_event'], $recurrence,$skip_notification); |
|
| 1711 | + $this->update_status($event, $event_info['stored_event'], $recurrence, $skip_notification); |
|
| 1713 | 1712 | } |
| 1714 | 1713 | elseif (isset($event['participants'][$this->user]) || isset($event_info['master_event']['participants'][$this->user])) |
| 1715 | 1714 | { |
| 1716 | 1715 | // update the users status only |
| 1717 | 1716 | $this->set_status($event_info['master_event']['id'], $this->user, |
| 1718 | - ($event['participants'][$this->user] ? $event['participants'][$this->user] : 'R'), $recurrence, true,true,$skip_notification); |
|
| 1717 | + ($event['participants'][$this->user] ? $event['participants'][$this->user] : 'R'), $recurrence, true, true, $skip_notification); |
|
| 1719 | 1718 | } |
| 1720 | 1719 | } |
| 1721 | 1720 | break; |
@@ -1732,7 +1731,7 @@ discard block |
||
| 1732 | 1731 | break; |
| 1733 | 1732 | |
| 1734 | 1733 | case 'SERIES-PSEUDO-EXCEPTION': |
| 1735 | - $return_id = is_array($event_info['master_event']) ? $event_info['master_event']['id'] . ':' . $event['recurrence'] : false; |
|
| 1734 | + $return_id = is_array($event_info['master_event']) ? $event_info['master_event']['id'].':'.$event['recurrence'] : false; |
|
| 1736 | 1735 | break; |
| 1737 | 1736 | |
| 1738 | 1737 | case 'SERIES-EXCEPTION-PROPAGATE': |
@@ -1745,7 +1744,7 @@ discard block |
||
| 1745 | 1744 | { |
| 1746 | 1745 | // we did not have sufficient rights to propagate the status only exception to a real one |
| 1747 | 1746 | // we have to keep the SERIES-PSEUDO-EXCEPTION id and keep the event untouched |
| 1748 | - $return_id = $event_info['master_event']['id'] . ':' . $event['recurrence']; |
|
| 1747 | + $return_id = $event_info['master_event']['id'].':'.$event['recurrence']; |
|
| 1749 | 1748 | } |
| 1750 | 1749 | break; |
| 1751 | 1750 | } |
@@ -1759,8 +1758,8 @@ discard block |
||
| 1759 | 1758 | if ($this->log) |
| 1760 | 1759 | { |
| 1761 | 1760 | $event_info['stored_event'] = $this->read($event_info['stored_event']['id']); |
| 1762 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."()[$updated_id]\n" . |
|
| 1763 | - array2string($event_info['stored_event'])."\n",3,$this->logfile); |
|
| 1761 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."()[$updated_id]\n". |
|
| 1762 | + array2string($event_info['stored_event'])."\n", 3, $this->logfile); |
|
| 1764 | 1763 | } |
| 1765 | 1764 | } |
| 1766 | 1765 | date_default_timezone_set($GLOBALS['egw_info']['server']['server_timezone']); |
@@ -1782,19 +1781,19 @@ discard block |
||
| 1782 | 1781 | * @return mixed on success: int $cal_id > 0, on error or conflicts false. |
| 1783 | 1782 | * Conflicts are passed to $this->conflict_callback |
| 1784 | 1783 | */ |
| 1785 | - public function update(&$event,$ignore_conflicts=false,$touch_modified=true,$ignore_acl=false,$updateTS=true,&$messages=null, $skip_notification=false) |
|
| 1784 | + public function update(&$event, $ignore_conflicts = false, $touch_modified = true, $ignore_acl = false, $updateTS = true, &$messages = null, $skip_notification = false) |
|
| 1786 | 1785 | { |
| 1787 | - if($this->conflict_callback !== null) |
|
| 1786 | + if ($this->conflict_callback !== null) |
|
| 1788 | 1787 | { |
| 1789 | 1788 | // calendar_ical overrides search(), which breaks conflict checking |
| 1790 | 1789 | // so we make sure to use the original from parent |
| 1791 | 1790 | static $bo; |
| 1792 | - if(!$bo) |
|
| 1791 | + if (!$bo) |
|
| 1793 | 1792 | { |
| 1794 | 1793 | $bo = new calendar_boupdate(); |
| 1795 | 1794 | } |
| 1796 | 1795 | $conflicts = $bo->conflicts($event); |
| 1797 | - if(is_array($conflicts) && count($conflicts) > 0) |
|
| 1796 | + if (is_array($conflicts) && count($conflicts) > 0) |
|
| 1798 | 1797 | { |
| 1799 | 1798 | call_user_func_array($this->conflict_callback, array(&$event, &$conflicts)); |
| 1800 | 1799 | return false; |
@@ -1815,10 +1814,10 @@ discard block |
||
| 1815 | 1814 | { |
| 1816 | 1815 | if ($this->debug) error_log(__METHOD__."(".array2string($event).', old_alarms='.array2string($old_alarms).", $user,)"); |
| 1817 | 1816 | $modified = 0; |
| 1818 | - foreach($event['alarm'] as &$alarm) |
|
| 1817 | + foreach ($event['alarm'] as &$alarm) |
|
| 1819 | 1818 | { |
| 1820 | 1819 | // check if alarm is already stored or from other users |
| 1821 | - foreach($old_alarms as $id => $old_alarm) |
|
| 1820 | + foreach ($old_alarms as $id => $old_alarm) |
|
| 1822 | 1821 | { |
| 1823 | 1822 | // not current users alarm --> ignore |
| 1824 | 1823 | if (!$old_alarm['all'] && $old_alarm['owner'] != $user) |
@@ -1855,7 +1854,7 @@ discard block |
||
| 1855 | 1854 | } |
| 1856 | 1855 | } |
| 1857 | 1856 | // remove all old alarms left from current user |
| 1858 | - foreach($old_alarms as $id => $old_alarm) |
|
| 1857 | + foreach ($old_alarms as $id => $old_alarm) |
|
| 1859 | 1858 | { |
| 1860 | 1859 | // not current users alarm --> ignore |
| 1861 | 1860 | if (!$old_alarm['all'] && $old_alarm['owner'] != $user) |
@@ -1878,7 +1877,7 @@ discard block |
||
| 1878 | 1877 | * @param string $what ='value' |
| 1879 | 1878 | * @return mixed |
| 1880 | 1879 | */ |
| 1881 | - static function _get_attribute($components,$name,$what='value') |
|
| 1880 | + static function _get_attribute($components, $name, $what = 'value') |
|
| 1882 | 1881 | { |
| 1883 | 1882 | foreach ($components as $attribute) |
| 1884 | 1883 | { |
@@ -1913,7 +1912,7 @@ discard block |
||
| 1913 | 1912 | case 'DURATION': |
| 1914 | 1913 | if (isset($vattr['params']['RELATED']) && $vattr['params']['RELATED'] == 'END') |
| 1915 | 1914 | { |
| 1916 | - $alarm['offset'] = $duration -$vattr['value']; |
|
| 1915 | + $alarm['offset'] = $duration - $vattr['value']; |
|
| 1917 | 1916 | } |
| 1918 | 1917 | elseif (isset($vattr['params']['RELATED']) && $vattr['params']['RELATED'] != 'START') |
| 1919 | 1918 | { |
@@ -1929,7 +1928,7 @@ discard block |
||
| 1929 | 1928 | $alarm['time'] = $vattr['value']; |
| 1930 | 1929 | break; |
| 1931 | 1930 | default: |
| 1932 | - error_log('VALARM/TRIGGER: unsupported value type:' . $vtype); |
|
| 1931 | + error_log('VALARM/TRIGGER: unsupported value type:'.$vtype); |
|
| 1933 | 1932 | } |
| 1934 | 1933 | break; |
| 1935 | 1934 | |
@@ -1954,9 +1953,9 @@ discard block |
||
| 1954 | 1953 | return 0; |
| 1955 | 1954 | } |
| 1956 | 1955 | |
| 1957 | - function setSupportedFields($_productManufacturer='', $_productName='') |
|
| 1956 | + function setSupportedFields($_productManufacturer = '', $_productName = '') |
|
| 1958 | 1957 | { |
| 1959 | - $state =& $_SESSION['SyncML.state']; |
|
| 1958 | + $state = & $_SESSION['SyncML.state']; |
|
| 1960 | 1959 | if (isset($state)) |
| 1961 | 1960 | { |
| 1962 | 1961 | $deviceInfo = $state->getClientDeviceInfo(); |
@@ -2253,10 +2252,10 @@ discard block |
||
| 2253 | 2252 | if ($this->log) |
| 2254 | 2253 | { |
| 2255 | 2254 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 2256 | - '(' . $this->productManufacturer . |
|
| 2257 | - ', '. $this->productName .', ' . |
|
| 2258 | - ($this->tzid ? $this->tzid : egw_time::$user_timezone->getName()) . |
|
| 2259 | - ', ' . $this->calendarOwner . ")\n" , 3, $this->logfile); |
|
| 2255 | + '('.$this->productManufacturer. |
|
| 2256 | + ', '.$this->productName.', '. |
|
| 2257 | + ($this->tzid ? $this->tzid : egw_time::$user_timezone->getName()). |
|
| 2258 | + ', '.$this->calendarOwner.")\n", 3, $this->logfile); |
|
| 2260 | 2259 | } |
| 2261 | 2260 | |
| 2262 | 2261 | //Horde::logMessage('setSupportedFields(' . $this->productManufacturer . ', ' |
@@ -2274,12 +2273,12 @@ discard block |
||
| 2274 | 2273 | * utf-8 for new format, iso-8859-1 for old format. |
| 2275 | 2274 | * @return Iterator|array|boolean Iterator if resource given or array of events on success, false on failure |
| 2276 | 2275 | */ |
| 2277 | - function icaltoegw($_vcalData, $principalURL='', $charset=null) |
|
| 2276 | + function icaltoegw($_vcalData, $principalURL = '', $charset = null) |
|
| 2278 | 2277 | { |
| 2279 | 2278 | if ($this->log) |
| 2280 | 2279 | { |
| 2281 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."($principalURL, $charset)\n" . |
|
| 2282 | - array2string($_vcalData)."\n",3,$this->logfile); |
|
| 2280 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."($principalURL, $charset)\n". |
|
| 2281 | + array2string($_vcalData)."\n", 3, $this->logfile); |
|
| 2283 | 2282 | } |
| 2284 | 2283 | |
| 2285 | 2284 | if (!is_array($this->supportedFields)) $this->setSupportedFields(); |
@@ -2287,7 +2286,7 @@ discard block |
||
| 2287 | 2286 | // we use egw_ical_iterator only on resources, as calling importVCal() accesses single events like an array (eg. $events[0]) |
| 2288 | 2287 | if (is_resource($_vcalData)) |
| 2289 | 2288 | { |
| 2290 | - return new egw_ical_iterator($_vcalData,'VCALENDAR',$charset,array($this,'_ical2egw_callback'),array($this->tzid,$principalURL)); |
|
| 2289 | + return new egw_ical_iterator($_vcalData, 'VCALENDAR', $charset, array($this, '_ical2egw_callback'), array($this->tzid, $principalURL)); |
|
| 2291 | 2290 | } |
| 2292 | 2291 | |
| 2293 | 2292 | if ($this->tzid) |
@@ -2312,14 +2311,14 @@ discard block |
||
| 2312 | 2311 | if ($this->log) |
| 2313 | 2312 | { |
| 2314 | 2313 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
| 2315 | - "(): No vCalendar Container found!\n",3,$this->logfile); |
|
| 2314 | + "(): No vCalendar Container found!\n", 3, $this->logfile); |
|
| 2316 | 2315 | } |
| 2317 | 2316 | date_default_timezone_set($GLOBALS['egw_info']['server']['server_timezone']); |
| 2318 | 2317 | return false; |
| 2319 | 2318 | } |
| 2320 | 2319 | foreach ($vcal->getComponents() as $component) |
| 2321 | 2320 | { |
| 2322 | - if (($event = $this->_ical2egw_callback($component,$this->tzid,$principalURL,$vcal))) |
|
| 2321 | + if (($event = $this->_ical2egw_callback($component, $this->tzid, $principalURL, $vcal))) |
|
| 2323 | 2322 | { |
| 2324 | 2323 | $events[] = $event; |
| 2325 | 2324 | } |
@@ -2338,13 +2337,13 @@ discard block |
||
| 2338 | 2337 | * @param Horde_Icalendar $container =null container to access attributes on container |
| 2339 | 2338 | * @return array|boolean event array or false if $component is no Horde_Icalendar_Vevent |
| 2340 | 2339 | */ |
| 2341 | - function _ical2egw_callback(Horde_Icalendar $component, $tzid, $principalURL='', Horde_Icalendar $container=null) |
|
| 2340 | + function _ical2egw_callback(Horde_Icalendar $component, $tzid, $principalURL = '', Horde_Icalendar $container = null) |
|
| 2342 | 2341 | { |
| 2343 | 2342 | //unset($component->_container); _debug_array($component); |
| 2344 | 2343 | |
| 2345 | 2344 | if ($this->log) |
| 2346 | 2345 | { |
| 2347 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.'() '.get_class($component)." found\n",3,$this->logfile); |
|
| 2346 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.'() '.get_class($component)." found\n", 3, $this->logfile); |
|
| 2348 | 2347 | } |
| 2349 | 2348 | |
| 2350 | 2349 | if (!is_a($component, 'Horde_Icalendar_Vevent') || |
@@ -2393,16 +2392,16 @@ discard block |
||
| 2393 | 2392 | * @param Horde_Icalendar $container =null container to access attributes on container |
| 2394 | 2393 | * @return array|boolean event on success, false on failure |
| 2395 | 2394 | */ |
| 2396 | - function vevent2egw($component, $version, $supportedFields, $principalURL='', $check_component='Horde_Icalendar_Vevent', Horde_Icalendar $container=null) |
|
| 2395 | + function vevent2egw($component, $version, $supportedFields, $principalURL = '', $check_component = 'Horde_Icalendar_Vevent', Horde_Icalendar $container = null) |
|
| 2397 | 2396 | { |
| 2398 | - unset($principalURL); // not longer used, but required in function signature |
|
| 2397 | + unset($principalURL); // not longer used, but required in function signature |
|
| 2399 | 2398 | |
| 2400 | 2399 | if ($check_component && !is_a($component, $check_component)) |
| 2401 | 2400 | { |
| 2402 | 2401 | if ($this->log) |
| 2403 | 2402 | { |
| 2404 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.'()' . |
|
| 2405 | - get_class($component)." found\n",3,$this->logfile); |
|
| 2403 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.'()'. |
|
| 2404 | + get_class($component)." found\n", 3, $this->logfile); |
|
| 2406 | 2405 | } |
| 2407 | 2406 | return false; |
| 2408 | 2407 | } |
@@ -2418,11 +2417,11 @@ discard block |
||
| 2418 | 2417 | |
| 2419 | 2418 | $isDate = false; |
| 2420 | 2419 | $event = array(); |
| 2421 | - $alarms = array(); |
|
| 2422 | - $vcardData = array( |
|
| 2420 | + $alarms = array(); |
|
| 2421 | + $vcardData = array( |
|
| 2423 | 2422 | 'recur_type' => MCAL_RECUR_NONE, |
| 2424 | 2423 | 'recur_exception' => array(), |
| 2425 | - 'priority' => 0, // iCalendar default is 0=undefined, not EGroupware 5=normal |
|
| 2424 | + 'priority' => 0, // iCalendar default is 0=undefined, not EGroupware 5=normal |
|
| 2426 | 2425 | ); |
| 2427 | 2426 | // we need to parse DTSTART, DTEND or DURATION (in that order!) first |
| 2428 | 2427 | foreach (array_merge( |
@@ -2439,7 +2438,7 @@ discard block |
||
| 2439 | 2438 | $isDate = true; |
| 2440 | 2439 | } |
| 2441 | 2440 | $dtstart_ts = is_numeric($attributes['value']) ? $attributes['value'] : $this->date2ts($attributes['value']); |
| 2442 | - $vcardData['start'] = $dtstart_ts; |
|
| 2441 | + $vcardData['start'] = $dtstart_ts; |
|
| 2443 | 2442 | |
| 2444 | 2443 | if ($this->tzid) |
| 2445 | 2444 | { |
@@ -2462,18 +2461,18 @@ discard block |
||
| 2462 | 2461 | } |
| 2463 | 2462 | else |
| 2464 | 2463 | { |
| 2465 | - error_log(__METHOD__ . '() unknown TZID=' |
|
| 2466 | - . $attributes['params']['TZID'] . ', defaulting to timezone "' |
|
| 2467 | - . date_default_timezone_get() . '".'.array2string($tz)); |
|
| 2468 | - $event['tzid'] = date_default_timezone_get(); // default to current timezone |
|
| 2464 | + error_log(__METHOD__.'() unknown TZID=' |
|
| 2465 | + . $attributes['params']['TZID'].', defaulting to timezone "' |
|
| 2466 | + . date_default_timezone_get().'".'.array2string($tz)); |
|
| 2467 | + $event['tzid'] = date_default_timezone_get(); // default to current timezone |
|
| 2469 | 2468 | } |
| 2470 | 2469 | } |
| 2471 | - catch(Exception $e) |
|
| 2470 | + catch (Exception $e) |
|
| 2472 | 2471 | { |
| 2473 | - error_log(__METHOD__ . '() unknown TZID=' |
|
| 2474 | - . $attributes['params']['TZID'] . ', defaulting to timezone "' |
|
| 2475 | - . date_default_timezone_get() . '".'.$e->getMessage()); |
|
| 2476 | - $event['tzid'] = date_default_timezone_get(); // default to current timezone |
|
| 2472 | + error_log(__METHOD__.'() unknown TZID=' |
|
| 2473 | + . $attributes['params']['TZID'].', defaulting to timezone "' |
|
| 2474 | + . date_default_timezone_get().'".'.$e->getMessage()); |
|
| 2475 | + $event['tzid'] = date_default_timezone_get(); // default to current timezone |
|
| 2477 | 2476 | } |
| 2478 | 2477 | } |
| 2479 | 2478 | else |
@@ -2488,11 +2487,11 @@ discard block |
||
| 2488 | 2487 | |
| 2489 | 2488 | case 'DTEND': |
| 2490 | 2489 | $dtend_ts = is_numeric($attributes['value']) ? $attributes['value'] : $this->date2ts($attributes['value']); |
| 2491 | - if (date('H:i:s',$dtend_ts) == '00:00:00') |
|
| 2490 | + if (date('H:i:s', $dtend_ts) == '00:00:00') |
|
| 2492 | 2491 | { |
| 2493 | 2492 | $dtend_ts -= 1; |
| 2494 | 2493 | } |
| 2495 | - $vcardData['end'] = $dtend_ts; |
|
| 2494 | + $vcardData['end'] = $dtend_ts; |
|
| 2496 | 2495 | break; |
| 2497 | 2496 | |
| 2498 | 2497 | case 'DURATION': // clients can use DTSTART+DURATION, instead of DTSTART+DTEND |
@@ -2512,7 +2511,7 @@ discard block |
||
| 2512 | 2511 | if ($this->log) |
| 2513 | 2512 | { |
| 2514 | 2513 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 2515 | - . "() DTSTART missing!\n",3,$this->logfile); |
|
| 2514 | + . "() DTSTART missing!\n", 3, $this->logfile); |
|
| 2516 | 2515 | } |
| 2517 | 2516 | return false; // not a valid entry |
| 2518 | 2517 | } |
@@ -2524,7 +2523,7 @@ discard block |
||
| 2524 | 2523 | case 'X-MICROSOFT-CDO-ALLDAYEVENT': |
| 2525 | 2524 | if (isset($supportedFields['whole_day'])) |
| 2526 | 2525 | { |
| 2527 | - $event['whole_day'] = (isset($attributes['value'])?strtoupper($attributes['value'])=='TRUE':true); |
|
| 2526 | + $event['whole_day'] = (isset($attributes['value']) ? strtoupper($attributes['value']) == 'TRUE' : true); |
|
| 2528 | 2527 | } |
| 2529 | 2528 | break; |
| 2530 | 2529 | case 'AALARM': |
@@ -2554,32 +2553,32 @@ discard block |
||
| 2554 | 2553 | $vcardData['recurrence'] = $attributes['value']; |
| 2555 | 2554 | break; |
| 2556 | 2555 | case 'LOCATION': |
| 2557 | - $vcardData['location'] = str_replace("\r\n", "\n", $attributes['value']); |
|
| 2556 | + $vcardData['location'] = str_replace("\r\n", "\n", $attributes['value']); |
|
| 2558 | 2557 | break; |
| 2559 | 2558 | case 'RRULE': |
| 2560 | 2559 | $recurence = $attributes['value']; |
| 2561 | 2560 | $vcardData['recur_interval'] = 1; |
| 2562 | - $type = preg_match('/FREQ=([^;: ]+)/i',$recurence,$matches) ? $matches[1] : $recurence[0]; |
|
| 2561 | + $type = preg_match('/FREQ=([^;: ]+)/i', $recurence, $matches) ? $matches[1] : $recurence[0]; |
|
| 2563 | 2562 | // vCard 2.0 values for all types |
| 2564 | - if (preg_match('/UNTIL=([0-9TZ]+)/',$recurence,$matches)) |
|
| 2563 | + if (preg_match('/UNTIL=([0-9TZ]+)/', $recurence, $matches)) |
|
| 2565 | 2564 | { |
| 2566 | 2565 | $vcardData['recur_enddate'] = $this->vCalendar->_parseDateTime($matches[1]); |
| 2567 | 2566 | // If it couldn't be parsed, treat it as not set |
| 2568 | - if(is_string($vcardData['recur_enddate'])) |
|
| 2567 | + if (is_string($vcardData['recur_enddate'])) |
|
| 2569 | 2568 | { |
| 2570 | 2569 | unset($vcardData['recur_enddate']); |
| 2571 | 2570 | } |
| 2572 | 2571 | } |
| 2573 | - elseif (preg_match('/COUNT=([0-9]+)/',$recurence,$matches)) |
|
| 2572 | + elseif (preg_match('/COUNT=([0-9]+)/', $recurence, $matches)) |
|
| 2574 | 2573 | { |
| 2575 | 2574 | $vcardData['recur_count'] = (int)$matches[1]; |
| 2576 | 2575 | } |
| 2577 | - if (preg_match('/INTERVAL=([0-9]+)/',$recurence,$matches)) |
|
| 2576 | + if (preg_match('/INTERVAL=([0-9]+)/', $recurence, $matches)) |
|
| 2578 | 2577 | { |
| 2579 | - $vcardData['recur_interval'] = (int) $matches[1] ? (int) $matches[1] : 1; |
|
| 2578 | + $vcardData['recur_interval'] = (int)$matches[1] ? (int)$matches[1] : 1; |
|
| 2580 | 2579 | } |
| 2581 | 2580 | $vcardData['recur_data'] = 0; |
| 2582 | - switch($type) |
|
| 2581 | + switch ($type) |
|
| 2583 | 2582 | { |
| 2584 | 2583 | case 'D': // 1.0 |
| 2585 | 2584 | $recurenceMatches = null; |
@@ -2603,20 +2602,20 @@ discard block |
||
| 2603 | 2602 | case 'W': |
| 2604 | 2603 | case 'WEEKLY': |
| 2605 | 2604 | $days = array(); |
| 2606 | - if (preg_match('/W(\d+) *((?i: [AEFHMORSTUW]{2})+)?( +([^ ]*))$/',$recurence, $recurenceMatches)) // 1.0 |
|
| 2605 | + if (preg_match('/W(\d+) *((?i: [AEFHMORSTUW]{2})+)?( +([^ ]*))$/', $recurence, $recurenceMatches)) // 1.0 |
|
| 2607 | 2606 | { |
| 2608 | 2607 | $vcardData['recur_interval'] = $recurenceMatches[1]; |
| 2609 | 2608 | if (empty($recurenceMatches[2])) |
| 2610 | 2609 | { |
| 2611 | - $days[0] = strtoupper(substr(date('D', $vcardData['start']),0,2)); |
|
| 2610 | + $days[0] = strtoupper(substr(date('D', $vcardData['start']), 0, 2)); |
|
| 2612 | 2611 | } |
| 2613 | 2612 | else |
| 2614 | 2613 | { |
| 2615 | - $days = explode(' ',trim($recurenceMatches[2])); |
|
| 2614 | + $days = explode(' ', trim($recurenceMatches[2])); |
|
| 2616 | 2615 | } |
| 2617 | 2616 | |
| 2618 | 2617 | $repeatMatches = null; |
| 2619 | - if (preg_match('/#(\d+)/',$recurenceMatches[4],$repeatMatches)) |
|
| 2618 | + if (preg_match('/#(\d+)/', $recurenceMatches[4], $repeatMatches)) |
|
| 2620 | 2619 | { |
| 2621 | 2620 | if ($repeatMatches[1]) $vcardData['recur_count'] = $repeatMatches[1]; |
| 2622 | 2621 | } |
@@ -2627,21 +2626,21 @@ discard block |
||
| 2627 | 2626 | |
| 2628 | 2627 | $recur_days = $this->recur_days_1_0; |
| 2629 | 2628 | } |
| 2630 | - elseif (preg_match('/BYDAY=([^;: ]+)/',$recurence,$recurenceMatches)) // 2.0 |
|
| 2629 | + elseif (preg_match('/BYDAY=([^;: ]+)/', $recurence, $recurenceMatches)) // 2.0 |
|
| 2631 | 2630 | { |
| 2632 | - $days = explode(',',$recurenceMatches[1]); |
|
| 2631 | + $days = explode(',', $recurenceMatches[1]); |
|
| 2633 | 2632 | $recur_days = $this->recur_days; |
| 2634 | 2633 | } |
| 2635 | 2634 | else // no day given, use the day of dtstart |
| 2636 | 2635 | { |
| 2637 | - $vcardData['recur_data'] |= 1 << (int)date('w',$vcardData['start']); |
|
| 2636 | + $vcardData['recur_data'] |= 1 << (int)date('w', $vcardData['start']); |
|
| 2638 | 2637 | $vcardData['recur_type'] = MCAL_RECUR_WEEKLY; |
| 2639 | 2638 | } |
| 2640 | 2639 | if ($days) |
| 2641 | 2640 | { |
| 2642 | 2641 | foreach ($recur_days as $id => $day) |
| 2643 | 2642 | { |
| 2644 | - if (in_array(strtoupper(substr($day,0,2)),$days)) |
|
| 2643 | + if (in_array(strtoupper(substr($day, 0, 2)), $days)) |
|
| 2645 | 2644 | { |
| 2646 | 2645 | $vcardData['recur_data'] |= $id; |
| 2647 | 2646 | } |
@@ -2657,17 +2656,17 @@ discard block |
||
| 2657 | 2656 | $vcardData['recur_interval'] = $recurenceMatches[1]; |
| 2658 | 2657 | $vcardData['recur_count'] = $recurenceMatches[2]; |
| 2659 | 2658 | } |
| 2660 | - elseif (preg_match('/MD(\d+)(?: [^ ]+)? ([0-9TZ]+)/',$recurence, $recurenceMatches)) |
|
| 2659 | + elseif (preg_match('/MD(\d+)(?: [^ ]+)? ([0-9TZ]+)/', $recurence, $recurenceMatches)) |
|
| 2661 | 2660 | { |
| 2662 | 2661 | $vcardData['recur_type'] = MCAL_RECUR_MONTHLY_MDAY; |
| 2663 | 2662 | $vcardData['recur_interval'] = $recurenceMatches[1]; |
| 2664 | 2663 | $vcardData['recur_enddate'] = $this->vCalendar->_parseDateTime($recurenceMatches[2]); |
| 2665 | 2664 | } |
| 2666 | - elseif (preg_match('/MP(\d+) (.*) (.*) (.*)/',$recurence, $recurenceMatches)) |
|
| 2665 | + elseif (preg_match('/MP(\d+) (.*) (.*) (.*)/', $recurence, $recurenceMatches)) |
|
| 2667 | 2666 | { |
| 2668 | 2667 | $vcardData['recur_type'] = MCAL_RECUR_MONTHLY_WDAY; |
| 2669 | 2668 | $vcardData['recur_interval'] = $recurenceMatches[1]; |
| 2670 | - if (preg_match('/#(\d+)/',$recurenceMatches[4],$recurenceMatches)) |
|
| 2669 | + if (preg_match('/#(\d+)/', $recurenceMatches[4], $recurenceMatches)) |
|
| 2671 | 2670 | { |
| 2672 | 2671 | $vcardData['recur_count'] = $recurenceMatches[1]; |
| 2673 | 2672 | } |
@@ -2684,7 +2683,7 @@ discard block |
||
| 2684 | 2683 | $vcardData['recur_interval'] = $recurenceMatches[1]; |
| 2685 | 2684 | $vcardData['recur_count'] = $recurenceMatches[2]; |
| 2686 | 2685 | } |
| 2687 | - elseif (preg_match('/YM(\d+)(?: [^ ]+)? ([0-9TZ]+)/',$recurence, $recurenceMatches)) |
|
| 2686 | + elseif (preg_match('/YM(\d+)(?: [^ ]+)? ([0-9TZ]+)/', $recurence, $recurenceMatches)) |
|
| 2688 | 2687 | { |
| 2689 | 2688 | $vcardData['recur_interval'] = $recurenceMatches[1]; |
| 2690 | 2689 | $vcardData['recur_enddate'] = $this->vCalendar->_parseDateTime($recurenceMatches[2]); |
@@ -2698,11 +2697,11 @@ discard block |
||
| 2698 | 2697 | } |
| 2699 | 2698 | // handle FREQ=YEARLY;BYDAY= as FREQ=MONTHLY;BYDAY= with 12*INTERVAL |
| 2700 | 2699 | $vcardData['recur_interval'] = $vcardData['recur_interval'] ? |
| 2701 | - 12*$vcardData['recur_interval'] : 12; |
|
| 2700 | + 12 * $vcardData['recur_interval'] : 12; |
|
| 2702 | 2701 | // fall-through |
| 2703 | 2702 | case 'MONTHLY': |
| 2704 | 2703 | // does currently NOT parse BYDAY or BYMONTH, it has to be specified/identical to DTSTART |
| 2705 | - $vcardData['recur_type'] = strpos($recurence,'BYDAY') !== false ? |
|
| 2704 | + $vcardData['recur_type'] = strpos($recurence, 'BYDAY') !== false ? |
|
| 2706 | 2705 | MCAL_RECUR_MONTHLY_WDAY : MCAL_RECUR_MONTHLY_MDAY; |
| 2707 | 2706 | break; |
| 2708 | 2707 | } |
@@ -2758,11 +2757,11 @@ discard block |
||
| 2758 | 2757 | (strpos($this->productName, 'outlook') !== false |
| 2759 | 2758 | || strpos($this->productName, 'pocket pc') !== false)) |
| 2760 | 2759 | { |
| 2761 | - $vcardData['priority'] = (int) $this->priority_funambol2egw[$attributes['value']]; |
|
| 2760 | + $vcardData['priority'] = (int)$this->priority_funambol2egw[$attributes['value']]; |
|
| 2762 | 2761 | } |
| 2763 | 2762 | else |
| 2764 | 2763 | { |
| 2765 | - $vcardData['priority'] = (int) $this->priority_ical2egw[$attributes['value']]; |
|
| 2764 | + $vcardData['priority'] = (int)$this->priority_ical2egw[$attributes['value']]; |
|
| 2766 | 2765 | } |
| 2767 | 2766 | break; |
| 2768 | 2767 | case 'CATEGORIES': |
@@ -2776,10 +2775,10 @@ discard block |
||
| 2776 | 2775 | } |
| 2777 | 2776 | break; |
| 2778 | 2777 | case 'ORGANIZER': |
| 2779 | - $event['organizer'] = $attributes['value']; // no egw field, but needed in AS |
|
| 2780 | - if (strtolower(substr($event['organizer'],0,7)) == 'mailto:') |
|
| 2778 | + $event['organizer'] = $attributes['value']; // no egw field, but needed in AS |
|
| 2779 | + if (strtolower(substr($event['organizer'], 0, 7)) == 'mailto:') |
|
| 2781 | 2780 | { |
| 2782 | - $event['organizer'] = substr($event['organizer'],7); |
|
| 2781 | + $event['organizer'] = substr($event['organizer'], 7); |
|
| 2783 | 2782 | } |
| 2784 | 2783 | if (!empty($attributes['params']['CN'])) |
| 2785 | 2784 | { |
@@ -2816,19 +2815,19 @@ discard block |
||
| 2816 | 2815 | } |
| 2817 | 2816 | // try parsing email and cn from attendee |
| 2818 | 2817 | elseif (preg_match('/mailto:([@.a-z0-9_-]+)|mailto:"?([.a-z0-9_ -]*)"?[ ]*<([@.a-z0-9_-]*)>/i', |
| 2819 | - $attributes['value'],$matches)) |
|
| 2818 | + $attributes['value'], $matches)) |
|
| 2820 | 2819 | { |
| 2821 | 2820 | $email = $matches[1] ? $matches[1] : $matches[3]; |
| 2822 | - $cn = isset($matches[2]) ? $matches[2]: ''; |
|
| 2821 | + $cn = isset($matches[2]) ? $matches[2] : ''; |
|
| 2823 | 2822 | } |
| 2824 | 2823 | elseif (!empty($attributes['value']) && |
| 2825 | 2824 | preg_match('/"?([.a-z0-9_ -]*)"?[ ]*<([@.a-z0-9_-]*)>/i', |
| 2826 | - $attributes['value'],$matches)) |
|
| 2825 | + $attributes['value'], $matches)) |
|
| 2827 | 2826 | { |
| 2828 | 2827 | $cn = $matches[1]; |
| 2829 | 2828 | $email = $matches[2]; |
| 2830 | 2829 | } |
| 2831 | - elseif (strpos($attributes['value'],'@') !== false) |
|
| 2830 | + elseif (strpos($attributes['value'], '@') !== false) |
|
| 2832 | 2831 | { |
| 2833 | 2832 | $email = $attributes['value']; |
| 2834 | 2833 | } |
@@ -2845,7 +2844,7 @@ discard block |
||
| 2845 | 2844 | if ($this->log) |
| 2846 | 2845 | { |
| 2847 | 2846 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 2848 | - . "(): Found X-EGROUPWARE-UID: '$uid'\n",3,$this->logfile); |
|
| 2847 | + . "(): Found X-EGROUPWARE-UID: '$uid'\n", 3, $this->logfile); |
|
| 2849 | 2848 | } |
| 2850 | 2849 | } |
| 2851 | 2850 | elseif ($attributes['value'] == 'Unknown') |
@@ -2863,7 +2862,7 @@ discard block |
||
| 2863 | 2862 | if ($this->log) |
| 2864 | 2863 | { |
| 2865 | 2864 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 2866 | - . "() Found account: '$uid', '$cn', '$email'\n",3,$this->logfile); |
|
| 2865 | + . "() Found account: '$uid', '$cn', '$email'\n", 3, $this->logfile); |
|
| 2867 | 2866 | } |
| 2868 | 2867 | } |
| 2869 | 2868 | if (!$uid) |
@@ -2880,9 +2879,9 @@ discard block |
||
| 2880 | 2879 | $cn = str_replace(array('\\,', '\\;', '\\:', '\\\\'), |
| 2881 | 2880 | array(',', ';', ':', '\\'), |
| 2882 | 2881 | $attributes['params']['CN']); |
| 2883 | - if ($cn[0] == '"' && substr($cn,-1) == '"') |
|
| 2882 | + if ($cn[0] == '"' && substr($cn, -1) == '"') |
|
| 2884 | 2883 | { |
| 2885 | - $cn = substr($cn,1,-1); |
|
| 2884 | + $cn = substr($cn, 1, -1); |
|
| 2886 | 2885 | } |
| 2887 | 2886 | // not searching for $cn, as match can be not unique or without an email address |
| 2888 | 2887 | // --> notification will fail, better store just as email |
@@ -2891,19 +2890,19 @@ discard block |
||
| 2891 | 2890 | if ($this->log) |
| 2892 | 2891 | { |
| 2893 | 2892 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 2894 | - . "() Search participant: '$cn', '$email'\n",3,$this->logfile); |
|
| 2893 | + . "() Search participant: '$cn', '$email'\n", 3, $this->logfile); |
|
| 2895 | 2894 | } |
| 2896 | 2895 | |
| 2897 | 2896 | //elseif (//$attributes['params']['CUTYPE'] == 'GROUP' |
| 2898 | - if (preg_match('/(.*) '. lang('Group') . '/', $cn, $matches)) |
|
| 2897 | + if (preg_match('/(.*) '.lang('Group').'/', $cn, $matches)) |
|
| 2899 | 2898 | { |
| 2900 | 2899 | // we found a group |
| 2901 | 2900 | if ($this->log) |
| 2902 | 2901 | { |
| 2903 | 2902 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 2904 | - . "() Found group: '$matches[1]', '$cn', '$email'\n",3,$this->logfile); |
|
| 2903 | + . "() Found group: '$matches[1]', '$cn', '$email'\n", 3, $this->logfile); |
|
| 2905 | 2904 | } |
| 2906 | - if (($uid = $GLOBALS['egw']->accounts->name2id($matches[1], 'account_lid', 'g'))) |
|
| 2905 | + if (($uid = $GLOBALS['egw']->accounts->name2id($matches[1], 'account_lid', 'g'))) |
|
| 2907 | 2906 | { |
| 2908 | 2907 | //Horde::logMessage("vevent2egw: group participant $uid", |
| 2909 | 2908 | // __FILE__, __LINE__, PEAR_LOG_DEBUG); |
@@ -2917,7 +2916,7 @@ discard block |
||
| 2917 | 2916 | //Horde::logMessage("vevent2egw: set status to " . $status, |
| 2918 | 2917 | // __FILE__, __LINE__, PEAR_LOG_DEBUG); |
| 2919 | 2918 | $vcardData['participants'][$this->user] = |
| 2920 | - calendar_so::combine_status($status,$quantity,$role); |
|
| 2919 | + calendar_so::combine_status($status, $quantity, $role); |
|
| 2921 | 2920 | } |
| 2922 | 2921 | } |
| 2923 | 2922 | $status = 'U'; // keep the group |
@@ -2926,36 +2925,36 @@ discard block |
||
| 2926 | 2925 | } |
| 2927 | 2926 | elseif (empty($searcharray)) |
| 2928 | 2927 | { |
| 2929 | - continue; // participants without email AND CN --> ignore it |
|
| 2928 | + continue; // participants without email AND CN --> ignore it |
|
| 2930 | 2929 | } |
| 2931 | 2930 | elseif ((list($data) = $this->addressbook->search($searcharray, |
| 2932 | - array('id','egw_addressbook.account_id as account_id','n_fn'), |
|
| 2931 | + array('id', 'egw_addressbook.account_id as account_id', 'n_fn'), |
|
| 2933 | 2932 | 'egw_addressbook.account_id IS NOT NULL DESC, n_fn IS NOT NULL DESC', |
| 2934 | - '','',false,'OR'))) |
|
| 2933 | + '', '', false, 'OR'))) |
|
| 2935 | 2934 | { |
| 2936 | 2935 | // found an addressbook entry |
| 2937 | 2936 | $uid = $data['account_id'] ? (int)$data['account_id'] : 'c'.$data['id']; |
| 2938 | 2937 | if ($this->log) |
| 2939 | 2938 | { |
| 2940 | 2939 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 2941 | - . "() Found addressbook entry: '$uid', '$cn', '$email'\n",3,$this->logfile); |
|
| 2940 | + . "() Found addressbook entry: '$uid', '$cn', '$email'\n", 3, $this->logfile); |
|
| 2942 | 2941 | } |
| 2943 | 2942 | } |
| 2944 | 2943 | else |
| 2945 | 2944 | { |
| 2946 | 2945 | if (!$email) |
| 2947 | 2946 | { |
| 2948 | - $email = '[email protected]'; // set dummy email to store the CN |
|
| 2947 | + $email = '[email protected]'; // set dummy email to store the CN |
|
| 2949 | 2948 | } |
| 2950 | - $uid = 'e'. ($cn ? $cn . ' <' . $email . '>' : $email); |
|
| 2949 | + $uid = 'e'.($cn ? $cn.' <'.$email.'>' : $email); |
|
| 2951 | 2950 | if ($this->log) |
| 2952 | 2951 | { |
| 2953 | 2952 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ |
| 2954 | - . "() Not Found, create dummy: '$uid', '$cn', '$email'\n",3,$this->logfile); |
|
| 2953 | + . "() Not Found, create dummy: '$uid', '$cn', '$email'\n", 3, $this->logfile); |
|
| 2955 | 2954 | } |
| 2956 | 2955 | } |
| 2957 | 2956 | } |
| 2958 | - switch($attributes['name']) |
|
| 2957 | + switch ($attributes['name']) |
|
| 2959 | 2958 | { |
| 2960 | 2959 | case 'ATTENDEE': |
| 2961 | 2960 | if (!isset($attributes['params']['ROLE']) && |
@@ -2969,7 +2968,7 @@ discard block |
||
| 2969 | 2968 | // keep role 'CHAIR' from an external organizer, even if he is a regular participant with a different role |
| 2970 | 2969 | // as this is currently the only way to store an external organizer and send him iMip responses |
| 2971 | 2970 | $q = $r = null; |
| 2972 | - if (isset($vcardData['participants'][$uid]) && ($s=$vcardData['participants'][$uid]) && |
|
| 2971 | + if (isset($vcardData['participants'][$uid]) && ($s = $vcardData['participants'][$uid]) && |
|
| 2973 | 2972 | calendar_so::split_status($s, $q, $r) && $r == 'CHAIR') |
| 2974 | 2973 | { |
| 2975 | 2974 | $role = 'CHAIR'; |
@@ -2983,7 +2982,7 @@ discard block |
||
| 2983 | 2982 | if (!$this->calendarOwner && is_numeric($uid) && $role == 'CHAIR') |
| 2984 | 2983 | $component->getAttribute('ORGANIZER'); |
| 2985 | 2984 | } |
| 2986 | - catch(Horde_Icalendar_Exception $e) |
|
| 2985 | + catch (Horde_Icalendar_Exception $e) |
|
| 2987 | 2986 | { |
| 2988 | 2987 | // we can store the ORGANIZER as event owner |
| 2989 | 2988 | $event['owner'] = $uid; |
@@ -3039,7 +3038,7 @@ discard block |
||
| 3039 | 3038 | break; |
| 3040 | 3039 | |
| 3041 | 3040 | case 'ATTACH': |
| 3042 | - if ($attributes['params'] && !empty($attributes['params']['FMTTYPE'])) break; // handeled by managed attachment code |
|
| 3041 | + if ($attributes['params'] && !empty($attributes['params']['FMTTYPE'])) break; // handeled by managed attachment code |
|
| 3043 | 3042 | // fall throught to store external attachment url |
| 3044 | 3043 | default: // X- attribute or other by EGroupware unsupported property |
| 3045 | 3044 | //error_log(__METHOD__."() $attributes[name] = ".array2string($attributes)); |
@@ -3097,7 +3096,7 @@ discard block |
||
| 3097 | 3096 | if ($event['recur_type'] != MCAL_RECUR_NONE) |
| 3098 | 3097 | { |
| 3099 | 3098 | $event['reference'] = 0; |
| 3100 | - foreach (array('recur_interval','recur_enddate','recur_data','recur_exception','recur_count') as $r) |
|
| 3099 | + foreach (array('recur_interval', 'recur_enddate', 'recur_data', 'recur_exception', 'recur_count') as $r) |
|
| 3101 | 3100 | { |
| 3102 | 3101 | if (isset($vcardData[$r])) |
| 3103 | 3102 | { |
@@ -3120,12 +3119,12 @@ discard block |
||
| 3120 | 3119 | // reset recure_enddate to 00:00:00 on the last day |
| 3121 | 3120 | $rriter = calendar_rrule::event2rrule($event, false); |
| 3122 | 3121 | $last = $rriter->normalize_enddate(); |
| 3123 | - if(!is_object($last)) |
|
| 3122 | + if (!is_object($last)) |
|
| 3124 | 3123 | { |
| 3125 | - if($this->log) |
|
| 3124 | + if ($this->log) |
|
| 3126 | 3125 | { |
| 3127 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . |
|
| 3128 | - " Unable to determine recurrence end date. \n".array2string($event),3, $this->logfile); |
|
| 3126 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__. |
|
| 3127 | + " Unable to determine recurrence end date. \n".array2string($event), 3, $this->logfile); |
|
| 3129 | 3128 | } |
| 3130 | 3129 | return false; |
| 3131 | 3130 | } |
@@ -3134,16 +3133,16 @@ discard block |
||
| 3134 | 3133 | $event['recur_enddate'] = egw_time::to($last, 'server'); |
| 3135 | 3134 | } |
| 3136 | 3135 | // translate COUNT into an enddate, as we only store enddates |
| 3137 | - elseif($event['recur_count']) |
|
| 3136 | + elseif ($event['recur_count']) |
|
| 3138 | 3137 | { |
| 3139 | 3138 | $rriter = calendar_rrule::event2rrule($event, false); |
| 3140 | 3139 | $last = $rriter->count2date($event['recur_count']); |
| 3141 | - if(!is_object($last)) |
|
| 3140 | + if (!is_object($last)) |
|
| 3142 | 3141 | { |
| 3143 | - if($this->log) |
|
| 3142 | + if ($this->log) |
|
| 3144 | 3143 | { |
| 3145 | 3144 | error_log(__FILE__.'['.__LINE__.'] '.__METHOD__, |
| 3146 | - " Unable to determine recurrence end date. \n".array2string($event),3, $this->logfile); |
|
| 3145 | + " Unable to determine recurrence end date. \n".array2string($event), 3, $this->logfile); |
|
| 3147 | 3146 | } |
| 3148 | 3147 | return false; |
| 3149 | 3148 | } |
@@ -3157,7 +3156,7 @@ discard block |
||
| 3157 | 3156 | if ($this->productManufacturer == 'groupdav' && $container && |
| 3158 | 3157 | ($x_calendarserver_access = $container->getAttribute('X-CALENDARSERVER-ACCESS'))) |
| 3159 | 3158 | { |
| 3160 | - $event['public'] = (int)(strtoupper($x_calendarserver_access) == 'PUBLIC'); |
|
| 3159 | + $event['public'] = (int)(strtoupper($x_calendarserver_access) == 'PUBLIC'); |
|
| 3161 | 3160 | } |
| 3162 | 3161 | //error_log(__METHOD__."() X-CALENDARSERVER-ACCESS=".array2string($x_calendarserver_access).' --> public='.array2string($event['public'])); |
| 3163 | 3162 | } |
@@ -3178,15 +3177,15 @@ discard block |
||
| 3178 | 3177 | |
| 3179 | 3178 | if ($this->log) |
| 3180 | 3179 | { |
| 3181 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."()\n" . |
|
| 3182 | - array2string($event)."\n",3,$this->logfile); |
|
| 3180 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."()\n". |
|
| 3181 | + array2string($event)."\n", 3, $this->logfile); |
|
| 3183 | 3182 | } |
| 3184 | 3183 | //Horde::logMessage("vevent2egw:\n" . print_r($event, true), |
| 3185 | 3184 | // __FILE__, __LINE__, PEAR_LOG_DEBUG); |
| 3186 | 3185 | return $event; |
| 3187 | 3186 | } |
| 3188 | 3187 | |
| 3189 | - function search($_vcalData, $contentID=null, $relax=false, $charset=null) |
|
| 3188 | + function search($_vcalData, $contentID = null, $relax = false, $charset = null) |
|
| 3190 | 3189 | { |
| 3191 | 3190 | if (($events = $this->icaltoegw($_vcalData, $charset))) |
| 3192 | 3191 | { |
@@ -3207,8 +3206,8 @@ discard block |
||
| 3207 | 3206 | } |
| 3208 | 3207 | if ($this->log) |
| 3209 | 3208 | { |
| 3210 | - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."() found:\n" . |
|
| 3211 | - array2string($events)."\n",3,$this->logfile); |
|
| 3209 | + error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."() found:\n". |
|
| 3210 | + array2string($events)."\n", 3, $this->logfile); |
|
| 3212 | 3211 | } |
| 3213 | 3212 | } |
| 3214 | 3213 | return array(); |
@@ -3226,23 +3225,23 @@ discard block |
||
| 3226 | 3225 | * @param array $extra =null extra attributes to add |
| 3227 | 3226 | * X-CALENDARSERVER-MASK-UID can be used to not include an event specified by this uid as busy |
| 3228 | 3227 | */ |
| 3229 | - function freebusy($user,$end=null,$utc=true, $charset='UTF-8', $start=null, $method='PUBLISH', array $extra=null) |
|
| 3228 | + function freebusy($user, $end = null, $utc = true, $charset = 'UTF-8', $start = null, $method = 'PUBLISH', array $extra = null) |
|
| 3230 | 3229 | { |
| 3231 | - if (!$start) $start = time(); // default now |
|
| 3232 | - if (!$end) $end = time() + 100*DAY_s; // default next 100 days |
|
| 3230 | + if (!$start) $start = time(); // default now |
|
| 3231 | + if (!$end) $end = time() + 100 * DAY_s; // default next 100 days |
|
| 3233 | 3232 | |
| 3234 | 3233 | $vcal = new Horde_Icalendar; |
| 3235 | - $vcal->setAttribute('PRODID','-//EGroupware//NONSGML EGroupware Calendar '.$GLOBALS['egw_info']['apps']['calendar']['version'].'//'. |
|
| 3234 | + $vcal->setAttribute('PRODID', '-//EGroupware//NONSGML EGroupware Calendar '.$GLOBALS['egw_info']['apps']['calendar']['version'].'//'. |
|
| 3236 | 3235 | strtoupper($GLOBALS['egw_info']['user']['preferences']['common']['lang'])); |
| 3237 | - $vcal->setAttribute('VERSION','2.0'); |
|
| 3238 | - $vcal->setAttribute('METHOD',$method); |
|
| 3236 | + $vcal->setAttribute('VERSION', '2.0'); |
|
| 3237 | + $vcal->setAttribute('METHOD', $method); |
|
| 3239 | 3238 | |
| 3240 | - $vfreebusy = Horde_Icalendar::newComponent('VFREEBUSY',$vcal); |
|
| 3239 | + $vfreebusy = Horde_Icalendar::newComponent('VFREEBUSY', $vcal); |
|
| 3241 | 3240 | |
| 3242 | 3241 | $attributes = array( |
| 3243 | 3242 | 'DTSTAMP' => time(), |
| 3244 | - 'DTSTART' => $this->date2ts($start,true), // true = server-time |
|
| 3245 | - 'DTEND' => $this->date2ts($end,true), // true = server-time |
|
| 3243 | + 'DTSTART' => $this->date2ts($start, true), // true = server-time |
|
| 3244 | + 'DTEND' => $this->date2ts($end, true), // true = server-time |
|
| 3246 | 3245 | ); |
| 3247 | 3246 | if (!$utc) |
| 3248 | 3247 | { |
@@ -3253,9 +3252,9 @@ discard block |
||
| 3253 | 3252 | } |
| 3254 | 3253 | if (is_null($extra)) $extra = array( |
| 3255 | 3254 | 'URL' => $this->freebusy_url($user), |
| 3256 | - 'ORGANIZER' => 'mailto:'.$GLOBALS['egw']->accounts->id2name($user,'account_email'), |
|
| 3255 | + 'ORGANIZER' => 'mailto:'.$GLOBALS['egw']->accounts->id2name($user, 'account_email'), |
|
| 3257 | 3256 | ); |
| 3258 | - foreach($attributes+$extra as $attr => $value) |
|
| 3257 | + foreach ($attributes + $extra as $attr => $value) |
|
| 3259 | 3258 | { |
| 3260 | 3259 | $vfreebusy->setAttribute($attr, $value); |
| 3261 | 3260 | } |
@@ -3278,16 +3277,16 @@ discard block |
||
| 3278 | 3277 | |
| 3279 | 3278 | if ($utc) |
| 3280 | 3279 | { |
| 3281 | - $vfreebusy->setAttribute('FREEBUSY',array(array( |
|
| 3280 | + $vfreebusy->setAttribute('FREEBUSY', array(array( |
|
| 3282 | 3281 | 'start' => $event['start'], |
| 3283 | 3282 | 'end' => $event['end'], |
| 3284 | 3283 | )), array('FBTYPE' => $fbtype)); |
| 3285 | 3284 | } |
| 3286 | 3285 | else |
| 3287 | 3286 | { |
| 3288 | - $vfreebusy->setAttribute('FREEBUSY',array(array( |
|
| 3289 | - 'start' => date('Ymd\THis',$event['start']), |
|
| 3290 | - 'end' => date('Ymd\THis',$event['end']), |
|
| 3287 | + $vfreebusy->setAttribute('FREEBUSY', array(array( |
|
| 3288 | + 'start' => date('Ymd\THis', $event['start']), |
|
| 3289 | + 'end' => date('Ymd\THis', $event['end']), |
|
| 3291 | 3290 | )), array('FBTYPE' => $fbtype)); |
| 3292 | 3291 | } |
| 3293 | 3292 | } |
@@ -17,12 +17,12 @@ discard block |
||
| 17 | 17 | /** |
| 18 | 18 | * class import_csv for calendar |
| 19 | 19 | */ |
| 20 | -class calendar_import_csv extends importexport_basic_import_csv { |
|
| 20 | +class calendar_import_csv extends importexport_basic_import_csv { |
|
| 21 | 21 | |
| 22 | 22 | /** |
| 23 | 23 | * actions wich could be done to data entries |
| 24 | 24 | */ |
| 25 | - protected static $actions = array( 'none', 'update', 'insert' ); |
|
| 25 | + protected static $actions = array('none', 'update', 'insert'); |
|
| 26 | 26 | |
| 27 | 27 | /** |
| 28 | 28 | * conditions for actions |
@@ -44,16 +44,16 @@ discard block |
||
| 44 | 44 | /** |
| 45 | 45 | * Set up tracker |
| 46 | 46 | */ |
| 47 | - protected function init(importexport_definition &$definition) |
|
| 47 | + protected function init(importexport_definition&$definition) |
|
| 48 | 48 | { |
| 49 | 49 | // fetch the addressbook bo |
| 50 | - $this->bo= new calendar_boupdate(); |
|
| 50 | + $this->bo = new calendar_boupdate(); |
|
| 51 | 51 | |
| 52 | 52 | // Get the tracker for changes |
| 53 | 53 | $this->tracking = new calendar_tracking(); |
| 54 | 54 | |
| 55 | 55 | // Used for participants |
| 56 | - $this->status_map = array_flip(array_map('lang',$this->bo->verbose_status)); |
|
| 56 | + $this->status_map = array_flip(array_map('lang', $this->bo->verbose_status)); |
|
| 57 | 57 | $this->role_map = array_flip($this->bo->roles); |
| 58 | 58 | |
| 59 | 59 | $this->lookups = array( |
@@ -76,15 +76,15 @@ discard block |
||
| 76 | 76 | * |
| 77 | 77 | * @return boolean success |
| 78 | 78 | */ |
| 79 | - public function import_record(\importexport_iface_egw_record &$record, &$import_csv) |
|
| 79 | + public function import_record(\importexport_iface_egw_record&$record, &$import_csv) |
|
| 80 | 80 | { |
| 81 | 81 | // set eventOwner |
| 82 | - $options =& $this->definition->plugin_options; |
|
| 82 | + $options = & $this->definition->plugin_options; |
|
| 83 | 83 | $options['owner'] = $options['owner'] ? $options['owner'] : $this->user; |
| 84 | 84 | |
| 85 | 85 | // Set owner, unless it's supposed to come from CSV file |
| 86 | - if($options['owner_from_csv']) { |
|
| 87 | - if(!is_numeric($record['owner'])) { |
|
| 86 | + if ($options['owner_from_csv']) { |
|
| 87 | + if (!is_numeric($record['owner'])) { |
|
| 88 | 88 | $this->errors[$import_csv->get_current_position()] = lang( |
| 89 | 89 | 'Invalid owner ID: %1. Might be a bad field translation. Used %2 instead.', |
| 90 | 90 | $record->owner, |
@@ -99,7 +99,7 @@ discard block |
||
| 99 | 99 | } |
| 100 | 100 | |
| 101 | 101 | // Handle errors in length or start/end date |
| 102 | - if($record->start > $record->end) |
|
| 102 | + if ($record->start > $record->end) |
|
| 103 | 103 | { |
| 104 | 104 | $record->end = $record->start + $GLOBALS['egw_info']['user']['preferences']['calendar']['defaultlength'] * 60; |
| 105 | 105 | $this->warnings[$import_csv->get_current_position()] = lang('error: starttime has to be before the endtime !!!'); |
@@ -109,11 +109,11 @@ discard block |
||
| 109 | 109 | if ($record->participants && !is_array($record->participants)) { |
| 110 | 110 | // Importing participants in human friendly format: |
| 111 | 111 | // Name (quantity)? (status) Role[, Name (quantity)? (status) Role]+ |
| 112 | - preg_match_all('/(([^(]+?)(?: \(([\d]+)\))? \(([^,)]+)\)(?: ([^ ,]+))?)(?:, )?/',$record->participants,$participants); |
|
| 112 | + preg_match_all('/(([^(]+?)(?: \(([\d]+)\))? \(([^,)]+)\)(?: ([^ ,]+))?)(?:, )?/', $record->participants, $participants); |
|
| 113 | 113 | $p_participants = array(); |
| 114 | 114 | $missing = array(); |
| 115 | 115 | list($lines, $p, $names, $quantity, $status, $role) = $participants; |
| 116 | - foreach($names as $key => $name) { |
|
| 116 | + foreach ($names as $key => $name) { |
|
| 117 | 117 | //error_log("Name: $name Quantity: {$quantity[$key]} Status: {$status[$key]} Role: {$role[$key]}"); |
| 118 | 118 | |
| 119 | 119 | // Search for direct account name, then user in accounts first |
@@ -121,26 +121,26 @@ discard block |
||
| 121 | 121 | $id = importexport_helper_functions::account_name2id($name); |
| 122 | 122 | |
| 123 | 123 | // If not found, or not an exact match to a user (account_name2id is pretty generous) |
| 124 | - if(!$id || $names[$key] !== $this->bo->participant_name($id)) { |
|
| 125 | - $contacts = ExecMethod2('addressbook.addressbook_bo.search', $search,array('contact_id','account_id'),'org_name,n_family,n_given,cat_id,contact_email','','%',false,'OR',array(0,1)); |
|
| 126 | - if($contacts) $id = $contacts[0]['account_id'] ? $contacts[0]['account_id'] : 'c'.$contacts[0]['contact_id']; |
|
| 124 | + if (!$id || $names[$key] !== $this->bo->participant_name($id)) { |
|
| 125 | + $contacts = ExecMethod2('addressbook.addressbook_bo.search', $search, array('contact_id', 'account_id'), 'org_name,n_family,n_given,cat_id,contact_email', '', '%', false, 'OR', array(0, 1)); |
|
| 126 | + if ($contacts) $id = $contacts[0]['account_id'] ? $contacts[0]['account_id'] : 'c'.$contacts[0]['contact_id']; |
|
| 127 | 127 | } |
| 128 | - if(!$id) |
|
| 128 | + if (!$id) |
|
| 129 | 129 | { |
| 130 | 130 | // Use calendar's registered resources to find participant |
| 131 | - foreach($this->bo->resources as $resource) |
|
| 131 | + foreach ($this->bo->resources as $resource) |
|
| 132 | 132 | { |
| 133 | 133 | // Can't search for email |
| 134 | - if($resource['app'] == 'email') continue; |
|
| 134 | + if ($resource['app'] == 'email') continue; |
|
| 135 | 135 | // Special resource search, since it does special stuff in link_query |
| 136 | - if($resource['app'] == 'resources') |
|
| 136 | + if ($resource['app'] == 'resources') |
|
| 137 | 137 | { |
| 138 | - if(!$this->resource_so) |
|
| 138 | + if (!$this->resource_so) |
|
| 139 | 139 | { |
| 140 | 140 | $this->resource_so = new resources_so(); |
| 141 | 141 | } |
| 142 | - $result = $this->resource_so->search($search,'res_id'); |
|
| 143 | - if(count($result) >= 1) { |
|
| 142 | + $result = $this->resource_so->search($search, 'res_id'); |
|
| 143 | + if (count($result) >= 1) { |
|
| 144 | 144 | $id = $resource['type'].$result[0]['res_id']; |
| 145 | 145 | break; |
| 146 | 146 | } |
@@ -151,15 +151,15 @@ discard block |
||
| 151 | 151 | $link_options = array(); |
| 152 | 152 | $result = Link::query($resource['app'], $search, $link_options); |
| 153 | 153 | |
| 154 | - if($result) |
|
| 154 | + if ($result) |
|
| 155 | 155 | { |
| 156 | - $id = $resource['type'] . key($result); |
|
| 156 | + $id = $resource['type'].key($result); |
|
| 157 | 157 | break; |
| 158 | 158 | } |
| 159 | 159 | } |
| 160 | 160 | } |
| 161 | 161 | } |
| 162 | - if($id) { |
|
| 162 | + if ($id) { |
|
| 163 | 163 | $p_participants[$id] = calendar_so::combine_status( |
| 164 | 164 | $this->status_map[lang($status[$key])] ? $this->status_map[lang($status[$key])] : $status[$key][0], |
| 165 | 165 | $quantity[$key] ? $quantity[$key] : 1, |
@@ -170,47 +170,47 @@ discard block |
||
| 170 | 170 | { |
| 171 | 171 | $missing[] = $name; |
| 172 | 172 | } |
| 173 | - if(count($missing) > 0) |
|
| 173 | + if (count($missing) > 0) |
|
| 174 | 174 | { |
| 175 | - $this->warnings[$import_csv->get_current_position()] = $record->title . ' ' . lang('participants') . ': ' . |
|
| 176 | - lang('Contact not found!') . '<br />'.implode(", ",$missing); |
|
| 175 | + $this->warnings[$import_csv->get_current_position()] = $record->title.' '.lang('participants').': '. |
|
| 176 | + lang('Contact not found!').'<br />'.implode(", ", $missing); |
|
| 177 | 177 | } |
| 178 | 178 | } |
| 179 | 179 | $record->participants = $p_participants; |
| 180 | 180 | } |
| 181 | 181 | |
| 182 | - if($record->recurrence) |
|
| 182 | + if ($record->recurrence) |
|
| 183 | 183 | { |
| 184 | - list($record->recur_type, $record->recur_interval) = explode('/',$record->recurrence,2); |
|
| 184 | + list($record->recur_type, $record->recur_interval) = explode('/', $record->recurrence, 2); |
|
| 185 | 185 | $record->recur_interval = trim($record->recur_interval); |
| 186 | - $record->recur_type = array_search(strtolower(trim($record->recur_type)), array_map('strtolower',$this->lookups['recurrence'])); |
|
| 186 | + $record->recur_type = array_search(strtolower(trim($record->recur_type)), array_map('strtolower', $this->lookups['recurrence'])); |
|
| 187 | 187 | unset($record->recurrence); |
| 188 | 188 | } |
| 189 | 189 | $record->tzid = calendar_timezones::id2tz($record->tz_id); |
| 190 | 190 | |
| 191 | - if ( $options['conditions'] ) { |
|
| 192 | - foreach ( $options['conditions'] as $condition ) { |
|
| 191 | + if ($options['conditions']) { |
|
| 192 | + foreach ($options['conditions'] as $condition) { |
|
| 193 | 193 | $records = array(); |
| 194 | - switch ( $condition['type'] ) { |
|
| 194 | + switch ($condition['type']) { |
|
| 195 | 195 | // exists |
| 196 | 196 | case 'exists' : |
| 197 | 197 | // Check for that record |
| 198 | 198 | $result = $this->exists($record, $condition, $records); |
| 199 | 199 | |
| 200 | - if ( is_array( $records ) && count( $records ) >= 1) { |
|
| 200 | + if (is_array($records) && count($records) >= 1) { |
|
| 201 | 201 | // apply action to all records matching this exists condition |
| 202 | 202 | $action = $condition['true']; |
| 203 | - foreach ( (array)$records as $event ) { |
|
| 203 | + foreach ((array)$records as $event) { |
|
| 204 | 204 | $record->id = $event['id']; |
| 205 | - if ( $this->definition->plugin_options['update_cats'] == 'add' ) { |
|
| 206 | - if ( !is_array( $record->category ) ) $record->category = explode( ',', $record->category ); |
|
| 207 | - $record->category = implode( ',', array_unique( array_merge( $record->category, $event['category'] ) ) ); |
|
| 205 | + if ($this->definition->plugin_options['update_cats'] == 'add') { |
|
| 206 | + if (!is_array($record->category)) $record->category = explode(',', $record->category); |
|
| 207 | + $record->category = implode(',', array_unique(array_merge($record->category, $event['category']))); |
|
| 208 | 208 | } |
| 209 | - $success = $this->action( $action['action'], $record, $import_csv->get_current_position() ); |
|
| 209 | + $success = $this->action($action['action'], $record, $import_csv->get_current_position()); |
|
| 210 | 210 | } |
| 211 | 211 | } else { |
| 212 | 212 | $action = $condition['false']; |
| 213 | - $success = ($this->action( $action['action'], $record, $import_csv->get_current_position() )); |
|
| 213 | + $success = ($this->action($action['action'], $record, $import_csv->get_current_position())); |
|
| 214 | 214 | } |
| 215 | 215 | break; |
| 216 | 216 | |
@@ -223,7 +223,7 @@ discard block |
||
| 223 | 223 | } |
| 224 | 224 | } else { |
| 225 | 225 | // unconditional insert |
| 226 | - $success = $this->action( 'insert', $record, $import_csv->get_current_position() ); |
|
| 226 | + $success = $this->action('insert', $record, $import_csv->get_current_position()); |
|
| 227 | 227 | } |
| 228 | 228 | |
| 229 | 229 | return $success; |
@@ -238,14 +238,14 @@ discard block |
||
| 238 | 238 | * |
| 239 | 239 | * @return boolean |
| 240 | 240 | */ |
| 241 | - protected function exists(importexport_iface_egw_record &$record, Array &$condition, &$records = array()) |
|
| 241 | + protected function exists(importexport_iface_egw_record&$record, Array &$condition, &$records = array()) |
|
| 242 | 242 | { |
| 243 | - if($record->__get($condition['string']) && $condition['string'] == 'id') { |
|
| 243 | + if ($record->__get($condition['string']) && $condition['string'] == 'id') { |
|
| 244 | 244 | $event = $this->bo->read($record->__get($condition['string'])); |
| 245 | 245 | $records = array($event); |
| 246 | 246 | } |
| 247 | 247 | |
| 248 | - if ( is_array( $records ) && count( $records ) >= 1) { |
|
| 248 | + if (is_array($records) && count($records) >= 1) { |
|
| 249 | 249 | return true; |
| 250 | 250 | } |
| 251 | 251 | return false; |
@@ -258,7 +258,7 @@ discard block |
||
| 258 | 258 | * @param array $_data record data for the action |
| 259 | 259 | * @return bool success or not |
| 260 | 260 | */ |
| 261 | - protected function action ( $_action, importexport_iface_egw_record &$record, $record_num = 0 ) |
|
| 261 | + protected function action($_action, importexport_iface_egw_record&$record, $record_num = 0) |
|
| 262 | 262 | { |
| 263 | 263 | $_data = $record->get_record_array(); |
| 264 | 264 | switch ($_action) { |
@@ -269,7 +269,7 @@ discard block |
||
| 269 | 269 | $old = $this->bo->read($_data['id']); |
| 270 | 270 | |
| 271 | 271 | // Don't change a user account into a record |
| 272 | - if(!$this->definition->plugin_options['change_owner']) { |
|
| 272 | + if (!$this->definition->plugin_options['change_owner']) { |
|
| 273 | 273 | // Don't change owner of an existing record |
| 274 | 274 | unset($_data['owner']); |
| 275 | 275 | } |
@@ -277,30 +277,30 @@ discard block |
||
| 277 | 277 | // Merge to deal with fields not in import record |
| 278 | 278 | $_data = array_merge($old, $_data); |
| 279 | 279 | $changed = $this->tracking->changed_fields($_data, $old); |
| 280 | - if(count($changed) == 0) { |
|
| 280 | + if (count($changed) == 0) { |
|
| 281 | 281 | return true; |
| 282 | 282 | } |
| 283 | 283 | // Fall through |
| 284 | 284 | case 'insert' : |
| 285 | - if($_action == 'insert') { |
|
| 285 | + if ($_action == 'insert') { |
|
| 286 | 286 | // Backend doesn't like inserting with ID specified, can overwrite existing |
| 287 | 287 | unset($_data['id']); |
| 288 | 288 | } |
| 289 | 289 | // Make sure participants are set |
| 290 | - if(!$_data['participants']) { |
|
| 290 | + if (!$_data['participants']) { |
|
| 291 | 291 | $user = $_data['owner'] ? $_data['owner'] : $this->user; |
| 292 | 292 | $_data['participants'] = array( |
| 293 | 293 | $user => 'U' |
| 294 | 294 | ); |
| 295 | 295 | } |
| 296 | - if ( $this->dry_run ) { |
|
| 296 | + if ($this->dry_run) { |
|
| 297 | 297 | //print_r($_data); |
| 298 | 298 | // User is interested in conflict checks, do so for dry run |
| 299 | 299 | // Otherwise, conflicts are just ignored and imported anyway |
| 300 | - if($this->definition->plugin_options['skip_conflicts'] && !$_data['non_blocking']) |
|
| 300 | + if ($this->definition->plugin_options['skip_conflicts'] && !$_data['non_blocking']) |
|
| 301 | 301 | { |
| 302 | 302 | $conflicts = $this->bo->conflicts($_data); |
| 303 | - if($conflicts) |
|
| 303 | + if ($conflicts) |
|
| 304 | 304 | { |
| 305 | 305 | $this->conflict_warning($record_num, $conflicts); |
| 306 | 306 | $this->results['skipped']++; |
@@ -311,15 +311,15 @@ discard block |
||
| 311 | 311 | return true; |
| 312 | 312 | } else { |
| 313 | 313 | $messages = null; |
| 314 | - $result = $this->bo->update( $_data, |
|
| 314 | + $result = $this->bo->update($_data, |
|
| 315 | 315 | !$this->definition->plugin_options['skip_conflicts'], |
| 316 | 316 | true, $this->is_admin, true, $messages, |
| 317 | 317 | $this->definition->plugin_options['no_notification'] |
| 318 | 318 | ); |
| 319 | - if(!$result) |
|
| 319 | + if (!$result) |
|
| 320 | 320 | { |
| 321 | - $this->errors[$record_num] = lang('Unable to save') . "\n" . |
|
| 322 | - implode("\n",$messages); |
|
| 321 | + $this->errors[$record_num] = lang('Unable to save')."\n". |
|
| 322 | + implode("\n", $messages); |
|
| 323 | 323 | } |
| 324 | 324 | else if (is_array($result)) |
| 325 | 325 | { |
@@ -349,10 +349,10 @@ discard block |
||
| 349 | 349 | */ |
| 350 | 350 | protected function conflict_warning($record_num, &$conflicts) |
| 351 | 351 | { |
| 352 | - $this->warnings[$record_num] = lang('Conflicts') . ':'; |
|
| 353 | - foreach($conflicts as $conflict) |
|
| 352 | + $this->warnings[$record_num] = lang('Conflicts').':'; |
|
| 353 | + foreach ($conflicts as $conflict) |
|
| 354 | 354 | { |
| 355 | - $this->warnings[$record_num] .= "<br />\n" . Api\DateTime::to($conflict['start']) . "\t" . $conflict['title']; |
|
| 355 | + $this->warnings[$record_num] .= "<br />\n".Api\DateTime::to($conflict['start'])."\t".$conflict['title']; |
|
| 356 | 356 | } |
| 357 | 357 | } |
| 358 | 358 | |
@@ -388,9 +388,9 @@ discard block |
||
| 388 | 388 | * |
| 389 | 389 | * @param egw_record $row_entry |
| 390 | 390 | */ |
| 391 | - protected function row_preview(importexport_iface_egw_record &$row_entry) |
|
| 391 | + protected function row_preview(importexport_iface_egw_record&$row_entry) |
|
| 392 | 392 | { |
| 393 | - $row_entry->participants = implode('<br />', $this->bo->participants(array('participants' => $row_entry->participants),true)); |
|
| 393 | + $row_entry->participants = implode('<br />', $this->bo->participants(array('participants' => $row_entry->participants), true)); |
|
| 394 | 394 | } |
| 395 | 395 | |
| 396 | 396 | } // end of iface_export_plugin |