$dtend->setDateTime($dtend->getDateTime()->add($delta), $end_type);
unset($vevent->DURATION);
-$vevent->setDateTime('LAST-MODIFIED', 'now', Sabre_VObject_Element_DateTime::UTC);
-$vevent->setDateTime('DTSTAMP', 'now', Sabre_VObject_Element_DateTime::UTC);
+$vevent->setDateTime('LAST-MODIFIED', 'now', Sabre_VObject_Property_DateTime::UTC);
+$vevent->setDateTime('DTSTAMP', 'now', Sabre_VObject_Property_DateTime::UTC);
- $result = OC_Calendar_Object::edit($id, $vcalendar->serialize());
+ OC_Calendar_Object::edit($id, $vcalendar->serialize());
$lastmodified = $vevent->__get('LAST-MODIFIED')->getDateTime();
OC_JSON::success(array('lastmodified'=>(int)$lastmodified->format('U')));
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
- if(version_compare(PHP_VERSION, '5.3.0', '>=')){
- $start = DateTime::createFromFormat('U', $_GET['start']);
- $end = DateTime::createFromFormat('U', $_GET['end']);
- }else{
- $start = new DateTime('@' . $_GET['start']);
- $end = new DateTime('@' . $_GET['end']);
- }
+ $start = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['start']):new DateTime('@' . $_GET['start']);
+ $end = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['end']):new DateTime('@' . $_GET['end']);
- $calendar_id = $_GET['calendar_id'];
- if (is_numeric($calendar_id)) {
- $calendar = OC_Calendar_App::getCalendar($calendar_id);
- OC_Response::enableCaching(0);
- OC_Response::setETagHeader($calendar['ctag']);
- $events = OC_Calendar_Object::allInPeriod($calendar_id, $start, $end);
- } else {
- $events = array();
- OC_Hook::emit('OC_Calendar', 'getEvents', array('calendar_id' => $calendar_id, 'events' => &$events));
- }
+ $events = OC_Calendar_App::getrequestedEvents($_GET['calendar_id'], $start, $end);
- $user_timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get());
- $return = array();
+ $output = array();
foreach($events as $event){
- if (isset($event['calendardata'])) {
- $object = OC_VObject::parse($event['calendardata']);
- $vevent = $object->VEVENT;
- } else {
- $vevent = $event['vevent'];
- }
-
- $return_event = create_return_event($event, $vevent);
-
- $dtstart = $vevent->DTSTART;
- $start_dt = $dtstart->getDateTime();
- $dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
- $end_dt = $dtend->getDateTime();
- if ($dtstart->getDateType() == Sabre_VObject_Property_DateTime::DATE){
- $return_event['allDay'] = true;
- }else{
- $return_event['allDay'] = false;
- $start_dt->setTimezone(new DateTimeZone($user_timezone));
- $end_dt->setTimezone(new DateTimeZone($user_timezone));
- }
-
- //Repeating Events
- if($event['repeating'] == 1){
- $duration = (double) $end_dt->format('U') - (double) $start_dt->format('U');
- $r = new When();
- $r->recur($start_dt)->rrule((string) $vevent->RRULE);
- while($result = $r->next()){
- if($result < $start){
- continue;
- }
- if($result > $end){
- break;
- }
- if($return_event['allDay'] == true){
- $return_event['start'] = $result->format('Y-m-d');
- $return_event['end'] = date('Y-m-d', $result->format('U') + --$duration);
- }else{
- $return_event['start'] = $result->format('Y-m-d H:i:s');
- $return_event['end'] = date('Y-m-d H:i:s', $result->format('U') + $duration);
- }
- $return[] = $return_event;
- }
- }else{
- if($return_event['allDay'] == true){
- $return_event['start'] = $start_dt->format('Y-m-d');
- $end_dt->modify('-1 sec');
- $return_event['end'] = $end_dt->format('Y-m-d');
- }else{
- $return_event['start'] = $start_dt->format('Y-m-d H:i:s');
- $return_event['end'] = $end_dt->format('Y-m-d H:i:s');
- }
- $return[] = $return_event;
- }
+ $output[] = OC_Calendar_App::generateEventOutput($event, $start, $end);
-
}
- OC_JSON::encodedPrint($return);
+ OC_JSON::encodedPrint($output);
?>
}
- $vevent->setDateTime('LAST-MODIFIED', 'now', Sabre_VObject_Element_DateTime::UTC);
- $vevent->setDateTime('DTSTAMP', 'now', Sabre_VObject_Element_DateTime::UTC);
+ $vevent->setDateTime('LAST-MODIFIED', 'now', Sabre_VObject_Property_DateTime::UTC);
+ $vevent->setDateTime('DTSTAMP', 'now', Sabre_VObject_Property_DateTime::UTC);
$vevent->setString('SUMMARY', $title);
- $dtstart = new Sabre_VObject_Property_DateTime('DTSTART');
- $dtend = new Sabre_VObject_Property_DateTime('DTEND');
if($allday){
$start = new DateTime($from);
$end = new DateTime($to.' +1 day');