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

📄 event.php

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