Server : nginx/1.22.1 System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/www.jkmold.com/phpcms/libs/PHPMailer/extras/ |
<?php /* ------------------------------------------------------------------------ */ /* EasyPeasyICS /* ------------------------------------------------------------------------ */ /* Manuel Reinhard, manu@sprain.ch /* Twitter: @sprain /* Web: www.sprain.ch /* /* Built with inspiration by /" http://stackoverflow.com/questions/1463480/how-can-i-use-php-to-dynamically-publish-an-ical-file-to-be-read-by-google-calend/1464355#1464355 /* ------------------------------------------------------------------------ */ /* History: /* 2010/12/17 - Manuel Reinhard - when it all started /* ------------------------------------------------------------------------ */ class EasyPeasyICS { protected $calendarName; protected $events = array(); /** * Constructor * @param string $calendarName */ public function __construct($calendarName=""){ $this->calendarName = $calendarName; }//function /** * Add event to calendar * @param string $calendarName */ public function addEvent($start, $end, $summary="", $description="", $url=""){ $this->events[] = array( "start" => $start, "end" => $end, "summary" => $summary, "description" => $description, "url" => $url ); }//function public function render($output = true){ //start Variable $ics = ""; //Add header $ics .= "BEGIN:VCALENDAR METHOD:PUBLISH VERSION:2.0 X-WR-CALNAME:".$this->calendarName." PRODID:-//hacksw/handcal//NONSGML v1.0//EN"; //Add events foreach($this->events as $event){ $ics .= " BEGIN:VEVENT UID:". md5(uniqid(mt_rand(), true)) ."@EasyPeasyICS.php DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z DTSTART:".gmdate('Ymd', $event["start"])."T".gmdate('His', $event["start"])."Z DTEND:".gmdate('Ymd', $event["end"])."T".gmdate('His', $event["end"])."Z SUMMARY:".str_replace("\n", "\\n", $event['summary'])." DESCRIPTION:".str_replace("\n", "\\n", $event['description'])." URL;VALUE=URI:".$event['url']." END:VEVENT"; }//foreach //Footer $ics .= " END:VCALENDAR"; if ($output) { //Output header('Content-type: text/calendar; charset=utf-8'); header('Content-Disposition: inline; filename='.$this->calendarName.'.ics'); echo $ics; } else { return $ics; } }//function }//class