go_ical.class.inc

来自「国外很不错的一个开源OA系统Group-Office」· INC 代码 · 共 656 行 · 第 1/2 页

INC
656
字号
						if ($event['repeat_forever'] == '0')						{							//$line .= ' '.date($this->datetime_format, $event['repeat_end_time']-86400).'Z';							$line .= ' '.date($this->datetime_format, $event['repeat_end_time']).'Z';						}else						{							$line .= ' #0';						}					}else					{		 				$line = "RRULE:FREQ=DAILY;";						if ($event['repeat_forever'] == '0')						{							//$line .= "UNTIL=".date($this->date_format, $event['repeat_end_time']-86400).";";							$line .= "UNTIL=".date($this->date_format, $event['repeat_end_time']).";";						}						$line .= "INTERVAL=".$event['repeat_every'];					}					$lines[]=$line;				break;				case REPEAT_WEEKLY:										$event_days = array();					if ($event['sun'] == '1')					{						$event_days[] = "SU";					}					if ($event['mon'] == '1')					{						$event_days[] = "MO";					}					if ($event['tue'] == '1')					{						$event_days[] = "TU";					}					if ($event['wed'] == '1')					{						$event_days[] = "WE";					}					if ($event['thu'] == '1')					{						$event_days[] = "TH";					}					if ($event['fri'] == '1')					{						$event_days[] = "FR";					}					if ($event['sat'] == '1')					{						$event_days[] = "SA";					}									if($this->version == '1.0')					{						$line = 'RRULE:W'.$event['repeat_every'].' ';						$line .= implode(' ', $event_days);						if ($event['repeat_forever'] == '0')						{							$line .= ' '.date($this->datetime_format, $event['repeat_end_time']).'Z';						}else						{							$line .= ' #0';						}					}else					{						$line = "RRULE:FREQ=WEEKLY;";						if ($event['repeat_forever'] == '0')						{							$line .= "UNTIL=".date($this->date_format, $event['repeat_end_time']).";";						}						$line .= "INTERVAL=".$event['repeat_every'].";BYDAY=";						$line .= implode(',', $event_days);					}					$lines[]=$line;				break;				case REPEAT_MONTH_DATE:					if($this->version == '1.0')					{						$line = 'RRULE:MD'.$event['repeat_every'].' '.date('j', $event['start_time']).'+';						//$line = 'RRULE:MD'.$event['repeat_every'].' ';												if ($event['repeat_forever'] == '0')						{							$line .= ' '.date($this->datetime_format, $event['repeat_end_time']).'Z';						}else						{							$line .= ' #0';						}					}else					{						$line = "RRULE:FREQ=MONTHLY;";						if ($event['repeat_forever'] == '0')						{							$line .= "UNTIL=".date($this->date_format, $event['repeat_end_time']).";";						}						$line .= "INTERVAL=".$event['repeat_every'];					}					$lines[]=$line;				break;				case REPEAT_MONTH_DAY:									if($this->version == '1.0')					{						$event_days = array();						if ($event['sun'] == '1')						{							$event_days[] ="SU";						}						if ($event['mon'] == '1')						{							$event_days[] = "MO";						}						if ($event['tue'] == '1')						{							$event_days[] = "TU";						}						if ($event['wed'] == '1')						{							$event_days[] = "WE";						}						if ($event['thu'] == '1')						{							$event_days[] = "TH";						}						if ($event['fri'] == '1')						{							$event_days[] = "FR";						}						if ($event['sat'] == '1')						{							$event_days[] = "SA";						}																	$line = 'RRULE:MP'.$event['repeat_every'].' '.$event['month_time'].'+ '.$event_days[0];						if ($event['repeat_forever'] == '0')						{							$line .= ' '.date($this->datetime_format, $event['repeat_end_time']).'Z';						}else						{							$line .= ' #0';						}											}else					{						$event_days = array();						if ($event['sun'] == '1')						{							$event_days[] = $event['month_time']."SU";						}						if ($event['mon'] == '1')						{							$event_days[] = $event['month_time']."MO";						}						if ($event['tue'] == '1')						{							$event_days[] = $event['month_time']."TU";						}						if ($event['wed'] == '1')						{							$event_days[] = $event['month_time']."WE";						}						if ($event['thu'] == '1')						{							$event_days[] = $event['month_time']."TH";						}						if ($event['fri'] == '1')						{							$event_days[] = $event['month_time']."FR";						}						if ($event['sat'] == '1')						{							$event_days[] = $event['month_time']."SA";						}												$line = "RRULE:FREQ=MONTHLY;";						if ($event['repeat_forever'] == '0')						{							$line .= "UNTIL=".date($this->date_format, $event['repeat_end_time']).";";						}						$line .= "INTERVAL=".$event['repeat_every'].";BYDAY=";						$line .= implode(',', $event_days);					}					$lines[]=$line;				break;				case REPEAT_YEARLY:					if($this->version=='1.0')					{						//$line = 'RRULE:YM'.$event['repeat_every'].' '.date('n',$event['start_time']);						$line = 'RRULE:YM'.$event['repeat_every'];						if ($event['repeat_forever'] == '0')						{							$line .= ' '.date($this->datetime_format, $event['repeat_end_time']).'Z';						}else						{							$line .= ' #0';						}					}else					{						$line = "RRULE:FREQ=YEARLY;";						if ($event['repeat_forever'] == '0')						{							$line .= "UNTIL=".date($this->date_format, $event['repeat_end_time']).";";						}						$line .= "INTERVAL=".$event['repeat_every'].";BYMONTH=".date('n', $event['start_time']);					}					$lines[]=$line;				break;			}					if($event['repeat_type']>0)			{				$cal = new calendar();				if($cal->get_exceptions($event['id']))				{									while($cal->next_record())					{							$exception = date($this->datetime_format, $cal->f('time')+$timezone_offset);							if(!$this->local_times) $exception .= "Z";							$exceptions[]=$exception;					}					$line = 'EXDATE:';										$count=1;					$exception_count = count($exceptions);					for($i=0;$i<$exception_count;$i++)					{						$line.=$exceptions[$i];						if($i!=$exception_count-1)						{							$line .=';';						}						$count++;						if($count=='3')						{							$lines[]=$line;							$line='  ';							$count=0;						}					}					if(!empty($line))					{						$lines[]=$line;					}				}			}		}				//alarm		if($event['reminder']>0)		{						$remind_time = $event['start_time']-$event['reminder'];			//			$lines[] = 'AALARM:'.date($this->datetime_format, gmt_to_local_time($remind_time)).';;;'.$event['name'];			$atime = date($this->datetime_format, $remind_time+$timezone_offset);			if(!$this->local_times) $atime .= "Z";			$lines[] = 'AALARM:'.$atime.';;0;'.$event['name'];			//Nokia crashes on DALARM at event replace			//$lines[] = 'DALARM:'.date($this->datetime_format, gmt_to_local_time($remind_time)).';;'.$event['name'];		}		$lines[]= "DTSTAMP:".date($this->datetime_format, $event['ctime']);		$lines[]= "X-GO-BGCOLOR:".$event['background'];				if($event['todo']=='1')		{			$lines[] = "END:VTODO";		}else		{			$lines[] = "END:VEVENT";		}				/*		//var_dump($lines);				$ical_event='';				foreach ($lines as $line) {			$line_parts = array();						while(strlen($line)>80)			{				$test = substr($line,0,80);								for($i=strlen($test)-1;$i>=0;$i--)				{											$char=$test[$i];					if($char==' ' || $char==';' || $char==':')					{												$line_parts[] = substr($line, 0, $i+1);						$line = substr($line, $i+1);						break;					}				}			}			$line_parts[] = $line;			for($i=0;$i<count($line_parts);$i++)			{				if($i>0)				{					$ical_event.= ' ';										}						 $ical_event .= $line_parts[$i]."\n";			}		}				return $ical_event;*/				return implode("\n", $lines)."\n";	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?