📄 event.php
字号:
} 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']); } break; case REPEAT_YEARLY; 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; } $mail_body .= '</table><br /><br />'.$sc_accept_question.'<br /><br />'; require_once ($GO_CONFIG->class_path."mail/phpmailer/class.phpmailer.php"); require_once ($GO_CONFIG->class_path."mail/phpmailer/class.smtp.php"); $mail = new PHPMailer(); $mail->PluginDir = $GO_CONFIG->class_path.'mail/phpmailer/'; $mail->SetLanguage($php_mailer_lang, $GO_CONFIG->class_path.'mail/phpmailer/language/'); switch ($GO_CONFIG->mailer) { case 'smtp' : $mail->Host = $GO_CONFIG->smtp_server; $mail->Port = $GO_CONFIG->smtp_port; $mail->IsSMTP(); if(!empty($GO_CONFIG->smtp_username)) { $mail->SMTPAuth=true; $mail->Username=$GO_CONFIG->smtp_username; $mail->Password = $GO_CONFIG->smtp_password; } break; case 'qmail' : $mail->IsQmail(); break; case 'sendmail' : $mail->IsSendmail(); break; case 'mail' : $mail->IsMail(); break; } $mail->Sender = $_SESSION['GO_SESSION']["email"]; $mail->From = $_SESSION['GO_SESSION']["email"]; $mail->FromName = $_SESSION['GO_SESSION']["name"]; $mail->AddReplyTo($_SESSION['GO_SESSION']["email"], $_SESSION['GO_SESSION']["name"]); $mail->WordWrap = 76; $mail->IsHTML(true); $mail->Subject = $event['name']; require_once ($GO_MODULES->class_path.'go_ical.class.inc'); $ical = new go_ical(); $ics_string = $ical->export_event($event_id); if(isset($GO_MODULES->modules['email'])) { require_once($GO_MODULES->modules['email']['class_path'].'email.class.inc'); $email = new email(); $em_settings = $email->get_settings($GO_SECURITY->user_id); if(function_exists('iconv') && $em_settings['charset'] != $charset) { $mail->CharSet=$em_settings['charset']; } } if($mail->CharSet!=$charset) { $mail->recode($charset); } for ($i = 0; $i < sizeof($participants); $i ++) { $mail->ClearAllRecipients(); $mail->ClearAttachments(); $addresses = $RFC822->parse_address_list($participants[$i]); if ($send_invitation || !in_array($addresses[0]['email'], $existing_participants)) { $id = 0; if ($user_profile = $GO_USERS->get_user_by_email($addresses[0]['email'])) { $id = $user_profile["id"]; } elseif (!$user_profile && $ab_module) { $user_profile = $ab->get_contact_by_email($addresses[0]['email'], $GO_SECURITY->user_id); $id = $user_profile["source_id"]; } if ($id == 0) { if ($ics_string) { $mail->AddStringAttachment($ics_string, $event['name'].'.ics', 'base64', 'text/calendar'); } $nouser_link = '<p><a href="'.$GO_MODULES->full_url.'accept.php?event_id='.$event_id.'&member=false&email='.urlencode($addresses[0]['email']).'" class="blue">'.$sc_accept.'</a> | <a href="'.$GO_MODULES->full_url.'decline.php?event_id='.$event_id.'&member=false&email='.urlencode($addresses[0]['email']).'" class="blue">'.$sc_decline.'</a></p>'; if($mail->CharSet!=$charset) { $mail->Body = iconv($charset, $mail->CharSet, $mail_body.$nouser_link); }else { $mail->Body = $mail_body.$nouser_link; } $mail->AddAddress($addresses[0]['email'],$addresses[0]['personal']); if($mail->CharSet!=$charset) { $mail->recode_addresses($charset); } if ($mail->Send() && !in_array($addresses[0]['email'], $existing_participants)) { $cal->add_participant($event_id, addslashes($addresses[0]['personal']), $addresses[0]['email']); } } else { $user_link = '<p class="cmd"><a href="'.$GO_CONFIG->full_url.'index.php?return_to='.urlencode($GO_MODULES->url.'accept.php?event_id='.$event_id.'&member=true&email='.urlencode($addresses[0]['email'])).'" class="blue">'.$sc_accept.'</a> | <a href="'.$GO_CONFIG->full_url.'index.php?return_to='.urlencode($GO_MODULES->url.'decline.php?event_id='.$event_id.'&member=true&email='.urlencode($addresses[0]['email'])).'" class="blue">'.$sc_decline.'</a></p>'; if($mail->CharSet!=$charset) { $user_link = iconv($charset, $mail->CharSet, $user_link); } if ($GO_SECURITY->user_id != $id) { $mail->Body = $mail_body.$user_link; if($mail->CharSet!=$charset) { $mail->Body = iconv($charset, $mail->CharSet, $mail_body.$user_link); }else { $mail->Body = $mail_body.$user_link; } $mail->AddAddress($addresses[0]['email'],$addresses[0]['personal']); if($mail->CharSet!=$charset) { $mail->recode_addresses($charset); } if ($mail->Send() && !in_array($addresses[0]['email'], $existing_participants)) { $cal->add_participant($event_id, addslashes($addresses[0]['personal']), $addresses[0]['email'], $id); } } else { if(!in_array($addresses[0]['email'], $existing_participants)) { $cal->add_participant($event_id, addslashes($addresses[0]['personal']), $addresses[0]['email'], $id); $cal->set_event_status($event_id, '1', $addresses[0]['email']); } } } } } } $participants_emails = array(); for($i=0;$i<count($participants);$i++) { $addresses = $RFC822->parse_address_list($participants[$i]); $participants_emails[] = $addresses[0]['email']; } for($i=0;$i<count($existing_participants);$i++) { if(!in_array($existing_participants[$i], $participants_emails)) { $cal->delete_participant($event_id, addslashes($existing_participants[$i])); } } if(isset($link) && $link) { $GO_LINKS->add_link($link['id'], $link['type'], $event['link_id'], 1); $GO_LINKS->deactivate_linking(); header('Location: '.$link['return_to']); exit (); }else { $send_invitation = false; if ($_POST['close'] == 'true') { header('Location: '.$return_to); exit (); } else { //$task = ''; } } } } break; }if($event_id> 0){ $event = $cal->get_event($event_id); $event['write_permission'] = $GO_SECURITY->has_permission($GO_SECURITY->user_id, $event['acl_write']); $event['read_permission'] = $GO_SECURITY->has_permission($GO_SECURITY->user_id, $event['acl_read']) ;}if ($event_id > 0 && $task != 'save_event' && $task != 'change_event') { if (isset ($_POST['new_event']) && $_POST['new_event'] == 'true') { //reset all event related form fields unset ($event, $_POST['name'], $_POST['description'], $_POST['location'], $_POST['reminder'], $_POST['background'], $_POST['permissions'], $_POST['repeat_type'], $_POST['repeat_end_date'], $_POST['repeat_forever'], $_POST['repeat_every'], $_POST['all_day_event'], $_POST['month_time'], $_POST['repeat_days_0'], $_POST['repeat_days_1'], $_POST['repeat_days_2'], $_POST['repeat_days_3'], $_POST['repeat_days_4'], $_POST['repeat_days_5'], $_POST['repeat_days_6']); $event_id = 0; } else { //get the event if(!$event['write_permission'] && !$event['read_permission']) { header('Location: '.$GO_CONFIG->host.'error_docs/403.php'); exit (); }elseif($event['repeat_type'] != REPEAT_NONE && !isset($_REQUEST['create_exception'])) { require($GO_THEME->theme_path.'header.inc'); $form = new form('event_form'); $form->add_html_element(new input('hidden','event_id',$event_id, false)); $form->add_html_element(new input('hidden','gmt_start_time',$_REQUEST['gmt_start_time'], false)); $form->add_html_element(new input('hidden','return_to',$return_to, false)); $form->add_html_element(new input('hidden','create_exception','false', false)); //echo date('Ymd G:i', $_REQUEST['gmt_start_time']); $p = new html_element('h2'); $img = new image('questionmark'); $img->set_attribute('align','middle'); $img->set_attribute('style','border:0px;margin-right:10px;'); $p->add_html_element($img); $p->innerHTML .= $cal_edit_series_or_single; $form->add_html_element($p); $form->add_html_element(new button($cal_single, "javascript:document.event_form.create_exception.value='true';document.event_form.submit();", '120')); $form->add_html_element(new button($cal_series, "javascript:document.event_form.create_exception.value='false';document.event_form.submit();", '120')); $form->add_html_element(new button($cmdCancel, "javascript:document.location='$return_to';")); echo $form->get_html(); require($GO_THEME->theme_path.'footer.inc'); exit(); } } }elseif (isset ($_REQUEST['ical_file']) && file_exists($_REQUEST['ical_file'])) { $event = $cal->get_event_from_ical_file($_REQUEST['ical_file']); $ical = true;}if ($task != 'save_event' && $task != 'change_event' && ($event_id > 0 || isset ($ical)) && isset ($event) && $event) { //populate an address string of the participants $event['to'] = ''; $cal->get_participants($event_id); while ($cal->next_record()) { if ($event['to'] == '') { $event['to'] = $RFC822->write_address($cal->f("name"), $cal->f("email")); } else { $event['to'] .= ', '.$RFC822->write_address($cal->f("name"), $cal->f("email")); } } if(isset($_REQUEST['create_exception']) && $_REQUEST['create_exception'] == 'true') { $duration = $event['end_time'] - $event['start_time']; $event['start_time'] = $_REQUEST['exception_time'] = $_REQUEST['gmt_start_time']; $event['end_time'] = $event['start_time']+$duration; $event['repeat_type'] = REPEAT_NONE; $event['resources'] = array(); $event_id=0; //$link_back = $_SERVER['PHP_SELF'].'?event_id=0&create_exception=true&exception_event_id='. //$_REQUEST['event_id'].'&exception_time='.$_REQUEST['exception_time'].'&return_to='.urlencode($return_to); }else { $_POST['exception_time'] = 0; $event['resources'] = array(); $cal->get_event_resources($event_id); while ($cal->next_record()) { $event['resources'][] = $cal->f('calendar_id'); } } $gmt_start_time = $event['start_time']; //if($event['all_day_event'] != '1') //{ $event['start_time'] = gmt_to_local_time($event['start_time']); $event['end_time'] =gmt_to_local_time($event['end_time']); //} $event['start_hour'] = date('G', $event['start_time']); $event['start_min'] = date('i', $event['start_time']); $event['end_hour'] = date('G', $event['end_time']); $event['end_min'] = date('i', $event['end_time']); $event['start_date'] = date($_SESSION['GO_SESSION']['date_format'], $event['start_time']); $event['end_date'] = date($_SESSION['GO_SESSION']['date_format'], $event['end_time']); //$event['repeat_end_date'] = date($_SESSION['GO_SESSION']['date_format'], $event['repeat_end_time']); if ($event['repeat_type'] != REPEAT_NONE) { if ($event['repeat_forever'] == '0') { $event['repeat_end_date'] = date($_SESSION['GO_SESSION']['date_format'], gmt_to_local_time($event['repeat_end_time']-86400)); } else { $event['repeat_end_date'] = date($_SESSION['GO_SESSION']['date_format'], $event['end_time']); } } else { $event['repeat_end_date'] = date($_SESSION['GO_SESSION']['date_format'], $event['start_time']); } //to what calendars is this event subscribed?
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -