diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index 16115f29..f63ce426 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -927,6 +927,8 @@ class calendar extends rcube_plugin if ($calendars[$calid]) { $calname = $calendars[$calid]['name'] ? $calendars[$calid]['name'] : $calid; + $calname = preg_replace('/[^a-z0-9_.-]/i', '', html_entity_decode($calname)); // to 7bit ascii + if (empty($calname)) $calname = $calid; $events = $this->driver->load_events($start, $end, null, $calid, 0); } else diff --git a/plugins/calendar/lib/calendar_ical.php b/plugins/calendar/lib/calendar_ical.php index 5b69a7f3..83ff1be4 100644 --- a/plugins/calendar/lib/calendar_ical.php +++ b/plugins/calendar/lib/calendar_ical.php @@ -427,9 +427,12 @@ class calendar_ical // fold lines to 75 chars return rcube_vcard::rfc2425_fold($ical); } - + private function format_datetime($attr, $dt, $dateonly = false, $utc = false) { + if (is_numeric($dt)) + $dt = new DateTime('@'.$dt); + if ($utc) $dt->setTimezone(new DateTimeZone('UTC')); @@ -443,7 +446,7 @@ class calendar_ical return $attr . $tzid . ':' . $dt->format('Ymd\THis' . ($tzid ? '' : 'Z')); } } - + private function escpape($str) { return preg_replace('/(?