📄 event.php
字号:
{ $exception['event_id'] = $_REQUEST['exception_event_id']; $exception['time'] = $_REQUEST['exception_time']; $cal->add_exception($exception); $cal2 = new calendar(); $cal->get_event_resources($exception['event_id']); while($cal->next_record()) { $exception['event_id'] = $cal->f('id'); $cal2->add_exception($exception); } } $GO_SECURITY->add_user_to_acl($GO_SECURITY->user_id, $event['acl_write']); switch ($_POST['permissions']) { case PARTICIPANTS_WRITE: $GO_SECURITY->add_group_to_acl($GO_CONFIG->group_everyone, $event['acl_read']); //participants are added later break; case EVERYBODY_READ : $GO_SECURITY->add_group_to_acl($GO_CONFIG->group_everyone, $event['acl_read']); break; case EVERYBODY_WRITE : $GO_SECURITY->add_group_to_acl($GO_CONFIG->group_everyone, $event['acl_write']); break; } } } } if (!isset ($feedback)) { //add the event to all selected calendars //add group admins to acl if($calendar['group_id'] > 1 && $cal->get_group_admins($calendar['group_id'])) { while($cal->next_record()) { if(!$GO_SECURITY->user_in_acl($cal->f('user_id'), $event['acl_write'])) { $GO_SECURITY->add_user_to_acl($cal->f('user_id'), $event['acl_write']); } } } if ($event['reminder'] > 0) { $next_recurrence_time = $cal->get_next_recurrence_time($event_id); } $event = array_map('stripslashes', $event); foreach($_POST['writable_calendars'] as $writable_calendar_id) { if (in_array($writable_calendar_id, $_POST['calendars'])) { if (!$cal->event_is_subscribed($event_id, $writable_calendar_id)) { $cal->subscribe_event($event_id, $writable_calendar_id); } if($_POST['permissions'] == PARTICIPANTS_WRITE) { $writable_calendar = $cal->get_calendar($writable_calendar_id); if($writable_calendar['user_id'] != $event['user_id'] && !$GO_SECURITY->user_in_acl($writable_calendar['user_id'], $event['acl_write'])) { $GO_SECURITY->add_user_to_acl($writable_calendar['user_id'], $event['acl_write']); } } $cal->delete_reminder($cal->f('user_id'), $event_id); //set the reminder if ($event['reminder'] > 0 && $next_recurrence_time > 0) { $remind_time = $next_recurrence_time - $event['reminder']; $reminder['user_id'] = $cal->f('user_id'); $reminder['event_id'] = $event_id; $reminder['remind_time'] = $remind_time; $reminder['occurence_time'] = $next_recurrence_time; $cal->add_reminder($reminder); } } else { if ($cal->event_is_subscribed($event_id, $writable_calendar_id)) { $cal->unsubscribe_event($event_id, $writable_calendar_id); } } } //copy event properties $event_copy = array_map('addslashes',$event); unset($event_copy['id'], $event_copy['acl_read'],$event_copy['acl_write'], $event_copy['reminder']); $event_copy['status_id'] = 1; $event_copy['todo'] = '0'; if(isset($_POST['writable_resources'])) { foreach($_POST['writable_resources'] as $writable_resource_id) { $existing_resource = $cal->get_event_resource($event_id, $writable_resource_id); if (isset($_POST['resources']) && in_array($writable_resource_id, $_POST['resources'])) { $resource_calendar = $cal->get_calendar($writable_resource_id); $resource = $event_copy; $resource['event_id'] = $event_id; if(isset($_POST['resource_options'][$writable_resource_id])) { $resource['custom_fields'] = $cal->group_values_to_xml($_POST['resource_options'][$writable_resource_id], $resource_calendar['group_id']); }else { $resource['custom_fields'] = ''; } if($existing_resource) { $resource['id'] = $existing_resource['id']; $cal->update_event($resource); if( $cal->f('user_id') != $GO_SECURITY->user_id && ( $existing_resource['start_time'] != $resource['start_time'] || $existing_resource['end_time'] != $resource['end_time'] || $existing_resource['custom_fields'] != $resource['custom_fields'] ) ) { $resource_link = new hyperlink($GO_CONFIG->full_url. '?return_to='.urlencode($GO_MODULES->modules['calendar']['url']. 'event.php?event_id='.$event_id), $cal_open_resource); $body = sprintf($cal_resource_modified_mail_body,$_SESSION['GO_SESSION']['name'],$resource_calendar['name']); $body .= "<br /><br />".$resource_link->get_html(); $subject = sprintf($cal_resource_modified_mail_subject, $resource_calendar['name']); $user = $GO_USERS->get_user($cal->f('user_id')); sendmail($user['email'], $_SESSION['GO_SESSION']['email'], $_SESSION['GO_SESSION']['name'], $subject, $body, '3', 'text/HTML'); } }else { $resource['acl_read'] = $GO_SECURITY->get_new_acl(); $GO_SECURITY->add_group_to_acl($GO_CONFIG->group_everyone, $resource['acl_read']); $resource['acl_write'] = $GO_SECURITY->get_new_acl(); $resource_id = $cal->add_event($resource); $cal->subscribe_event($resource_id, $writable_resource_id); if($cal->get_group_admins($resource_calendar['group_id'])) { while($cal->next_record()) { $GO_SECURITY->add_user_to_acl($cal->f('user_id'), $resource['acl_write']); if($cal->f('user_id') != $GO_SECURITY->user_id) { $resource_link = new hyperlink($GO_CONFIG->full_url. '?return_to='.urlencode($GO_MODULES->modules['calendar']['url']. 'event.php?event_id='.$resource_id), $cal_open_resource); $body = sprintf($cal_resource_mail_body,$_SESSION['GO_SESSION']['name'],$resource_calendar['name']); $body .= "<br /><br />".$resource_link->get_html(); $subject = sprintf($cal_resource_mail_subject,$resource_calendar['name']); $user = $GO_USERS->get_user($cal->f('user_id')); sendmail($user['email'], $_SESSION['GO_SESSION']['email'], $_SESSION['GO_SESSION']['name'], $subject, $body, '3', 'text/HTML'); } } }else { $GO_SECURITY->add_user_to_acl($cal->f('user_id'), $resource['acl_write']); } } }elseif($existing_resource) { $cal->delete_event($existing_resource['id']); } } } $participants = $RFC822->explode_address_list(smart_stripslashes($_POST['to'])); $existing_participants = array (); $cal->get_participants($event_id); while ($cal->next_record()) { $existing_participants[] = $cal->f("email"); } //if ((count($participants) > 0 && $send_invitation) || count($participants) > count($existing_participants)) { if (count($participants) > 0) { //send an invitation mail to all participants $mail_body = '<html><body>'.$sc_invited.'<br /><br />'; $mail_body .= '<table border="0"><tr><td>'.$sc_title.':</td><td>'.$event['name'].'</td></tr>'; if ($_POST['description'] != '') { $mail_body .= '<tr><td valign="top">'.$strDescription.':</td>'; $mail_body .= '<td>'.text_to_html(smart_stripslashes($_POST['description'])).'</td></tr>'; } if ($_POST['location'] != '') { $mail_body .= '<tr><td>'.$sc_location.':</td>'; $mail_body .= '<td>'.text_to_html(smart_stripslashes($_POST['location'])).'</td></tr>'; } $mail_body .= '<tr><td>'.$sc_type.':</td>'; $mail_body .= '<td>'.$sc_types[$_POST['repeat_type']].'</td></tr>'; //don't calculate timezone offset for all day events //$timezone_offset_string = isset ($_POST['all_day_event']) ? 0 : $timezone_offset; $timezone_offset_string = $timezone_offset; if ($timezone_offset > 0) { $gmt_string = '\G\M\T +'.$timezone_offset_string; } elseif ($timezone_offset < 0) { $gmt_string = '\G\M\T -'.$timezone_offset_string; } else { $gmt_string = '\G\M\T'; } if (isset ($_POST['all_day_event'])) { $event_datetime_format = $_SESSION['GO_SESSION']['date_format']; } else { $event_datetime_format = $_SESSION['GO_SESSION']['date_format'].' '.$_SESSION['GO_SESSION']['time_format'].' '.$gmt_string; } $event_time_format = $_SESSION['GO_SESSION']['time_format'].' '.$gmt_string; switch ($_POST['repeat_type']) { case REPEAT_NONE : $mail_body .= '<tr><td>'.$sc_start_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['start_time'])).'</td></tr>'; if ($event['end_time'] != $event['start_time']) { $mail_body .= '<tr><td>'.$sc_end_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['end_time'])).'</td></tr>'; } break; case REPEAT_WEEKLY : if (!isset ($_POST['all_day_event'])) { $mail_body .= '<tr><td>'.$sc_start_at.':</td><td>'.date($event_time_format, gmt_to_local_time($event['start_time'])).'</td></tr>'; if ($event['end_time'] != $event['start_time']) { $mail_body .= '<tr><td>'.$sc_end_at.':</td><td>'.date($event_time_format, gmt_to_local_time($event['end_time'])).'</td></tr>'; } } $mail_body .= '<tr><td>'.$sc_at_days.':</td><td>'; $local_start_hour = date('H', $event['start_time'] - $timezone_offset) + ($timezone_offset / 3600); if ($local_start_hour > 23) { $local_start_hour = $local_start_hour -24; $shift_day = 1; } elseif ($local_start_hour < 0) { $local_start_hour = 24 + $local_start_hour; $shift_day = -1; } else { $shift_day = 0; } $event['days'] = array (); if (isset ($_POST['repeat_days_0'])) { $event['days'][] = $full_days[0 + $shift_day]; } if (isset ($_POST['repeat_days_1'])) { $event['days'][] = $full_days[1 + $shift_day]; } if (isset ($_POST['repeat_days_2'])) { $event['days'][] = $full_days[2 + $shift_day]; } if (isset ($_POST['repeat_days_3'])) { $event['days'][] = $full_days[3 + $shift_day]; } if (isset ($_POST['repeat_days_4'])) { $event['days'][] = $full_days[4 + $shift_day]; } if (isset ($_POST['repeat_days_5'])) { $event['days'][] = $full_days[5 + $shift_day]; } if (isset ($_POST['repeat_days_6'])) { $event['days'][] = $full_days[6] + $shift_day; } $mail_body .= implode(', ', $event['days']); $mail_body .= '</td></tr>'; $mail_body .= '<tr><td>'.$sc_cycle_end.':</td><td>'; if ($event['repeat_forever'] == '1') { $mail_body .= $sc_noend; } else { $mail_body .= date($_SESSION['GO_SESSION']['date_format'], $event['repeat_end_time']); } $mail_body .= '</td></tr>'; break; case REPEAT_DAILY : if (!isset ($_POST['all_day_event'])) { $mail_body .= '<tr><td>'.$sc_start_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['start_time'])).'</td></tr>'; $mail_body .= '<tr><td>'.$sc_end_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['end_time'])).'</td></tr>'; } $mail_body .= '<tr><td>'.$sc_cycle_end.':</td><td>'; if ($event['repeat_forever'] == '1') { $mail_body .= $sc_noend; } else { $mail_body .= date($_SESSION['GO_SESSION']['date_format'], $event['repeat_end_time']); } $mail_body .= '</td></tr>'; break; case REPEAT_MONTH_DATE : if (!isset ($_POST['all_day_event'])) { $mail_body .= '<tr><td>'.$sc_start_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['start_time'])).'</td></tr>'; if ($event['end_time'] != $event['start_time']) { $mail_body .= '<tr><td>'.$sc_end_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['end_time'])).'</td></tr>'; } } else { $mail_body .= '<tr><td>'.$sc_start_at.':</td><td>'.$sc_day.' '.date('d', $event['start_time']).'</td></tr>'; $mail_body .= '<tr><td>'.$sc_end_at.':</td><td>'.$sc_day.' '.date('d', $event['start_time']).'</td></tr>'; } $mail_body .= '<tr><td>'.$sc_cycle_end.':</td><td>'; if ($event['repeat_forever'] == '1') { $mail_body .= $sc_noend; } else { $mail_body .= date($_SESSION['GO_SESSION']['date_format'], $event['repeat_end_time']); } break; case REPEAT_MONTH_DAY : if (!isset ($_POST['all_day_event'])) { $mail_body .= '<tr><td>'.$sc_start_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['start_time'])).'</td></tr>'; if (isset ($event['repeat_forever'])) { $mail_body .= '<tr><td>'.$sc_end_at.':</td><td>'.date($event_datetime_format, gmt_to_local_time($event['end_time'])).'</td></tr>'; } } $local_start_hour = date('H', $event['start_time'] - $timezone_offset) + ($timezone_offset / 3600); if ($local_start_hour > 23) { $local_start_hour = $local_start_hour -24; $shift_day = 1; } elseif ($local_start_hour < 0) { $local_start_hour = 24 + $local_start_hour; $shift_day = -1; } else { $shift_day = 0; } if (isset ($_POST['repeat_days_0'])) { $event['days'][] = $full_days[0 + $shift_day]; } if (isset ($_POST['repeat_days_1'])) { $event['days'][] = $full_days[1 + $shift_day];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -