📄 event.php
字号:
$event['calendars'] = array (); $cal->get_event_subscribtions($event_id); while ($cal->next_record()) { $event['calendars'][] = $cal->f('calendar_id'); } //shift the selected weekdays to local time $local_start_hour = date("G", $gmt_start_time) + get_timezone_offset($event['start_time']); 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; } switch ($shift_day) { case 1 : $mon = $event['sun'] == '1' ? '1' : '0'; $tue = $event['mon'] == '1' ? '1' : '0'; $wed = $event['tue'] == '1' ? '1' : '0'; $thu = $event['wed'] == '1' ? '1' : '0'; $fri = $event['thu'] == '1' ? '1' : '0'; $sat = $event['fri'] == '1' ? '1' : '0'; $sun = $event['sat'] == '1' ? '1' : '0'; break; case -1 : $mon = $event['tue'] == '1' ? '1' : '0'; $tue = $event['wed'] == '1' ? '1' : '0'; $wed = $event['thu'] == '1' ? '1' : '0'; $thu = $event['fri'] == '1' ? '1' : '0'; $fri = $event['sat'] == '1' ? '1' : '0'; $sat = $event['sun'] == '1' ? '1' : '0'; $sun = $event['mon'] == '1' ? '1' : '0'; break; } if ($shift_day != 0) { $event['sun'] = $sun; $event['mon'] = $mon; $event['tue'] = $tue; $event['wed'] = $wed; $event['thu'] = $thu; $event['fri'] = $fri; $event['sat'] = $sat; } if($calendar['group_id'] > 1 || $event['event_id'] > 0) { $title = sprintf($cal_booking, $calendar['name']); }else { $title = htmlspecialchars($event['name']); } if ($event['completion_time'] > 0) { $event['completion_time'] += (get_timezone_offset($event['completion_time'])*3600); $event['completed'] = true; $event['completion_date'] = date($_SESSION['GO_SESSION']['date_format'], $event['completion_time']); $event['completion_hour'] = date('G', $event['completion_time']); $event['completion_min'] = date('i', $event['completion_time']); }else { $event['completed'] = false; $event['completion_date'] = date($_SESSION['GO_SESSION']['date_format'], $local_time); $event['completion_hour'] = date('G', $local_time); $event['completion_min'] = date('i', $local_time); } } else { $event['name'] = isset ($_POST['name']) ? smart_stripslashes($_POST['name']) : ''; if($calendar['group_id'] > 1) { $title = sprintf($cal_booking, $calendar['name']); }else { $title = empty($event['name']) ? $sc_new_app : htmlspecialchars($event['name']); } $requested_time = mktime($hour, $min, 0, $month, $day, $year); $timezone_offset = get_timezone_offset($requested_time); $requested_date = date($_SESSION['GO_SESSION']['date_format'], $requested_time); //new event declare all vars if(isset($_POST['calendars'])) { $event['calendars'] = $_POST['calendars']; }else { $event['calendars'] = array(); if(isset($_REQUEST['view_id']) && $_REQUEST['view_id'] > 0) { $view_calendars = $cal->get_view_calendars($_REQUEST['view_id']); foreach($view_calendars as $view_calendar) { if($view_calendar['user_id']==$GO_SECURITY->user_id) { $event['calendars'][] = $view_calendar['id']; break; } } } } $event['resources'] = isset ($_POST['resources']) ? $_POST['resources'] : array (); $event['description'] = isset ($_POST['description']) ? smart_stripslashes($_POST['description']) : ''; $event['to'] = isset ($_POST['to']) ? smart_stripslashes($_POST['to']) : ''; $event['user_id'] = isset ($_REQUEST['user_id']) ? $_REQUEST['user_id'] : $GO_SECURITY->user_id; $event['event_id'] = 0; $event['todo'] = isset($_REQUEST['todo']) ? $_REQUEST['todo'] : '0'; if($event['todo'] == '1') { $event['status_id'] = isset ($_REQUEST['todo_status_id']) ? $_REQUEST['todo_status_id'] : 1; }else { $event['status_id'] = isset ($_REQUEST['event_status_id']) ? $_REQUEST['event_status_id'] : 1; } $event['start_date'] = isset ($_POST['start_date']) ? smart_stripslashes($_POST['start_date']) : $requested_date; $tmp = (strlen($hour) == 1) ? '0'.$hour : $hour; $event['start_hour'] = isset ($_POST['start_hour']) ? $_POST['start_hour'] : $tmp; $event['start_min'] = isset ($_POST['start_min']) ? $_POST['start_min'] : $min; $event['end_date'] = isset ($_POST['end_date']) ? $_POST['end_date'] : $requested_date; $tmp = (strlen($hour +1) == 1) ? '0'.$hour +1 : $hour +1; $event['end_hour'] = isset ($_POST['end_hour']) ? $_POST['end_hour'] : $tmp; $event['end_min'] = isset ($_POST['end_min']) ? $_POST['end_min'] : $min; $event['repeat_end_date'] = isset ($_POST['repeat_end_date']) ? $_POST['repeat_end_date'] : $requested_date; $event['repeat_type'] = isset ($_POST['repeat_type']) ? $_POST['repeat_type'] : REPEAT_NONE; $event['all_day_event'] = isset ($_POST['all_day_event']) ? $_POST['all_day_event'] : '0'; $event['repeat_forever'] = isset ($_POST['repeat_forever']) ? $_POST['repeat_forever'] : '0'; $event['repeat_every'] = isset ($_POST['repeat_every']) ? $_POST['repeat_every'] : '0'; $event['month_time'] = isset ($_POST['month_time']) ? $_POST['month_time'] : '0'; $event['sun'] = isset ($_POST['repeat_days_0']) ? true : false; $event['mon'] = isset ($_POST['repeat_days_1']) ? true : false; $event['tue'] = isset ($_POST['repeat_days_2']) ? true : false; $event['wed'] = isset ($_POST['repeat_days_3']) ? true : false; $event['thu'] = isset ($_POST['repeat_days_4']) ? true : false; $event['fri'] = isset ($_POST['repeat_days_5']) ? true : false; $event['sat'] = isset ($_POST['repeat_days_6']) ? true : false; $event['reminder'] = isset ($_POST['reminder']) ? $_POST['reminder'] : '0'; $default_background = $calendar ? $calendar['background'] : 'FFFFCC'; $event['background'] = isset ($_POST['background']) ? $_POST['background'] : $default_background; $event['location'] = isset ($_POST['location']) ? smart_stripslashes($_POST['location']) : ''; $event['permissions'] = isset ($_POST['permissions']) ? $_POST['permissions'] :$cal_settings['permissions']; $event['completed'] = isset($_POST['completed']) ? true : false; $event['completion_date'] = isset($_POST['completion_date']) ? $_POST['completion_date'] : $requested_date; $event['completion_hour'] = isset($_POST['completion_hour']) ? $_POST['completion_hour'] : date('G', $local_time); $event['completion_min'] = isset($_POST['completion_min']) ? $_POST['completion_min'] : date('i', $local_time); $event['completion_time'] = date_to_unixtime($event['completion_date'].' '.$event['completion_hour'].':'.$event['completion_min']);; }$GO_HEADER['head'] = date_picker::get_header();if($event_id>0){ $links_list = new links_list($event['link_id'], 'event_form', $link_back); $GO_HEADER['head'] .= $links_list->get_header(); }if ($ab_module && $ab_module['read_permission']) { $ab->search_contacts($GO_SECURITY->user_id, '%'); while ($ab->next_record()) { if (validate_email($ab->f('email'))) { $middle_name = $ab->f('middle_name') == '' ? ' ' : ' '.$ab->f('middle_name').' '; $autocomplete_contacts[] = '"'.addslashes($ab->f('first_name').$middle_name.$ab->f('last_name')).'" <'.$ab->f('email').'>'; } } $GO_USERS->get_authorized_users($GO_SECURITY->user_id); while($GO_USERS->next_record()) { $middle_name = $GO_USERS->f('middle_name') == '' ? ' ' : ' '.$GO_USERS->f('middle_name').' '; $autocomplete_contacts[] = '"'.addslashes($GO_USERS->f('first_name').$middle_name.$GO_USERS->f('last_name')).'" <'.$GO_USERS->f('email').'>'; } if (isset ($autocomplete_contacts) && count($autocomplete_contacts) > 0) { $autocomplete_contacts = array_unique($autocomplete_contacts); $GO_HEADER['head'] .= '<script language="javascript" type="text/javascript" src="'.$GO_CONFIG->host.'javascript/actb.js"></script>'; $GO_HEADER['head'] .= '<script type="text/javascript">'.'var autocomplete_contacts = new Array(\''.implode("','", $autocomplete_contacts).'\');'.'</script>'; }}$overlib = new overlib();$GO_HEADER['head'] .= $overlib->get_header();require_once ($GO_THEME->theme_path.'header.inc');if ($ab_module) { echo $ab->enable_contact_selector();}$form = new form('event_form');//address_string used by the addressbok selector//echo '<input type="hidden" name="address_string" value="" />';if($task == 'availability'){ require('check_availability.inc');}else{ $form->add_html_element(new input('hidden', 'calendar_id', $calendar_id, false)); $form->add_html_element(new input('hidden', 'event_id', $event_id, false)); $form->add_html_element(new input('hidden', 'close', 'false', false)); $form->add_html_element(new input('hidden', 'return_to', $return_to, false)); $form->add_html_element(new input('hidden', 'link_back', $link_back, false)); $form->add_html_element(new input('hidden', 'new_event', 'false', false)); $form->add_html_element(new input('hidden','task','change_event')); $form->add_html_element(new input('hidden', 'goto_url', '', false)); if($cal_settings['check_conflicts'] == '0' || (isset($conflicts) && count($conflicts))) { $form->add_html_element(new input('hidden', 'ignore_conflicts','true')); } if(isset($_REQUEST['create_exception']) ) { $form->add_html_element(new input('hidden', 'create_exception', $_REQUEST['create_exception'], false)); if($_REQUEST['create_exception'] =='true') { $form->add_html_element(new input('hidden', 'exception_event_id', $_REQUEST['event_id'])); $form->add_html_element(new input('hidden', 'exception_time', $_REQUEST['exception_time'])); } } $tabstrip = new dynamic_tabstrip('event_strip', $title, '120', 'event_form'); $tabstrip->set_attribute('style','width:100%'); $tabstrip->set_return_to($return_to); if(isset($activetab)) { $tabstrip->set_active_tab($activetab); } if (isset($feedback)) { $p = new html_element('p',$feedback); $p->set_attribute('class','Error'); $form->add_html_element($p); } $table = new table(); $table->set_attribute('style','width:100%'); $row = new table_row(); $cell = new table_cell($strName.'*:'); $cell->set_attribute('style','width:200px;'); $row->add_cell($cell); $input = new input('text','name',$event['name']); $input->set_attribute('maxlength','50'); $input->set_attribute('style','width:100%'); $cell = new table_cell($input->get_html()); $cell->set_attribute('style','width:100%;'); $row->add_cell($cell); $table->add_row($row); if($event_id > 0) { $form->add_html_element(new input('hidden','user_id',$event['user_id'])); $row = new table_row(); $row->add_cell(new table_cell($strOwner.':')); $subtable = new table(); $subtable->set_attribute('style','width:100%;'); $subtable->set_attribute('cellpadding','0'); $subtable->set_attribute('cellspacing','0'); $subrow = new table_row(); $subrow->add_cell(new table_cell(show_profile($event['user_id']))); $subcell = new table_cell($strCreatedAt.': '.get_timestamp($event['ctime'])); $subcell->set_attribute('style','text-align:right'); $subrow->add_cell($subcell); $subcell = new table_cell($strModifiedAt.': '.get_timestamp($event['mtime'])); $subcell->set_attribute('style','text-align:right'); $subrow->add_cell($subcell); $subtable->add_row($subrow); $row->add_cell(new table_cell($subtable->get_html())); $table->add_row($row); } if($event['event_id'] > 0 || $calendar['group_id'] > 1) { $form->add_html_element(new input('hidden','todo','0')); }else { $row = new table_row(); $row->add_cell(new table_cell($strType.':')); $radiogroup = new radiogroup('todo', $event['todo']); $event_button = new radiobutton('event', '0'); $event_button->set_attribute('onclick', "javascript:toggle_statuses('VEVENT');"); $todo_button = new radiobutton('todo', '1'); $todo_button->set_attribute('onclick', "javascript:toggle_statuses('VTODO');"); $row->add_cell(new table_cell($radiogroup->get_option($event_button, $cal_event). $radiogroup->get_option($todo_button, $cal_todo))); $table->add_row($row); } $row = new table_row(); $cell = new table_cell(); $cell->set_attribute('valign','top'); $cell->set_attribute('nowrap','true'); if($event['event_id'] > 0 || $calendar['group_id'] > 1) { $form->add_html_element(new input('hidden','send_invitation','false')); $form->add_html_element(new input('hidden','to','')); }else { if ($ab_module && $ab_module['read_permission']) { $img = new image('addressbook_small'); $img->set_attribute('style','border:0px;width:16px;height:16px;margin-right: 5px;'); $img->set_attribute('align','absmiddle'); $hyperlink = new hyperlink($ab->select_contacts('document.event_form.to', $GO_CONFIG->control_url.'select/add.php'), $img->get_html().$sc_participants.':'); $hyperlink->set_attribute('class','normal'); $cell->add_html_element($hyperlink); }else { $cell->innerHTML .= $sc_participants.':'; } $row->add_cell($cell); $cell = new table_cell(); $textarea = new textarea('to', $event['to']); $textarea->set_attribute('style','width:100%; height: 50px;'); if (isset ($autocomplete_contacts)) { $textarea->set_attribute('onfocus', 'document.onkeypress = kH;'); $textarea->set_attribute('onkeydown', 'actb_checkkey(event);');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -