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/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpcms/libs/PHPMailer/extras/EasyPeasyICS.php
<?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