From ec63a5e0196360e9cf6e7656f4ef72ab68f5dfe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 1 Feb 2012 16:12:13 +0000 Subject: [PATCH] Erstversion der Free/Busy Url --- cis/public/freebusy.php | 77 +++ include/freebusy.class.php | 167 +++++ include/ical.class.php | 99 +++ system/FH-Complete.txp | 1310 ++++++++++++++++++++++++++++++++---- system/checksystem.php | 60 +- 5 files changed, 1577 insertions(+), 136 deletions(-) create mode 100755 cis/public/freebusy.php create mode 100755 include/freebusy.class.php create mode 100755 include/ical.class.php diff --git a/cis/public/freebusy.php b/cis/public/freebusy.php new file mode 100755 index 000000000..e559009a4 --- /dev/null +++ b/cis/public/freebusy.php @@ -0,0 +1,77 @@ + + */ +/** + * Dieses Script liefert die FreeBusy Informationen + * + * Aufruf: http://www.example.com/cis/public/freebusy.php/[uid] + * zB + * http://www.example.com/cis/public/freebusy.php/oesi + */ +require_once('../../config/cis.config.inc.php'); +require_once('../../include/freebusy.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/ical.class.php'); + +$uid = mb_substr($_SERVER['PATH_INFO'],1); + +$bn = new benutzer(); +if(!$bn->load($uid)) + die('User invalid'); + +$freebusy = new freebusy(); +$freebusy->getFreeBusy($uid); +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:',date('Ymd', mktime(date('H'),date('i'),date('s'),date('m'),date('d')-5,date('Y'))),'T',date('Hms'),"Z\n"; +echo 'DTSTART:',date('Ymd', mktime(0,0,0,date('m'),date('d')-5,date('Y'))),"T000000Z\n"; +echo 'DTEND:',date('Ymd', mktime(0,0,0,date('m'),date('d')+30,date('Y'))),"T000000Z\n"; +echo 'URL:',APP_ROOT,'cis/public/freebusy.php/',$uid,"\n"; + +$ical = new ical(); + +foreach($freebusy->result as $row) +{ + + $fp = fopen($row->url,'r'); + if (!$fp) + { + echo "$errstr ($errno)
\n"; + } + else + { + $doc = ''; + while (!feof($fp)) + { + $line = fgets($fp); + $doc.=$line; + } + fclose($fp); + + $ical->importFreeBusy($doc, $row->freebusytyp_kurzbz); + } +} +echo $ical->getFreeBusy(); +echo "\nEND:VCALENDAR"; +?> \ No newline at end of file diff --git a/include/freebusy.class.php b/include/freebusy.class.php new file mode 100755 index 000000000..27e5146d0 --- /dev/null +++ b/include/freebusy.class.php @@ -0,0 +1,167 @@ + and + */ +/** + * Klasse FreeBusy + * @create 27-01-2012 + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class freebusy extends basis_db +{ + public $new; + public $result = array(); + + public $freebusy_id; + public $uid; + public $freebusytyp_kurzbz; + public $url; + public $aktiv; + public $bezeichnung; + public $insertamum; + public $insertvon; + public $updateamum; + public $updatevon; + + public $beschreibung; + + /** + * Konstruktor + * @param $freebusy_id ID der FreeBusy Eintrags der geladen werden soll (Default=null) + */ + public function __construct($freebusy_id=null) + { + parent::__construct(); + + if(!is_null($freebusy_id)) + $this->load($freebusy_id); + } + + /** + * Laedt einen FreeBusy Eintrag mit der ID $freebusy_id + * @param freebusy_id + * @return true wenn ok, false im Fehlerfall + */ + public function load($freebusy_id) + { + //Pruefen ob id eine gueltige Zahl ist + if(!is_numeric($freebusy_id) || $freebusy_id == '') + { + $this->errormsg = 'id muss eine Zahl sein'; + return false; + } + + //Daten aus der Datenbank lesen + $qry = "SELECT * FROM campus.tbl_freebusy WHERE freebusy_id='".addslashes($freebusy_id)."'"; + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Fehler bei einer Datenbankabfrage'; + return false; + } + + if($row = $this->db_fetch_object()) + { + $this->freebusy_id = $row->freebusy_id; + $this->uid = $row->uid; + $this->freebusytyp_kurzbz = $row->freebusytyp_kurzbz; + $this->url = $row->url; + $this->aktiv = ($row->aktiv=='t'?true:false); + $this->bezeichnung = $row->bezeichnung; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + } + else + { + $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden'; + return false; + } + + return true; + } + + /** + * Liefert die FreeBusy Eintraege eines Benutzers + * + * @param $uid + */ + public function getFreeBusy($uid) + { + $qry = "SELECT * FROM campus.tbl_freebusy WHERE uid='".addslashes($uid)."' ORDER BY freebusy_id"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new freebusy(); + + $obj->freebusy_id = $row->freebusy_id; + $obj->uid = $row->uid; + $obj->freebusytyp_kurzbz = $row->freebusytyp_kurzbz; + $obj->url = $row->url; + $obj->aktiv = ($row->aktiv=='t'?true:false); + $obj->bezeichnung = $row->bezeichnung; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt die FreeBusyTypen + * + */ + public function getTyp() + { + $qry = "SELECT * FROM campus.tbl_freebusytyp ORDER BY bezeichnung"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new freebusy(); + + $obj->freebusytyp_kurbz = $row->freebusytyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->beschreibung = $row->beschreibung; + + $this->result[] = $obj; + } + return false; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/ical.class.php b/include/ical.class.php new file mode 100755 index 000000000..b7750464a --- /dev/null +++ b/include/ical.class.php @@ -0,0 +1,99 @@ + and + */ +/** + * Klasse ical + * @create 27-01-2012 + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class ical extends basis_db +{ + public $new; + public $result = array(); + + + /** + * Konstruktor + */ + public function __construct() + { + parent::__construct(); + } + + /** + * Importiert ein FreeBusy File + * + * @param $ical + * @param $typ + */ + public function importFreeBusy($ical, $typ) + { + $rows = explode("\n",$ical); + + $idx = count($result); + $status=0; + $dtstart=''; + $dtend=''; + foreach($rows as $row) + { + if(mb_strstr($row,'BEGIN:VFREEBUSY')) + { + $status=1; + if(!isset($this->result[$idx])) + $this->result[$idx]=''; + $this->result[$idx].=$row."\n"; + } + elseif(mb_strstr($row,'END:VFREEBUSY')) + { + $status=0; + $this->result[$idx].=$row."\n"; + $idx++; + } + elseif($status==1) + { + if($typ=='Google') + { + if(mb_strstr($row,'DTSTART:')) + { + $dtstart = mb_substr($row,8,-1); + } + elseif(mb_strstr($row,'DTEND:')) + { + $dtend = mb_substr($row,6,-1); + $this->result[$idx].='FREEBUSY:'.$dtstart.'/'.$dtend."\n"; + $dtstart=''; + $dtend=''; + } + } + elseif(mb_strstr($row,'FREEBUSY:')) + $this->result[$idx].=$row."\n"; + } + } + } + + /** + * Liefert die FreeBusy Eintraege + */ + public function getFreeBusy() + { + return implode($this->result); + } +} +?> \ No newline at end of file diff --git a/system/FH-Complete.txp b/system/FH-Complete.txp index 580704a11..0c84c4c9f 100644 --- a/system/FH-Complete.txp +++ b/system/FH-Complete.txp @@ -3267,6 +3267,7 @@ {92C7C73F-6DA9-46EB-867D-1F942EDBD429} {F1011062-F507-4859-9C8E-0EA6DF214535} {FE526FF6-5293-4905-A790-F5E3196D20C0} + {14D3777D-B05B-466E-9C6E-0AF8E54755A2} 0 0 @@ -8760,6 +8761,81 @@ 0 1 + + {48F9560B-233A-4ACD-9110-B2CECE88874D} + tbl_freebusy + 0 + {5E078E32-2D2F-4FEA-8903-2EC95C58307E} + 0 + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + 1383 + 4690 + 0 + 335 + 200 + 0 + 1 + 1 + 1 + 0 + + {543DA197-301D-4617-9819-59540A5CC91D} + {14D3777D-B05B-466E-9C6E-0AF8E54755A2} + + 0 + 0 + 2 + 0 + 0 + 0 + 1 + + + {022D83A7-13CC-47F9-AC0D-43A350D12677} + tbl_freebusytyp + 0 + {5F1E3141-7D7B-4DE2-B49F-1E7BCE928DEC} + 0 + {B7D26DFE-3DF5-4EC9-8C53-CC6BD60F51A2} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + 1695 + 4549 + 0 + 448 + 200 + 0 + 1 + 1 + 1 + 0 + + {543DA197-301D-4617-9819-59540A5CC91D} + + 0 + 0 + 2 + 0 + 0 + 0 + 1 + @@ -8785,15 +8861,15 @@ {AE958387-4CAC-43B9-8DB6-46E368970923} 3068 - 2018 + 2020 2023 - 1914 + 1917 2054 - 1914 + 1917 4082 @@ -9520,11 +9596,11 @@ 2023 - 1792 + 1791 2054 - 1792 + 1791 6362 @@ -9774,15 +9850,15 @@ {3FBDF806-A6E0-418B-A632-9E02C6784B78} 3578 - 2233 + 2234 2023 - 1937 + 1938 2054 - 1937 + 1938 5102 @@ -9817,15 +9893,15 @@ {2A9923DB-E256-4D6E-B571-DF1E915D3735} 4037 - 1969 + 1972 2023 - 1881 + 1886 2054 - 1881 + 1886 6020 @@ -9860,15 +9936,15 @@ {8CD50CD1-71FB-4FAC-8C97-E7FB4ACCA17A} 5802 - 2231 + 2233 2023 - 1892 + 1896 2054 - 1892 + 1896 9551 @@ -9946,15 +10022,15 @@ {8CB6E293-D364-4635-99BB-B716BD683617} 6554 - 1172 + 1171 2023 - 1814 + 1812 2054 - 1814 + 1812 11055 @@ -10032,15 +10108,15 @@ {FDA5C62A-FB2F-4276-A629-056A13FE389C} 4414 - 2123 + 2125 2023 - 1903 + 1907 2054 - 1903 + 1907 6775 @@ -10075,15 +10151,15 @@ {6361673E-711F-44A1-B2A2-567CEFE5EACD} 6838 - 1419 + 1422 2023 - 1848 + 1854 2054 - 1848 + 1854 11623 @@ -15376,15 +15452,15 @@ {DA94A477-BEF7-46E1-B584-D5D3B9ACA955} 2495 - 1874 + 1877 2023 - 1859 + 1865 2054 - 1859 + 1865 2936 @@ -15462,7 +15538,7 @@ {50F56A06-2253-4C1B-B89F-1C7F3210F086} 6246 - 1307 + 1306 10469 @@ -15474,11 +15550,11 @@ 2054 - 1826 + 1823 2023 - 1826 + 1823 @@ -22108,15 +22184,15 @@ {5237A702-978B-4895-A700-E85AB4FAD842} 3790 - 1599 + 1603 2023 - 1837 + 1844 2054 - 1837 + 1844 5727 @@ -22408,16 +22484,16 @@ {3BE3FDB1-C3BD-49BF-8EEE-E16D4E577FE1} - 2652 + 2651 2040 2023 - 1948 + 1949 2054 - 1948 + 1949 3449 @@ -23582,15 +23658,15 @@ {98394113-7DC4-4BFF-BA0E-95FC67C24A1E} 4840 - 2410 + 2411 2023 - 1926 + 1928 2054 - 1926 + 1928 7826 @@ -23625,15 +23701,15 @@ {015B4BEF-0757-4CFB-BAEE-D97CBCEDCE2F} 4057 - 980 + 979 2023 - 1803 + 1802 2054 - 1803 + 1802 6260 @@ -25197,15 +25273,15 @@ {B9DEDF57-70C8-449B-A293-70B3FD6E5423} 6036 - 1948 + 1951 2023 - 1870 + 1875 2054 - 1870 + 1875 10218 @@ -25432,6 +25508,92 @@ + + {543DA197-301D-4617-9819-59540A5CC91D} + fk_freebusytyp_freebusy + 0 + {DEA58A9B-D585-4152-81CF-3A2971805B34} + 0 + {84B4E7FB-894E-465C-AF85-0B31678B753C} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {022D83A7-13CC-47F9-AC0D-43A350D12677} + + + {48F9560B-233A-4ACD-9110-B2CECE88874D} + + 4715 + 1579 + + + 4773 + 1695 + + + 4773 + 1664 + + + 4858 + 1614 + + + 4858 + 1583 + + + + + {14D3777D-B05B-466E-9C6E-0AF8E54755A2} + fk_benutzer_freebusy + 0 + {B9B69478-83FA-43A9-8DC5-EA0759416FB3} + 0 + {831A43F4-EF1A-4384-9423-DAAB71BE3ED0} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {50F56A06-2253-4C1B-B89F-1C7F3210F086} + + + {48F9560B-233A-4ACD-9110-B2CECE88874D} + + 3256 + 1598 + + + 2023 + 1833 + + + 2054 + 1833 + + + 4659 + 1483 + + + 4690 + 1483 + + + @@ -35302,8 +35464,8 @@ 0 0 -28 - 1708 - 4103 + 1964 + 4124 0 1038 200 @@ -35493,8 +35655,8 @@ 0 0 -28 - 1269 - 4139 + 1037 + 5233 0 861 356 @@ -35992,8 +36154,8 @@ 0 0 -28 - 63 - 4212 + 25 + 4206 0 867 395 @@ -36027,8 +36189,8 @@ 0 0 -28 - 588 - 4247 + 453 + 4192 0 894 551 @@ -36100,8 +36262,8 @@ 0 0 -28 - 1160 - 5230 + 1416 + 5246 0 830 239 @@ -36137,8 +36299,8 @@ 0 0 -28 - 528 - 5319 + 411 + 5250 0 860 590 @@ -36257,8 +36419,8 @@ 0 0 -28 - 1562 - 6278 + 1525 + 6395 0 781 200 @@ -36484,8 +36646,8 @@ 0 0 -28 - 1477 - 5234 + 1760 + 6238 0 764 200 @@ -36521,8 +36683,8 @@ 0 0 -28 - 1766 - 5198 + 1706 + 5191 0 901 434 @@ -36559,8 +36721,8 @@ 0 0 -28 - 1592 - 7228 + 1346 + 7270 0 815 200 @@ -36581,6 +36743,80 @@ 1 1 + + {218B3815-BF6A-490B-B8CF-BB9BC3CBB4BC} + tbl_freebusy + 0 + {051FACC8-6100-4808-8A4C-2D5475D75BC2} + 0 + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + 1 + 0 + 12639424 + 238 + 0 + Arial + 0 + 0 + -28 + 1187 + 4175 + 0 + 888 + 239 + 0 + 1 + 1 + 1 + 1 + + {8D2C9011-5355-426F-A113-4A649EE9EDAC} + + 1 + 1 + 5 + 1 + 0 + 1 + 1 + + + {0C200322-31E1-49D8-BED2-438D386F4175} + tbl_freebusytyp + 0 + {FAEFACDE-55B7-4E28-BDDD-97C55E2B92CA} + 0 + {B7D26DFE-3DF5-4EC9-8C53-CC6BD60F51A2} + 1 + 0 + 12639424 + 238 + 0 + Arial + 0 + 0 + -28 + 1589 + 4179 + 0 + 867 + 200 + 0 + 1 + 1 + 1 + 1 + + {8D2C9011-5355-426F-A113-4A649EE9EDAC} + + 1 + 1 + 5 + 1 + 0 + 1 + 1 + @@ -36691,16 +36927,16 @@ {83601A3C-3C62-4DD2-8F11-A9493F5997E4} - 4600 - 2019 + 4611 + 2147 - 4622 - 1908 + 4643 + 2164 - 4622 - 1939 + 4643 + 2195 4618 @@ -37434,16 +37670,16 @@ {E1C9E6E3-90B8-49A2-85A0-2C382A2DEEB0} - 6062 - 1204 + 6070 + 1332 - 6060 - 1280 + 6076 + 1536 - 6091 - 1280 + 6107 + 1536 6260 @@ -37477,8 +37713,8 @@ {EA51A6CA-3B44-4BC2-A8BE-355113344D54} - 6126 - 886 + 6091 + 827 6291 @@ -37489,12 +37725,12 @@ 1096 - 6210 - 823 + 6141 + 706 - 6179 - 823 + 6110 + 706 @@ -37520,8 +37756,8 @@ {A98D91E4-4C4C-49F6-BBB7-DFB162F4DFA2} - 6570 - 1418 + 6629 + 1399 6696 @@ -37532,12 +37768,12 @@ 1452 - 6668 - 1531 + 6786 + 1494 - 6668 - 1562 + 6786 + 1525 @@ -37563,8 +37799,8 @@ {A98D91E4-4C4C-49F6-BBB7-DFB162F4DFA2} - 6438 - 1818 + 6497 + 1799 6432 @@ -37575,12 +37811,12 @@ 1990 - 6668 - 1793 + 6786 + 1756 - 6668 - 1762 + 6786 + 1725 @@ -37606,8 +37842,8 @@ {EA51A6CA-3B44-4BC2-A8BE-355113344D54} - 5477 - 356 + 5443 + 297 5550 @@ -37618,12 +37854,12 @@ 363 - 5606 - 497 + 5537 + 380 - 5606 - 528 + 5537 + 411 @@ -37704,16 +37940,16 @@ {A35383EA-0703-4EBA-AB5F-A68F8E6BD16B} - 5853 - 301 + 5818 + 242 - 5892 - 528 + 5823 + 411 - 5892 - 497 + 5823 + 380 6014 @@ -37876,24 +38112,24 @@ {9592E5CD-A497-41B0-A32F-BEFD756A0A6A} - 5493 - 1667 + 6026 + 1872 - 5616 - 1677 + 6238 + 1860 - 5616 - 1708 + 6207 + 1860 - 5648 - 1735 + 6123 + 1995 - 5648 - 1766 + 6092 + 1995 @@ -37919,8 +38155,8 @@ {9592E5CD-A497-41B0-A32F-BEFD756A0A6A} - 6021 - 1488 + 6018 + 1423 6291 @@ -37931,12 +38167,12 @@ 1312 - 6130 - 1983 + 6123 + 1851 - 6099 - 1983 + 6092 + 1851 @@ -37962,8 +38198,8 @@ {83C7C783-DDFF-4FB1-956A-06F3B409AB8E} - 7365 - 1458 + 7387 + 1334 7795 @@ -37974,12 +38210,12 @@ 1274 - 7636 - 1561 + 7678 + 1315 - 7636 - 1592 + 7678 + 1346 @@ -38005,8 +38241,8 @@ {83C7C783-DDFF-4FB1-956A-06F3B409AB8E} - 6865 - 1781 + 6886 + 1658 6733 @@ -38017,12 +38253,55 @@ 1990 - 7197 - 1692 + 7239 + 1446 - 7228 - 1692 + 7270 + 1446 + + + + + {8D2C9011-5355-426F-A113-4A649EE9EDAC} + fk_freebusytyp_freebusy + 0 + {7D5BDAA6-52A4-4862-BF7D-78F354C6EBCE} + 0 + {84B4E7FB-894E-465C-AF85-0B31678B753C} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {0C200322-31E1-49D8-BED2-438D386F4175} + + + {218B3815-BF6A-490B-B8CF-BB9BC3CBB4BC} + + 4515 + 1448 + + + 4612 + 1589 + + + 4612 + 1558 + + + 4619 + 1457 + + + 4619 + 1426 @@ -45596,6 +45875,7 @@ {980B0C1C-28D6-4B4E-84FB-BCB4F33A3490} {BABA7152-7013-4B27-8327-CE022E2A5297} {3F70B3B5-44FA-4C8D-B707-79E3DB8CA863} + {0ACFAC11-8904-49DF-98DC-E5FC891CD673} 1 1 @@ -45955,6 +46235,81 @@ 1 1 + + {4497CF6D-F4D0-488D-AFB2-C0638A89F4B1} + tbl_freebusy + 0 + {433FE605-E148-43F6-8FCF-7920A36B2009} + 0 + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + 1383 + 4690 + 0 + 200 + 300 + 0 + 1 + 1 + 1 + 0 + + {1B9FF8D3-AF9F-4DCF-96BB-13E1098E58E0} + {0ACFAC11-8904-49DF-98DC-E5FC891CD673} + + 1 + 1 + 5 + 1 + 0 + 1 + 1 + + + {977B7BD8-513F-4ECE-9BF8-F9DEDFF6CB4D} + tbl_freebusytyp + 0 + {664BE803-48FD-4F8F-8BCF-8B3ED2E84B16} + 0 + {B7D26DFE-3DF5-4EC9-8C53-CC6BD60F51A2} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + 1695 + 4549 + 0 + 200 + 300 + 0 + 1 + 1 + 1 + 0 + + {1B9FF8D3-AF9F-4DCF-96BB-13E1098E58E0} + + 1 + 1 + 5 + 1 + 0 + 1 + 1 + @@ -46511,6 +46866,58 @@ 0 + + {1B9FF8D3-AF9F-4DCF-96BB-13E1098E58E0} + fk_freebusytyp_freebusy + 0 + {E136ABBF-9A08-4CC0-A3E6-31B7AC2608FE} + 0 + {84B4E7FB-894E-465C-AF85-0B31678B753C} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {977B7BD8-513F-4ECE-9BF8-F9DEDFF6CB4D} + + + {4497CF6D-F4D0-488D-AFB2-C0638A89F4B1} + + 0 + 0 + + + + {0ACFAC11-8904-49DF-98DC-E5FC891CD673} + fk_benutzer_freebusy + 0 + {97E6A286-B92F-4877-94FB-7AF235650ED5} + 0 + {831A43F4-EF1A-4384-9423-DAAB71BE3ED0} + 1 + 0 + 15780518 + 238 + 0 + Arial + 0 + 0 + -28 + + {950941FE-7219-4043-82FD-8E6AE76BD8A7} + + + {4497CF6D-F4D0-488D-AFB2-C0638A89F4B1} + + 0 + 0 + + @@ -46649,7 +47056,7 @@ Technikum Wien 2.0 2009-04-17T10:15:21.000+01:00 - 2012-01-19T11:37:20.793+01:00 + 2012-01-27T09:08:34.319+01:00 FH-Complete 2.0 <?xml-stylesheet type="text/xsl" href="FHCompleteTDM3PG83.xsl"?> @@ -46980,6 +47387,8 @@ {CB59DC4F-DFEC-41DE-B3A6-ABA59BF5ADF7} {52C9E7E9-9A19-4074-B84B-5B8E70CDACFB} {4A6BD37B-0955-4086-A84C-B275D73784EB} + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + {B7D26DFE-3DF5-4EC9-8C53-CC6BD60F51A2} 0 0 @@ -86490,6 +86899,7 @@ Studiengang>0 und Semester>0 -> News fuer bestimmtes Semester im Studie {C46E22BE-5FD0-4630-BD19-988C9AFDCF28} {3D35A973-7B7D-4DD5-9870-9F5F562D8130} {F644BCC8-498F-484C-AF4A-F34DECA37F2C} + {831A43F4-EF1A-4384-9423-DAAB71BE3ED0} @@ -86547,6 +86957,7 @@ Studiengang>0 und Semester>0 -> News fuer bestimmtes Semester im Studie {06829AC1-DD34-4898-BA1B-F43A476D7BB4} {F6581D94-8798-4820-B6B8-030D7E887D9B} {B024C552-940F-4557-A6E9-ADE710D423E9} + {D4D2B31B-D505-4995-BE3B-A7EB8A6C34F1} @@ -87036,6 +87447,7 @@ Studiengang>0 und Semester>0 -> News fuer bestimmtes Semester im Studie {06829AC1-DD34-4898-BA1B-F43A476D7BB4} {F6581D94-8798-4820-B6B8-030D7E887D9B} {B024C552-940F-4557-A6E9-ADE710D423E9} + {D4D2B31B-D505-4995-BE3B-A7EB8A6C34F1} @@ -87066,6 +87478,7 @@ Studiengang>0 und Semester>0 -> News fuer bestimmtes Semester im Studie {C46E22BE-5FD0-4630-BD19-988C9AFDCF28} {3D35A973-7B7D-4DD5-9870-9F5F562D8130} {F644BCC8-498F-484C-AF4A-F34DECA37F2C} + {831A43F4-EF1A-4384-9423-DAAB71BE3ED0} @@ -144322,6 +144735,515 @@ Wenn FALSE haengt die Anzahl der Fragen pro Level von der Gesamtzahl pro Level a + + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + tbl_freebusy + 0 + {35DF8149-3CA0-4BC7-A4EB-9CAA1F77629E} + 0 + 0 + 0 + 0 + 1 + + + + + tbl_freebusy + 0 + + {84B4E7FB-894E-465C-AF85-0B31678B753C} + {831A43F4-EF1A-4384-9423-DAAB71BE3ED0} + + + + {DBC4FC63-CE8F-4205-9111-DA866AC1E43E} + freebusy_id + 1 + {8062C75D-A93F-467A-86D6-E6B6F1A0A5B9} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 1 + 0 + freebusy_id + 0 + + + + + {616D885D-A37C-4B44-8437-63F5E579CDE1} + + + + + + + {5F0FB0CB-62A1-4BDC-A4DA-882CACFC296A} + + + + + + + + 0 + + + {A2912A7D-3ED3-47F6-9647-B5C054AC200A} + uid + 2 + {1CF1137F-FC74-4C5C-8747-4115A9314152} + 0 + 0 + 0 + 0 + 1 + + + + + 32 + + 0 + + 1 + 1 + uid + 0 + + + + + + + {D4D2B31B-D505-4995-BE3B-A7EB8A6C34F1} + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + {5FF5C99A-B03B-4FB6-BA91-FFA530301C64} + freebusytyp_kurzbz + 3 + {494359FB-AA15-4409-B67C-A975642B3191} + 0 + 0 + 0 + 0 + 1 + + + + + 32 + + 0 + + 0 + 1 + freebusytyp_kurzbz + 0 + + + + + + + {6773CA57-6B9B-472D-A3B5-1D663752FB42} + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + {C8CC31C1-A497-4AC4-B164-5BC66CF71B4C} + url + 4 + {74A9A57E-A26D-44F9-9D07-D6F39090D697} + 0 + 0 + 0 + 0 + 1 + + + + + 1024 + + 0 + + 1 + 0 + url + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + {F5348B90-5A4D-4B97-8EBB-29484EC38EFE} + aktiv + 5 + {1955564C-8F7C-4A24-992A-A8E2AB9A9021} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 1 + 0 + aktiv + 0 + + + + + + + + + + {D64069A5-B04A-490B-B0A2-5144DEA81A2E} + + + + + + + + 0 + + + + + {5C04C7A5-5D56-4B03-986E-C519C9644E77} + Key48 + 0 + {F78B3987-ADBC-4E81-BB5F-A7F2B87F9F22} + 0 + 0 + 0 + 0 + 1 + + + + + Key48 + + + {616D885D-A37C-4B44-8437-63F5E579CDE1} + freebusy_id + 0 + {B042833C-D1C5-46D8-8D1C-80AA630AA863} + 0 + 1 + + + + + 0 + + {DBC4FC63-CE8F-4205-9111-DA866AC1E43E} + + + + + + + + + + + + {5C04C7A5-5D56-4B03-986E-C519C9644E77} + + + + + + + + + {A0178E89-8366-4582-834F-E124208C684D} + + + 0 + + 0 + + + + + + + {B7D26DFE-3DF5-4EC9-8C53-CC6BD60F51A2} + tbl_freebusytyp + 0 + {8DC16EE7-E7E0-453F-BAF2-9AD2338A1763} + 0 + 0 + 0 + 0 + 1 + + + + + tbl_freebusytyp + 0 + + {84B4E7FB-894E-465C-AF85-0B31678B753C} + + + + {ED1157D9-5AA6-48B3-9329-93FFC64B522F} + freebusytyp_kurzbz + 0 + {AC50CF58-1544-4233-93D1-11D8798CBB43} + 0 + 0 + 0 + 0 + 1 + + + + + 32 + + 0 + + 1 + 0 + freebusytyp_kurzbz + 0 + + + + + {540162AA-15C7-4D2F-B3DC-76235F70C396} + + + {6773CA57-6B9B-472D-A3B5-1D663752FB42} + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + {FE5C9568-141F-4CFA-8323-1F5FB2B7331D} + bezeichnung + 0 + {72D562E9-5DC8-4303-BDB9-6558A6285A3B} + 0 + 0 + 0 + 0 + 1 + + + + + 256 + + 0 + + 0 + 0 + bezeichnung + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + + + {92E5DA94-550E-44E2-BC60-17A64951373C} + beschreibung + 0 + {B0708A60-4EFB-413B-9A02-1E6D89AE9EB8} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 0 + 0 + beschreibung + 0 + + + + + + + + + + {8D91E2A4-12F5-40E3-BAC2-BFCF7BE1C8B7} + + + + + + + + 0 + + + + + {D5EDB1EA-12BA-4C5A-A0CE-0266583EBD63} + Key49 + 0 + {72A91D12-E535-4C11-B2E4-C1D9D7413684} + 0 + 0 + 0 + 0 + 1 + + + + + Key49 + + + {540162AA-15C7-4D2F-B3DC-76235F70C396} + freebusytyp_kurzbz + 0 + {6BD92C59-3341-4BF1-9BE7-F59E0D82B86B} + 0 + 1 + + + + + 0 + + {ED1157D9-5AA6-48B3-9329-93FFC64B522F} + + + {6773CA57-6B9B-472D-A3B5-1D663752FB42} + + + + + {84B4E7FB-894E-465C-AF85-0B31678B753C} + + + + + + + + {D5EDB1EA-12BA-4C5A-A0CE-0266583EBD63} + + + + + + + + + {A0178E89-8366-4582-834F-E124208C684D} + + + 0 + + 0 + + + + + @@ -167185,6 +168107,122 @@ Wenn FALSE haengt die Anzahl der Fragen pro Level von der Gesamtzahl pro Level a SIMPLE 1 + + {84B4E7FB-894E-465C-AF85-0B31678B753C} + fk_freebusytyp_freebusy + 0 + {763BFB38-9D88-44BF-969C-3453D247B736} + 0 + + {B7D26DFE-3DF5-4EC9-8C53-CC6BD60F51A2} + + + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + + 1 + + + 0 + 0 + 0 + -1 + + fk_freebusytyp_freebusy + + 0 + 0 + 0 + 0 + + {D5EDB1EA-12BA-4C5A-A0CE-0266583EBD63} + + + + {6773CA57-6B9B-472D-A3B5-1D663752FB42} + FK freebusytyp_kurzbz - freebusytyp_kurzbz + 0 + {986DC86D-8C85-4F8D-88B6-8CEB7DEE20CD} + 0 + 1 + + + + + + {ED1157D9-5AA6-48B3-9329-93FFC64B522F} + + + {5FF5C99A-B03B-4FB6-BA91-FFA530301C64} + + + {540162AA-15C7-4D2F-B3DC-76235F70C396} + + + + + 0 + 0 + SIMPLE + 1 + + + {831A43F4-EF1A-4384-9423-DAAB71BE3ED0} + fk_benutzer_freebusy + 0 + {17752ED9-2192-4392-B073-6C2928CFE981} + 0 + + {20863D57-4A76-4276-B1E9-1FF7E0B4C0BB} + + + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + + 1 + + + 0 + 0 + 0 + -1 + + fk_benutzer_freebusy + + 0 + 0 + 0 + 0 + + {70EE0BEF-C69B-4791-AEBC-2767B8F1CFB3} + + + + {D4D2B31B-D505-4995-BE3B-A7EB8A6C34F1} + FK uid - uid + 0 + {F5479316-B382-468F-B216-0A06B682DE49} + 0 + 1 + + + + + + {FB409F67-7476-4E1F-88C7-F3E6BC9BE1C3} + + + {A2912A7D-3ED3-47F6-9647-B5C054AC200A} + + + {AA8ACCF4-983D-47F3-B631-844DA7380947} + + + + + 0 + 0 + SIMPLE + 1 + @@ -200255,6 +201293,8 @@ SELECT tbl_pruefling.prestudent_id, tbl_pruefling.pruefling_id, tbl_pruefling.st {CB59DC4F-DFEC-41DE-B3A6-ABA59BF5ADF7} {52C9E7E9-9A19-4074-B84B-5B8E70CDACFB} {4A6BD37B-0955-4086-A84C-B275D73784EB} + {D170DA60-1197-4C97-B562-B1F8EDC96F5F} + {B7D26DFE-3DF5-4EC9-8C53-CC6BD60F51A2} diff --git a/system/checksystem.php b/system/checksystem.php index 333755f70..fea1228d2 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3205,6 +3205,62 @@ if(!$result = @$db->db_query('SELECT 1 FROM campus.tbl_dms_kategorie_gruppe LIMI else echo 'Tabelle campus.tbl_dms_kategorie_gruppe hinzugefuegt!
'; } + + +// Tabelle fuer FreeBusy +if(!@$db->db_query("SELECT 1 FROM campus.tbl_freebusy LIMIT 1")) +{ + $qry = " + CREATE TABLE campus.tbl_freebusy + ( + freebusy_id integer NOT NULL, + uid varchar(32) NOT NULL, + freebusytyp_kurzbz varchar(32) NOT NULL, + url varchar(1024) NOT NULL, + aktiv boolean NOT NULL, + bezeichnung varchar(256), + insertamum timestamp, + insertvon varchar(32), + updateamum timestamp, + updatevon varchar(32) + ); + + CREATE TABLE campus.tbl_freebusytyp + ( + freebusytyp_kurzbz varchar(32) NOT NULL, + bezeichnung varchar(256), + beschreibung text + ); + + CREATE SEQUENCE campus.seq_freebusy_freebusy_id + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + ALTER TABLE campus.tbl_freebusy ALTER COLUMN freebusy_id SET DEFAULT nextval('campus.seq_freebusy_freebusy_id'); + + ALTER TABLE campus.tbl_freebusy ADD CONSTRAINT pk_freebusy PRIMARY KEY (freebusy_id); + ALTER TABLE campus.tbl_freebusytyp ADD CONSTRAINT pk_freebusytyp PRIMARY KEY (freebusytyp_kurzbz); + + ALTER TABLE campus.tbl_freebusy ADD CONSTRAINT fk_freebusytyp_freebusy FOREIGN KEY(freebusytyp_kurzbz) REFERENCES campus.tbl_freebusytyp(freebusytyp_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE campus.tbl_freebusy ADD CONSTRAINT fk_benutzer_freebusy FOREIGN KEY(uid) REFERENCES public.tbl_benutzer(uid) ON DELETE CASCADE ON UPDATE CASCADE; + + GRANT SELECT, INSERT, UPDATE, DELETE ON campus.tbl_freebusy TO admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON campus.tbl_freebusytyp TO admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON campus.tbl_freebusy TO web; + GRANT SELECT, INSERT, UPDATE, DELETE ON campus.tbl_freebusytyp TO web; + + GRANT SELECT, UPDATE ON campus.seq_freebusy_freebusy_id TO admin; + GRANT SELECT, UPDATE ON campus.seq_freebusy_freebusy_id TO web; + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_freebusy: '.$db->db_last_error().'
'; + else + echo 'Tabelle campus.tbl_freebusy, campus.tbl_freebusytyp hinzugefuegt!
'; +} + echo '
'; $tabellen=array( @@ -3243,8 +3299,10 @@ $tabellen=array( "campus.tbl_dms_version" => array("dms_id","version","filename","mimetype","name","beschreibung","letzterzugriff","updateamum","updatevon","insertamum","insertvon"), "campus.tbl_erreichbarkeit" => array("erreichbarkeit_kurzbz","beschreibung","farbe"), "campus.tbl_feedback" => array("feedback_id","betreff","text","datum","uid","lehrveranstaltung_id","updateamum","updatevon","insertamum","insertvon"), + "campus.tbl_freebusy" => array("freebusy_id","uid","freebusytyp_kurzbz","url","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon"), + "campus.tbl_freebusytyp" => array("freebusytyp_kurzbz","bezeichnung","beschreibung"), "campus.tbl_infoscreen" => array("infoscreen_id","bezeichnung","beschreibung","ipadresse"), - "campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon"), + "campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit"), "campus.tbl_legesamtnote" => array("student_uid","lehreinheit_id","note","benotungsdatum","updateamum","updatevon","insertamum","insertvon"), "campus.tbl_lvgesamtnote" => array("lehrveranstaltung_id","studiensemester_kurzbz","student_uid","note","mitarbeiter_uid","benotungsdatum","freigabedatum","freigabevon_uid","bemerkung","updateamum","updatevon","insertamum","insertvon"), "campus.tbl_lvinfo" => array("lehrveranstaltung_id","sprache","titel","lehrziele","lehrinhalte","methodik","voraussetzungen","unterlagen","pruefungsordnung","anmerkung","kurzbeschreibung","genehmigt","aktiv","updateamum","updatevon","insertamum","insertvon"),