📄 event.php
字号:
<?php/** * @copyright Intermesh 2003 * @author Merijn Schering <mschering@intermesh.nl> * @version $Revision: 1.208 $ $Date: 2006/04/10 13:21:11 $ * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */require_once ("../../Group-Office.php");require_once ($GO_CONFIG->class_path.'mail/RFC822.class.inc');$RFC822 = new RFC822();//check for the addressbook module$ab_module = isset ($GO_MODULES->modules['addressbook']) ? $GO_MODULES->modules['addressbook'] : false;if ($ab_module) { require_once ($ab_module['class_path'].'addressbook.class.inc'); $ab = new addressbook();}$projects_module = isset ($GO_MODULES->modules['projects']) ? $GO_MODULES->modules['projects'] : false;if ($projects_module) { require_once ($projects_module['class_path'].'projects.class.inc'); $projects = new projects();}$fs_module = isset ($GO_MODULES->modules['filesystem']) ? $GO_MODULES->modules['filesystem'] : false;if ($fs_module) { require_once ($GO_CONFIG->class_path.'filesystem.class.inc'); $fs = new filesystem();}//get the local times$local_time = get_time();$year = isset ($_REQUEST['year']) ? $_REQUEST['year'] : date("Y", $local_time);$month = isset ($_REQUEST['month']) ? $_REQUEST['month'] : date("n", $local_time);$day = isset ($_REQUEST['day']) ? $_REQUEST['day'] : date("j", $local_time);$hour = isset ($_REQUEST['hour']) ? $_REQUEST['hour'] : date("H", $local_time);$min = isset ($_REQUEST['min']) ? $_REQUEST['min'] : date("i", $local_time);$hours = array ("00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23");$mins = array ("00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55");$GO_SECURITY->authenticate();$GO_MODULES->authenticate('calendar');require_once ($GO_LANGUAGE->get_language_file('calendar'));require_once ($GO_MODULES->class_path.'calendar.class.inc');$cal = new calendar();$cal_settings = $cal->get_settings($GO_SECURITY->user_id);$event_id = isset ($_REQUEST['event_id']) ? $_REQUEST['event_id'] : 0;$send_invitation = isset ($_POST['send_invitation']) ? true : false;$task = isset ($_POST['task']) ? $_POST['task'] : '';$return_to = isset ($_REQUEST['return_to']) ? $_REQUEST['return_to'] : $GO_MODULES->modules['calendar']['url'];$link_back = isset ($_REQUEST['link_back']) ? $_REQUEST['link_back'] : $_SERVER['PHP_SELF'].'?event_id='.$event_id.'&return_to='.urlencode($return_to);if($event_id == 0){ $calendar_id = isset ($_REQUEST['calendar_id']) ? $_REQUEST['calendar_id'] : $cal_settings['default_cal_id'];}else{ $cal->get_event_subscribtions($event_id); if($cal->next_record()) { $calendar_id = $cal->f('calendar_id'); }else { $calendar_id = $cal_settings['default_cal_id']; }}$calendar = $cal->get_calendar($calendar_id);$event_link = new hyperlink($GO_CONFIG->full_url. '?return_to='.urlencode($GO_MODULES->modules['calendar']['url']. 'event.php?event_id='.$event_id), $cal_event_mail_open);switch($task){ case 'activate_linking': $link_event = $cal->get_event($event_id); $link_id = $link_event['link_id']; if(empty($link_event['link_id'])) { $update_event['id'] = $event_id; $update_event['link_id'] = $link_id = $GO_LINKS->get_link_id(); $cal->update_event($update_event); } $GO_LINKS->activate_linking($link_id, 1, $link_event['name'], $link_back); if(!empty($_REQUEST['goto_url'])) { header('Location: '.$_REQUEST['goto_url']); exit(); } break; case 'create_link': if($link = $GO_LINKS->get_active_link()) { $link_event = $cal->get_event($event_id); $link_id = $link_event['link_id']; if(empty($link_event['link_id'])) { $update_event['id'] = $event_id; $update_event['link_id'] = $link_id = $GO_LINKS->get_link_id(); $cal->update_event($update_event); } $GO_LINKS->add_link($link['id'], $link['type'], $link_id, 1); $GO_LINKS->deactivate_linking(); header('Location: '.$link['return_to']); exit(); } break; case 'save_event': $event['name'] = smart_addslashes(trim($_POST['name'])); $event['description'] = smart_addslashes(trim($_POST['description'])); $event['location'] = smart_addslashes(trim($_POST['location'])); $event['permissions'] = $_POST['permissions']; if ($event['name'] == '') { $feedback = $error_missing_field; $activetab='properties'; } elseif (!isset ($_POST['calendars']) || count($_POST['calendars']) == 0) { $feedback = $sc_select_calendar_please; $activetab='calendars'; }else { $timezone_offset = get_timezone_offset(date_to_unixtime($_POST['start_date'])); $event['repeat_forever'] = isset ($_POST['repeat_forever']) ? '1' : '0'; $event['repeat_every'] = isset ($_POST['repeat_every']) ? $_POST['repeat_every'] : '0'; $event['month_time'] = isset ($_POST['month_time']) ? $_POST['month_time'] : '0'; $event['background'] = $_POST['background']; $event['todo'] = $_POST['todo']; if($event['todo'] == '1') { $event['status_id'] = $_POST['todo_status_id']; }else { $event['status_id'] = $_POST['event_status_id']; } if ($event['status_id'] == 11) { $event['completion_time'] = date_to_unixtime($_POST['completion_date'].' '.$_POST['completion_hour'].':'.$_POST['completion_min']); $timezone_offset = get_timezone_offset($event['completion_time'])*3600; $event['completion_time'] -= $timezone_offset; }else { $event['completion_time'] = 0; } $event['reminder'] = $_POST['reminder_multiplier'] * $_POST['reminder_value']; if (isset ($_POST['all_day_event'])) { $event['all_day_event'] = '1'; $start_hour = 0 - $timezone_offset; $start_min = '0'; $end_hour = 23 - $timezone_offset; $end_min = 59; $event['start_time'] = date_to_unixtime($_POST['start_date'].' '.$start_hour.':'.$start_min); $event['end_time'] = date_to_unixtime($_POST['end_date'].' '.$end_hour.':'.$end_min); } else { $event['all_day_event'] = '0'; $start_min = $_POST['start_min']; $start_hour = $_POST['start_hour']; $end_hour = $_POST['end_hour']; $end_min = $_POST['end_min']; $event['start_time'] = get_gmt_time(date_to_unixtime($_POST['start_date'].' '.$start_hour.':'.$start_min)); $event['end_time'] = get_gmt_time(date_to_unixtime($_POST['end_date'].' '.$end_hour.':'.$end_min)); } $timezone_offset = get_timezone_offset($event['start_time']); $event['repeat_type'] = $_POST['repeat_type']; if ($event['repeat_type'] != REPEAT_NONE) { $event['repeat_end_time'] = isset ($_POST['repeat_forever']) ? '0' : server_to_gmt_time(date_to_unixtime($_POST['repeat_end_date']))+86400; } else { $event['repeat_end_time'] = 0; } $shift_day = 0; $shifted_start_hour = $start_hour - $timezone_offset; if ($shifted_start_hour > 23) { $shifted_start_hour = $shifted_start_hour -24; $shift_day = 1; } elseif ($shifted_start_hour < 0) { $shifted_start_hour = 24 + $shifted_start_hour; $shift_day = -1; } switch ($shift_day) { case 0 : $event['mon'] = isset ($_POST['repeat_days_1']) ? '1' : '0'; $event['tue'] = isset ($_POST['repeat_days_2']) ? '1' : '0'; $event['wed'] = isset ($_POST['repeat_days_3']) ? '1' : '0'; $event['thu'] = isset ($_POST['repeat_days_4']) ? '1' : '0'; $event['fri'] = isset ($_POST['repeat_days_5']) ? '1' : '0'; $event['sat'] = isset ($_POST['repeat_days_6']) ? '1' : '0'; $event['sun'] = isset ($_POST['repeat_days_0']) ? '1' : '0'; break; case 1 : $event['mon'] = isset ($_POST['repeat_days_0']) ? '1' : '0'; $event['tue'] = isset ($_POST['repeat_days_1']) ? '1' : '0'; $event['wed'] = isset ($_POST['repeat_days_2']) ? '1' : '0'; $event['thu'] = isset ($_POST['repeat_days_3']) ? '1' : '0'; $event['fri'] = isset ($_POST['repeat_days_4']) ? '1' : '0'; $event['sat'] = isset ($_POST['repeat_days_5']) ? '1' : '0'; $event['sun'] = isset ($_POST['repeat_days_6']) ? '1' : '0'; break; case -1 : $event['mon'] = isset ($_POST['repeat_days_2']) ? '1' : '0'; $event['tue'] = isset ($_POST['repeat_days_3']) ? '1' : '0'; $event['wed'] = isset ($_POST['repeat_days_4']) ? '1' : '0'; $event['thu'] = isset ($_POST['repeat_days_5']) ? '1' : '0'; $event['fri'] = isset ($_POST['repeat_days_6']) ? '1' : '0'; $event['sat'] = isset ($_POST['repeat_days_0']) ? '1' : '0'; $event['sun'] = isset ($_POST['repeat_days_1']) ? '1' : '0'; break; } if(isset($_POST['custom_fields'])) { $event['custom_fields'] = $cal->group_values_to_xml($_POST['custom_fields'], $calendar['group_id']); }else { $event['custom_fields'] = ''; } if($event['todo'] == '1' || isset($_POST['ignore_conflicts'])) { $conflicts = array(); }else { $calendars = $_POST['calendars']; if(isset($_POST['resources'])) { $calendars = array_merge($calendars, $_POST['resources']); } $conflicts = $cal->get_conflicts($event['start_time'], $event['end_time'], $calendars, $_POST['to']); unset($conflicts[$event_id]); } if($event['repeat_type'] != REPEAT_NONE && $cal->get_next_recurrence_time(0,$event['start_time'], $event) < $event['end_time']) { //Event will cumulate $feedback = $cal_cumulative; }elseif(count($conflicts)) { $feedback = $cal_conflict; }else { if ($event_id > 0) { $event['id'] = $event_id; if (!$cal->update_event($event)) { $feedback = $strSaveError; } else { if ($event = $cal->get_event($event_id)) { if($GO_SECURITY->user_id != $event['user_id']) { //send all subscribers mail that event/resource has been modified if($calendar['group_id'] == 1) { /*//person $user_cal_settings = $cal->get_settings($event['user_id']); if($user_cal_settings['email_changes'] == '1') { $body = sprintf($cal_your_event_modified_mail_body,$_SESSION['GO_SESSION']['name'],$event['name']); $body .= "<br /><br />".$event_link->get_html(); $subject = sprintf($cal_your_event_modified_mail_subject, stripslashes($event['name'])); $user = $GO_USERS->get_user($event['user_id']); sendmail($user['email'], $_SESSION['GO_SESSION']['email'], $_SESSION['GO_SESSION']['name'], $subject, $body, '3', 'text/HTML'); }*/ }else { //resource $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_your_resource_modified_mail_body,$_SESSION['GO_SESSION']['name'],$calendar['name']); $body .= "<br /><br />".$resource_link->get_html(); $subject = sprintf($cal_your_resource_modified_mail_subject, $calendar['name']); $user = $GO_USERS->get_user($event['user_id']); sendmail($user['email'], $_SESSION['GO_SESSION']['email'], $_SESSION['GO_SESSION']['name'], $subject, $body, '3', 'text/HTML'); } } $GO_SECURITY->clear_acl($event['acl_write']); $GO_SECURITY->clear_acl($event['acl_read']); $GO_SECURITY->add_user_to_acl($event['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; } } } } else { $event['user_id']=$GO_SECURITY->user_id; $event['acl_read'] = $GO_SECURITY->get_new_acl('Event read'); $event['acl_write'] = $GO_SECURITY->get_new_acl('Event read'); if($link = $GO_LINKS->get_active_link()) { $event['link_id'] = $GO_LINKS->get_link_id(); } if (!$event['acl_read'] || !$event['acl_write'] || !$event_id = $cal->add_event($event)) { $GO_SECURITY->delete_acl($event['acl_read'] ); $GO_SECURITY->delete_acl($event['acl_write'] ); $feedback = $strSaveError; } else { $link_back = add_params_to_url($link_back, 'event_id='.$event_id); if(isset($_REQUEST['create_exception']) && $_REQUEST['exception_event_id'] > 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -