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 + -
显示快捷键?