From 7e3bfd2c75b9bb86df24c44a3ef6d79c547e170a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 22 Jan 2013 10:17:00 +0000 Subject: [PATCH] =?UTF-8?q?FreeBusy=20f=C3=BCr=20Zeitsperren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/public/freebusy_zeitsperren.php | 87 +++++++++++++++++++++++++++++ include/stunde.class.php | 30 ++++++++++ 2 files changed, 117 insertions(+) create mode 100755 cis/public/freebusy_zeitsperren.php diff --git a/cis/public/freebusy_zeitsperren.php b/cis/public/freebusy_zeitsperren.php new file mode 100755 index 000000000..d35f669ec --- /dev/null +++ b/cis/public/freebusy_zeitsperren.php @@ -0,0 +1,87 @@ + + */ +/** + * Dieses Script liefert die FreeBusy Informationen für die Zeitsperren + * + * Aufruf: http://www.example.com/cis/public/freebusy_zeitsperren.php/[uid] + * zB + * http://www.example.com/cis/public/freebusy_zeitsperren.php/oesi + */ +require_once('../../config/cis.config.inc.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/zeitsperre.class.php'); +require_once('../../include/ical.class.php'); +require_once('../../include/stunde.class.php'); + +$uid = mb_substr($_SERVER['PATH_INFO'],1); + +$bn = new benutzer(); +if(!$bn->load($uid)) + die('User invalid'); + +header("Content-Type: text/calendar; charset=UTF-8"); + +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 'URL:',APP_ROOT,'cis/public/freebusy_zeitsperren.php/',$uid,"\n"; +echo "BEGIN:VFREEBUSY"; + +// Alle Umfragen holen an denen der User beteiligt ist +$zeitsperre = new zeitsperre(); +$zeitsperre->getzeitsperren($uid); + +foreach($zeitsperre->result as $row) +{ + //Start und Ende berechnen + $stunde = new stunde(); + + if($row->vonstunde!='') + { + $stunde->load($row->vonstunde); + $vonuhrzeit = $stunde->beginn; + } + else + $vonuhrzeit = '00:00:00'; + + if($row->bisstunde!='') + { + $stunde->load($row->bisstunde); + $bisuhrzeit = $stunde->ende; + } + else + $bisuhrzeit = '23:59:00'; + + $date = new DateTime($row->vondatum.' '.$vonuhrzeit); + $dtstart = $date->format('Ymd\THis'); + $date = new DateTime($row->bisdatum.' '.$bisuhrzeit); + $dtende = $date->format('Ymd\THis'); + echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart/$dtende"; +} + +echo "\nEND:VFREEBUSY"; +echo "\nEND:VCALENDAR"; +?> \ No newline at end of file diff --git a/include/stunde.class.php b/include/stunde.class.php index c759cd298..8a831e6dd 100644 --- a/include/stunde.class.php +++ b/include/stunde.class.php @@ -121,5 +121,35 @@ class stunde extends basis_db } return $stunden; } + + /** + * Laedt eine Stunde + * @param $stunde + */ + public function load($stunde) + { + $qry = "SELECT * FROM lehre.tbl_stunde WHERE stunde=".$this->db_add_param($stunde, FHC_INTEGER).";"; + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->beginn = $row->beginn; + $this->ende = $row->ende; + $this->stunde = $row->stunde; + return true; + } + else + { + $this->errormsg = 'Stunde wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg ='Fehler beim Laden der Daten'; + return false; + } + } + } ?> \ No newline at end of file