ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
EasyPeasyICS.php
Go to the documentation of this file.
1<?php
21{
26 protected $calendarName;
31 protected $events = array();
32
37 public function __construct($calendarName = "")
38 {
39 $this->calendarName = $calendarName;
40 }
41
52 public function addEvent($start, $end, $summary = '', $description = '', $url = '', $uid = '')
53 {
54 if (empty($uid)) {
55 $uid = md5(uniqid(mt_rand(), true)) . '@EasyPeasyICS';
56 }
57 $event = array(
58 'start' => gmdate('Ymd', $start) . 'T' . gmdate('His', $start) . 'Z',
59 'end' => gmdate('Ymd', $end) . 'T' . gmdate('His', $end) . 'Z',
60 'summary' => $summary,
61 'description' => $description,
62 'url' => $url,
63 'uid' => $uid
64 );
65 $this->events[] = $event;
66 return $event;
67 }
68
72 public function getEvents()
73 {
74 return $this->events;
75 }
76
80 public function clearEvents()
81 {
82 $this->events = array();
83 }
84
89 public function getName()
90 {
92 }
93
98 public function setName($name)
99 {
100 $this->calendarName = $name;
101 }
102
108 public function render($output = true)
109 {
110 //Add header
111 $ics = 'BEGIN:VCALENDAR
112METHOD:PUBLISH
113VERSION:2.0
114X-WR-CALNAME:' . $this->calendarName . '
115PRODID:-//hacksw/handcal//NONSGML v1.0//EN';
116
117 //Add events
118 foreach ($this->events as $event) {
119 $ics .= '
120BEGIN:VEVENT
121UID:' . $event['uid'] . '
122DTSTAMP:' . gmdate('Ymd') . 'T' . gmdate('His') . 'Z
123DTSTART:' . $event['start'] . '
124DTEND:' . $event['end'] . '
125SUMMARY:' . str_replace("\n", "\\n", $event['summary']) . '
126DESCRIPTION:' . str_replace("\n", "\\n", $event['description']) . '
127URL;VALUE=URI:' . $event['url'] . '
128END:VEVENT';
129 }
130
131 //Add footer
132 $ics .= '
133END:VCALENDAR';
134
135 if ($output) {
136 //Output
138 //Filename needs quoting if it contains spaces
139 if (strpos($filename, ' ') !== false) {
140 $filename = '"'.$filename.'"';
141 }
142 header('Content-type: text/calendar; charset=utf-8');
143 header('Content-Disposition: inline; filename=' . $filename . '.ics');
144 echo $ics;
145 }
146 return $ics;
147 }
148}
$filename
Definition: buildRTE.php:89
getName()
Get the name of the calendar.
clearEvents()
Clear all events.
addEvent($start, $end, $summary='', $description='', $url='', $uid='')
Add an event to this calendar.
__construct($calendarName="")
Constructor.
setName($name)
Set the name of the calendar.
render($output=true)
Render and optionally output a vcal string.
$url
Definition: shib_logout.php:72