From 2fa8059c0e142a999a05b8a8563063baae39bc24 Mon Sep 17 00:00:00 2001
From: Animation des soirees <nightiies@perso.iiens.net>
Date: Sun, 25 Aug 2013 22:39:50 +0200
Subject: [PATCH] iCalendar

---
 events.php | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 events.php

diff --git a/events.php b/events.php
new file mode 100644
index 0000000..5b0757b
--- /dev/null
+++ b/events.php
@@ -0,0 +1,61 @@
+<?php
+ 
+header("Content-Type: text/calendar");
+header('Content-Disposition: inline; filename=calendar.ics');
+
+// the iCal date format. Note the Z on the end indicates a UTC timestamp.
+define('DATE_ICAL', 'Ymd\THis');
+
+$bdd = new PDO('mysql:host=mysql.iiens.net;dbname=assoce_nightiies', 'assoce_nightiies', 'VwuQREP5JwJQTF5h', array(
+		PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
+ 
+// max line length is 75 chars. New line is \\n
+ 
+$output = "BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:PUBLISH
+PRODID:-//Sam events//NONSGML//EN
+X-WR-CALNAME:Sam events
+BEGIN:VTIMEZONE
+TZID:UTC
+BEGIN:STANDARD
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0000
+DTSTART:".gmdate(DATE_ICAL)."
+END:STANDARD
+END:VTIMEZONE\n\n";
+
+// get events
+$events = $bdd->prepare('SELECT id, title, date, place, description
+	FROM sam
+	ORDER BY date');
+$events->execute();
+
+// loop over events
+while ($event = $events->fetch()) {
+	$output .=
+"BEGIN:VTIMEZONE
+TZID:Europe/Paris
+BEGIN:STANDARD
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0100
+DTSTART;TZID=UTC:".gmdate(DATE_ICAL)."
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:".$event[0]."
+DTSTAMP;TZID=Europe/Paris:".gmdate(DATE_ICAL)."
+DTSTART;TZID=UTC;TZID=Europe/Paris:" . date(DATE_ICAL, $event[2]) . "
+DTEND;TZID=UTC;TZID=Europe/Paris:" . date(DATE_ICAL, $event[2] + 5*3600) . "
+SUMMARY:".str_replace(',', '\\,', $event[1])."
+DESCRIPTION:".str_replace(',', '\\,', $event[4])."
+LOCATION:".$event[3]."
+END:VEVENT\n\n";
+}
+ 
+// close calendar
+$output .= "END:VCALENDAR";
+ 
+echo str_replace("\n", "\r\n", $output);
+ 
+?>
-- 
GitLab