patch from christian binder

class.boical.inc.php
285: handle exceptions field on export (delimiter changed to ";")
295: handle TRANSP value (0 or 1) on export
554: handle exceptions field on import
568: handle TRANSP value (0 or 1) on import
774-777: set supported fields for recur_exceptions and non_blocking

added support for handling non blocking events for vcal(1.0) and ical(2.0)
This commit is contained in:
Lars Kneschke 2006-08-24 09:46:46 +00:00
parent 325b1f09ee
commit 7251eee8b8

View File

@ -282,7 +282,7 @@
{ {
$days[] = date('Ymd',$day); $days[] = date('Ymd',$day);
} }
$attributes['EXDATE'] = implode(',',$days); $attributes['EXDATE'] = implode(';',$days);
$parameters['EXDATE']['VALUE'] = 'DATE'; $parameters['EXDATE']['VALUE'] = 'DATE';
} }
break; break;
@ -292,7 +292,11 @@
break; break;
case 'TRANSP': case 'TRANSP':
$attributes['TRANSP'] = $event['non_blocking'] ? 'TRANSPARENT' : 'OPAQUE'; if ($version == '1.0') {
$attributes['TRANSP'] = $event['non_blocking'] ? 1 : 0;
} else {
$attributes['TRANSP'] = $event['non_blocking'] ? 'TRANSPARENT' : 'OPAQUE';
}
break; break;
case 'CATEGORIES': case 'CATEGORIES':
@ -361,11 +365,13 @@
$_vcalData = preg_replace("/[\r\n]+ /",'',$_vcalData); $_vcalData = preg_replace("/[\r\n]+ /",'',$_vcalData);
$vcal = &new Horde_iCalendar; $vcal = &new Horde_iCalendar;
if(!$vcal->parsevCalendar($_vcalData)) if(!$vcal->parsevCalendar($_vcalData))
{ {
return FALSE; return FALSE;
} }
$version = $vcal->getAttribute('VERSION');
if(!is_array($this->supportedFields)) if(!is_array($this->supportedFields))
{ {
$this->setSupportedFields(); $this->setSupportedFields();
@ -551,7 +557,7 @@
} }
break; break;
case 'EXDATE': case 'EXDATE':
// ToDo: $vcardData['recur_exception'] = ... $vcardData['recur_exception'] = $attributes['value'];
break; break;
case 'SUMMARY': case 'SUMMARY':
$vcardData['title'] = $attributes['value']; $vcardData['title'] = $attributes['value'];
@ -565,7 +571,11 @@
} }
break; break;
case 'TRANSP': case 'TRANSP':
$vcardData['non_blocking'] = $attributes['value'] == 'TRANSPARENT'; if($version = '1.0') {
$vcardData['non_blocking'] = $attributes['value'] == 1;
} else {
$vcardData['non_blocking'] = $attributes['value'] == 'TRANSPARENT';
}
break; break;
case 'PRIORITY': case 'PRIORITY':
$vcardData['priority'] = (int) $this->priority_ical2egw[$attributes['value']]; $vcardData['priority'] = (int) $this->priority_ical2egw[$attributes['value']];
@ -771,7 +781,10 @@
switch(strtolower($_productName)) switch(strtolower($_productName))
{ {
default: default:
$this->supportedFields = $defaultFields; $this->supportedFields = $defaultFields + array(
'recur_exception' => 'recur_exception',
'non_blocking' => 'non_blocking',
);
break; break;
} }
break; break;
@ -941,7 +954,7 @@
} }
break; break;
case 'EXDATE': case 'EXDATE':
// ToDo: $vcardData['recur_exception'] = ... $vcardData['recur_exception'] = $attributes['value'];
break; break;
case 'SUMMARY': case 'SUMMARY':
$vcardData['title'] = $attributes['value']; $vcardData['title'] = $attributes['value'];