*/ /** * Dieses Script liefert die iCal Informationen für die vorreservierten Coodle Termine * * Aufruf: http://www.example.com/cis/public/ical_coodle.php/[uid] */ require_once('../../config/cis.config.inc.php'); require_once('../../include/benutzer.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/coodle.class.php'); require_once('../../include/ical.class.php'); $params = mb_substr($_SERVER['PATH_INFO'],1); $paramsArray = explode('/',$params); $private = false; if ($paramsArray[0] == 'cipher_encryption') { $uid = decryptData($paramsArray[1],LVPLAN_CYPHER_KEY); $private = true; } else { $uid = $paramsArray[0]; } $bn = new benutzer(); if(!$bn->load($uid)) die('User invalid'); header("Content-Type: text/calendar; charset=UTF-8"); header("Content-disposition: filename=Coodle Terminzusagen.ics"); echo "BEGIN:VCALENDAR\n"; echo "VERSION:2.0\n"; echo "PRODID:-//FH TECHNIKUM WIEN//EN\n"; //echo "METHOD:PUBLISH\n"; //echo 'ORGANIZER;CN=',$bn->vorname,' ',$bn->nachname,':mailto:',$uid,'@',DOMAIN,"\n"; //echo 'DTSTAMP;TZID=Europe/Vienna:',date('Ymd', mktime(date('H'),date('i'),date('s'),date('m'),date('d')-5,date('Y'))),'T',date('Hms'),"\n"; echo 'DTSTART;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')-5,date('Y'))),"T000000\n"; echo 'DTEND;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')+30,date('Y'))),"T000000\n"; echo "BEGIN:VTIMEZONE TZID:Europe/Vienna BEGIN:DAYLIGHT TZOFFSETFROM:+0100 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU DTSTART:19810329T020000 TZNAME:GMT+02:00 TZOFFSETTO:+0200 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU DTSTART:19961027T030000 TZNAME:GMT+01:00 TZOFFSETTO:+0100 END:STANDARD END:VTIMEZONE\n"; //echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n"; // Alle Umfragen holen an denen der User beteiligt ist $umfragen = new coodle(); $umfragen->getCoodleFromUser($uid); $i = 0; if (count($umfragen->result) > 0) { //echo "BEGIN:VEVENT"; } foreach($umfragen->result as $umfrage) { if($umfrage->coodle_status_kurzbz=='laufend') { // Bei laufenden Umfragen werden alle angekreuzten Vorschlaege zur FreeBusy hinzugefuegt $ressource = new coodle(); if($ressource_id = $ressource->RessourceExists($umfrage->coodle_id, $uid)) { // Terminvorschlaege laden die angekreuzt wurden $termine = new coodle($umfrage->coodle_id); $termine->getRessourceTermin($umfrage->coodle_id, $ressource_id); foreach($termine->result as $termin) { //Start und Ende berechnen $date = new DateTime($termin->datum.' '.$termin->uhrzeit); $dtstart = $date->format('Ymd\THis'); $interval =new DateInterval('PT'.$umfrage->dauer.'M'); $date->add($interval); $uhrzeit_ende = $date->format('H:i:s'); $dtende = $date->format('Ymd\THis'); $ersteller = new benutzer($termine->ersteller_uid); if ($private == true) { $summary = 'Coodle Terminoption '.strip_tags($termine->titel); $description = 'Erstellt von '.$ersteller->vorname.' '.$ersteller->nachname; } else { $summary = 'Coodle Terminoption'; $description = ''; } echo "\nBEGIN:VEVENT"; echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende; echo "\nSUMMARY:".$summary; echo "\nDESCRIPTION:".$description; echo "\nDTSTART;TZID=Europe/Vienna:$dtstart"; echo "\nDTEND;TZID=Europe/Vienna:$dtende"; echo "\nTRANSP:OPAQUE"; echo "\nEND:VEVENT"; $i++; } } } // Bei abgeschlossene Umfragen wird ein iCal File mitgeschickt, // deshalb müssen diese Termine nicht berücksichtigt werden /*elseif($umfrage->coodle_status_kurzbz=='abgeschlossen') { // Bei abgeschlossenen Umfragen wird nur mehr der ausgewaehlte Termin zur FreeBusy hinzugefuegt $termin = new coodle(); $coodle_termin_id=$termin->getTerminAuswahl($umfrage->coodle_id); if($termin->loadTermin($coodle_termin_id)) { //Start und Ende berechnen $date = new DateTime($termin->datum.' '.$termin->uhrzeit); $dtstart = $date->format('Ymd\THis'); $interval =new DateInterval('PT'.$umfrage->dauer.'M'); $date->add($interval); $uhrzeit_ende = $date->format('H:i:s'); $dtende = $date->format('Ymd\THis'); echo "\nBEGIN:VEVENT"; echo "\nSUMMARY:Coodle Terminzusage"; echo "\nDTSTART;TZID=Europe/Vienna: $dtstart"; echo "\nDTEND;TZID=Europe/Vienna: $dtende"; echo "\nTRANSP:OPAQUE"; echo "\nEND:VEVENT"; } }*/ // stornierte Umfragen werden nicht beruecksichtigt } echo "\nEND:VCALENDAR"; ?>