From 1309e1b37b3b262aa4e01444ce334632308fc39c Mon Sep 17 00:00:00 2001 From: skeeter Date: Sat, 31 Mar 2001 14:30:13 +0000 Subject: [PATCH] This fixes 3 problems. 1) The serializing of class elements that are themselves classes didn't keep the class name; 2) When validating events, the date check was not getting spanning days correctly; 3) When displaying Overlapping events, the users timezone was not taken into account. --- calendar/edit_entry_handler.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/calendar/edit_entry_handler.php b/calendar/edit_entry_handler.php index ff80651bc9..199c9f6dbc 100755 --- a/calendar/edit_entry_handler.php +++ b/calendar/edit_entry_handler.php @@ -26,7 +26,7 @@ $phpgw_info['flags'] = $phpgw_flags; include('../header.inc.php'); - $cal_info = CreateObject('calendar.calendar_item'); + $event = CreateObject('calendar.calendar_item'); function validate($event) { @@ -42,7 +42,7 @@ { $error = 41; } - elseif (($phpgw->calendar->date_valid($event->start->year,$event->start->month,$event->start->mday) == False) || ($phpgw->calendar->date_valid($event->end->year,$event->end->month,$event->end->mday) == False) || ($phpgw->calendar->date_compare($event->start->year,$event->start->month,$event->start->mday,$event->end->year,$event->end->month,$event->end->mday) == -1)) + elseif (($phpgw->calendar->date_valid($event->start->year,$event->start->month,$event->start->mday) == False) || ($phpgw->calendar->date_valid($event->end->year,$event->end->month,$event->end->mday) == False) || ($phpgw->calendar->date_compare($event->start->year,$event->start->month,$event->start->mday,$event->end->year,$event->end->month,$event->end->mday) == 1)) { $error = 42; } @@ -191,13 +191,17 @@ } else { - $event = $phpgw->session->appsession('entry','calendar'); + $cal_stream = $phpgw->calendar->open('INBOX',intval($owner),''); + $phpgw->calendar->event_init($cal_stream); + + $event = unserialize(str_replace('O:8:"stdClass"','O:13:"calendar_time"',serialize($phpgw->session->appsession('entry','calendar')))); $phpgw->calendar->event = $event; + $datetime_check = validate($event); } if($datetime_check) { - Header('Location: '.$phpgw->link('/'.$phpgw_info['flags']['currentapp'].'/edit_entry.php','readsess='.$cal_info->id.'&cd='.$datetime_check)); + Header('Location: '.$phpgw->link('/calendar/edit_entry.php','readsess='.$event->id.'&cd='.$datetime_check)); $phpgw->common->phpgw_exit(); } elseif($overlapping_events) @@ -231,8 +235,8 @@ $overlap .= $phpgw->calendar->link_to_entry($over->id,'circle.gif',$over->description).$over->title; } - $over_start = mktime($over->start->hour,$over->start->min,$over->start->sec,$over->start->month,$over->start->mday,$over->start->year); - $over_end = mktime($over->end->hour,$over->end->min,$over->end->sec,$over->end->month,$over->end->mday,$over->end->year); + $over_start = mktime($over->start->hour,$over->start->min,$over->start->sec,$over->start->month,$over->start->mday,$over->start->year) - $tz_offset; + $over_end = mktime($over->end->hour,$over->end->min,$over->end->sec,$over->end->month,$over->end->mday,$over->end->year) - $tz_offset; $overlap .= ' ('.$phpgw->common->show_date($over_start).' - '.$phpgw->common->show_date($over_end).')
'; } if(strlen($overlap) > 0) @@ -255,7 +259,7 @@ $phpgw->calendar->event = $event; $var = Array( - 'action_url_button' => $phpgw->link('/'.$phpgw_info['flags']['currentapp'].'/edit_entry_handler.php','readsess='.$event->id.'&year='.$event->year.'&month='.$event->month.'&day='.$event->mday), + 'action_url_button' => $phpgw->link('/calendar/edit_entry_handler.php','readsess='.$event->id.'&year='.$event->start->year.'&month='.$event->start->month.'&day='.$event->start->mday), 'action_text_button' => lang('Ignore Conflict'), 'action_confirm_button' => '' ); @@ -264,7 +268,7 @@ $p->parse('resubmit_button','form_button'); $var = Array( - 'action_url_button' => $phpgw->link('/'.$phpgw_info['flags']['currentapp'].'/edit_entry.php','readsess='.$event->id.'&year='.$event->start->year.'&month='.$event->start->month.'&day='.$event->start->day), + 'action_url_button' => $phpgw->link('/calendar/edit_entry.php','readsess='.$event->id.'&year='.$event->start->year.'&month='.$event->start->month.'&day='.$event->start->mday), 'action_text_button' => lang('Re-Edit Event'), 'action_confirm_button' => '' );