⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event.php

📁 groupoffice
💻 PHP
📖 第 1 页 / 共 5 页
字号:
						{							$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 + -