From 312eaeb273db53f9f7a46b401b2d8cd9d2432d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 18 Jan 2012 14:49:38 +0000 Subject: [PATCH] =?UTF-8?q?Verwaltungsseite=20f=C3=BCr=20Infoscreens?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/infoscreen.class.php | 245 ++++++++++++++++++- include/tw/vilesci_menu_main.inc.php | 1 + vilesci/stammdaten/infoscreen_details.php | 201 +++++++++++++++ vilesci/stammdaten/infoscreen_frameset.html | 20 ++ vilesci/stammdaten/infoscreen_uebersicht.php | 161 ++++++++++++ 5 files changed, 625 insertions(+), 3 deletions(-) create mode 100755 vilesci/stammdaten/infoscreen_details.php create mode 100755 vilesci/stammdaten/infoscreen_frameset.html create mode 100755 vilesci/stammdaten/infoscreen_uebersicht.php diff --git a/include/infoscreen.class.php b/include/infoscreen.class.php index 79f3d2ced..e33dcb59b 100755 --- a/include/infoscreen.class.php +++ b/include/infoscreen.class.php @@ -57,7 +57,7 @@ class infoscreen extends basis_db */ public function load($infoscreen_id) { - //infoscreen_id auf gueltigkeit pruefen + //infoscreen_id auf Gueltigkeit pruefen if(!is_numeric($infoscreen_id) || $infoscreen_id == '') { $this->errormsg = 'infoscreen_id muss eine gültige Zahl sein'; @@ -90,6 +90,214 @@ class infoscreen extends basis_db } } + /** + * Laedt einen InfoscreenContent Datensatz + * @param infoscreen_content_id ID des zu ladenden Datensatzes + */ + public function loadContent($infoscreen_content_id) + { + //infoscreen_content_id auf Gueltigkeit pruefen + if(!is_numeric($infoscreen_content_id) || $infoscreen_content_id == '') + { + $this->errormsg = 'infoscreen__content_id muss eine gültige Zahl sein'; + return false; + } + + //laden des Datensatzes + $qry = "SELECT * FROM campus.tbl_infoscreen_content WHERE infoscreen_content_id='".addslashes($infoscreen_content_id)."';"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->infoscreen_content_id = $row->infoscreen_content_id; + $this->infoscreen_id = $row->infoscreen_id; + $this->content_id = $row->content_id; + $this->gueltigvon = $row->gueltigvon; + $this->gueltigbis = $row->gueltigbis; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + return true; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + + /** + * Laedt alle Infoscreens + * @return boolean + */ + public function getAll() + { + $qry = "SELECT * FROM campus.tbl_infoscreen"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new infoscreen(); + + $obj->infoscreen_id = $row->infoscreen_id; + $obj->bezeichnung = $row->bezeichnung; + $obj->beschreibung = $row->beschreibung; + $obj->ipadresse = $row->ipadresse; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * + * Speichert einen Infoscreen in der Datenbank + * @return boolean + */ + public function save($new=null) + { + if(is_null($new)) + $new = $this->new; + + if($new) + { + $qry = "BEGIN;INSERT INTO campus.tbl_infoscreen(bezeichnung, beschreibung, ipadresse) VALUES(". + $this->addslashes($this->bezeichnung).','. + $this->addslashes($this->beschreibung).','. + $this->addslashes($this->ipadresse).');'; + } + else + { + $qry = 'UPDATE campus.tbl_infoscreen SET '. + ' bezeichnung='.$this->addslashes($this->bezeichnung).','. + ' beschreibung='.$this->addslashes($this->beschreibung).','. + ' ipadresse='.$this->addslashes($this->ipadresse).' '. + ' WHERE infoscreen_id='.$this->addslashes($this->infoscreen_id).';'; + } + + if($this->db_query($qry)) + { + if($new) + { + $qry = "SELECT currval('campus.seq_infoscreen_infoscreen_id') as id"; + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->infoscreen_id = $row->id; + $this->db_query('COMMIT'); + return true; + } + else + { + $this->errormsg='Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + { + $this->errormsg='Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } + + /** + * + * Speichert eine Contentzuordnung in der Datenbank + * @return boolean + */ + public function saveContent($new=null) + { + if(is_null($new)) + $new = $this->new; + + if($new) + { + $qry = "BEGIN;INSERT INTO campus.tbl_infoscreen_content(infoscreen_id, content_id, + gueltigvon, gueltigbis, insertamum, insertvon, updateamum, updatevon) VALUES(". + $this->addslashes($this->infoscreen_id).','. + $this->addslashes($this->content_id).','. + $this->addslashes($this->gueltigvon).','. + $this->addslashes($this->gueltigbis).','. + $this->addslashes($this->insertamum).','. + $this->addslashes($this->insertvon).','. + $this->addslashes($this->updateamum).','. + $this->addslashes($this->updatevon).');'; + } + else + { + $qry = 'UPDATE campus.tbl_infoscreen_content SET '. + ' infoscreen_id='.$this->addslashes($this->infoscreen_id).','. + ' content_id='.$this->addslashes($this->content_id).','. + ' gueltigvon='.$this->addslashes($this->gueltigvon).','. + ' gueltigbis='.$this->addslashes($this->gueltigbis).','. + ' updateamum='.$this->addslashes($this->updateamum).','. + ' updatevon='.$this->addslashes($this->updatevon).' '. + ' WHERE infoscreen_content_id='.$this->addslashes($this->infoscreen_content_id).';'; + } + + if($this->db_query($qry)) + { + if($new) + { + $qry = "SELECT currval('campus.seq_infoscreen_content_infoscreen_content_id') as id"; + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->infoscreen_content_id = $row->id; + $this->db_query('COMMIT'); + return true; + } + else + { + $this->errormsg='Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + { + $this->errormsg='Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } /** * * Liefert den Infoscreen anhand der IP-Adresse @@ -125,15 +333,23 @@ class infoscreen extends basis_db * * Liefert den Content der am betreffenden Infoscreen angezeigt werden soll * @param $infoscreen_id id des Infoscreens + * @param $aktuell wenn true werden nur die aktuell gueltigen Contents geliefert */ - public function getScreenContent($infoscreen_id) + public function getScreenContent($infoscreen_id, $aktuell=true) { + if(!is_numeric($infoscreen_id)) + { + $this->errormsg = 'InfoscreenID ist ungueltig'; + return false; + } $qry = "SELECT * FROM campus.tbl_infoscreen_content WHERE - (infoscreen_id='".addslashes($infoscreen_id)."' OR infoscreen_id is null) + (infoscreen_id='".addslashes($infoscreen_id)."' OR infoscreen_id is null)"; + if($aktuell) + $qry.=" AND (gueltigvon<=now() OR gueltigvon is null) AND (gueltigbis>=now() OR gueltigbis is null)"; if($result = $this->db_query($qry)) @@ -162,5 +378,28 @@ class infoscreen extends basis_db return false; } } + + /** + * Entfernt eine Content Zuordnung + * + * @param $infoscreen_content_id + * @return boolean + */ + public function deleteContent($infoscreen_content_id) + { + if(!is_numeric($infoscreen_content_id)) + { + $this->errormsg = 'ID ist ungueltig'; + return false; + } + $qry = "DELETE FROM campus.tbl_infoscreen_content WHERE infoscreen_content_id='".addslashes($infoscreen_content_id)."'"; + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Loeschen'; + return false; + } + } } ?> \ No newline at end of file diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 6c3014e76..66b861e22 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -165,6 +165,7 @@ $menu=array 'Organisationseinheiten'=>array('name'=>'Organisationseinheiten', 'link'=>'stammdaten/organisationseinheiten.php', 'target'=>'main','permissions'=>array('basis/organisationseinheit')), 'Statistik'=>array('name'=>'Statistik', 'link'=>'stammdaten/statistik_frameset.html', 'target'=>'main','permissions'=>array('basis/statistik')), 'Ampel'=>array('name'=>'Ampel', 'link'=>'stammdaten/ampel_frameset.html', 'target'=>'main','permissions'=>array('basis/ampel')), + 'Infoscreen'=>array('name'=>'Infoscreen', 'link'=>'stammdaten/infoscreen_frameset.html', 'target'=>'main','permissions'=>array('basis/infoscreen')), 'ImExport'=>array ( 'name'=>'ImExport','permissions'=>array('admin'), diff --git a/vilesci/stammdaten/infoscreen_details.php b/vilesci/stammdaten/infoscreen_details.php new file mode 100755 index 000000000..a28d4d488 --- /dev/null +++ b/vilesci/stammdaten/infoscreen_details.php @@ -0,0 +1,201 @@ + + */ +/** + * Seite zur Wartung der Infoscreens + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/infoscreen.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/datum.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$user = get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('basis/infoscreen')) + die('Sie haben keine Berechtigung fuer diese Seite'); + +$datum_obj = new datum(); +?> + + + + Infoscreen - Details + + + + + + + + +load($infoscreen_id)) + die($infoscreen->errormsg); + + echo '

Details von Infoscreen ',$infoscreen_id,' - ',$infoscreen->bezeichnung.'

'; + + echo ' +
+ Neuen Eintrag hinzufügen +
'; + + if($action=='save') + { + if(!$rechte->isBerechtigt('basis/infoscreen', null, 'sui')) + die('Sie haben keine Berechtigung fuer diese Seite'); + $my_infoscreen_id = $_POST['infoscreen_id']; + $infoscreen_content_id = $_POST['infoscreen_content_id']; + $content_id = $_POST['content_id']; + $gueltigvon = $_POST['gueltigvon']; + $gueltigbis = $_POST['gueltigbis']; + + $infoscreen = new infoscreen(); + if($infoscreen_content_id!='') + { + $infoscreen->loadContent($infoscreen_content_id); + $infoscreen->new = false; + } + else + { + $infoscreen->new = true; + $infoscreen->insertamum = date('Y-m-d H:i:s'); + $infoscreen->insertvon = $user; + } + + $infoscreen->infoscreen_id = $my_infoscreen_id; + $infoscreen->content_id = $content_id; + $infoscreen->gueltigvon = $datum_obj->formatDatum($gueltigvon,'Y-m-d H:i:s'); + $infoscreen->gueltigbis = $datum_obj->formatDatum($gueltigbis,'Y-m-d H:i:s'); + $infoscreen->updateamum = date('Y-m-d H:i:s'); + $infoscreen->updatevon = $user; + + if(!$infoscreen->saveContent()) + echo '',$db->convert_html_chars($infoscreen->errormsg),''; + else + echo 'Daten erfolgreich gespeichert'; + } + if($action=='delete') + { + if(!$rechte->isBerechtigt('basis/infoscreen', null, 'suid')) + die('Sie haben keine Berechtigung fuer diese Seite'); + $infoscreen = new infoscreen(); + $infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:''); + if(!$infoscreen->deleteContent($infoscreen_content_id)) + echo '',$db->convert_html_chars($infoscreen->errormsg),''; + } + //Formular fuer neu/update + if($action=='new' || $action=='update') + { + $infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:''); + $infoscreen = new infoscreen(); + if($action=='new') + { + echo '

Neu

'; + } + else + { + echo '

Bearbeiten von ID ',$infoscreen_content_id,'

'; + if(!$infoscreen->loadContent($infoscreen_content_id)) + die('Fehler: '.$infoscreen->errormsg); + } + echo ' +
+ + + + + + + + + + + + + + + + + + + + + + +
InfoscreenID (Wenn keine ID eingetragen wird, gilt der Eintrag für alle Infoscreens)
Content ID
Gültig von ( Format: ',date('d.m.Y H:i:s'),' )
Gültig bis ( Format: ',date('d.m.Y H:i:s'),' )
+
'; + } + + if(!$infoscreen->getScreenContent($infoscreen_id, false)) + die('Fehler:'.$infoscreen->errormsg); + echo ' + + + + + + + + + + + '; + + foreach($infoscreen->result as $row) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo ' +
IDInfoscreenIDContentIDGültig vonGültig bisAktion
',$db->convert_html_chars($row->infoscreen_content_id),'',$db->convert_html_chars($row->infoscreen_id),'',$db->convert_html_chars($row->content_id),'',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i:s')),'',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i:s')),'bearbeiten'; + echo 'entfernen'; + echo '
'; + +?> + + \ No newline at end of file diff --git a/vilesci/stammdaten/infoscreen_frameset.html b/vilesci/stammdaten/infoscreen_frameset.html new file mode 100755 index 000000000..4ad67df55 --- /dev/null +++ b/vilesci/stammdaten/infoscreen_frameset.html @@ -0,0 +1,20 @@ + + + + + VileSci + + + + + + + + + <body bgcolor="#FFFFFF"> + This application works only with a frames-enabled browser.<br /> + </body> + + + + \ No newline at end of file diff --git a/vilesci/stammdaten/infoscreen_uebersicht.php b/vilesci/stammdaten/infoscreen_uebersicht.php new file mode 100755 index 000000000..5cfba7cb6 --- /dev/null +++ b/vilesci/stammdaten/infoscreen_uebersicht.php @@ -0,0 +1,161 @@ + + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/infoscreen.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/datum.class.php'); + +$user = get_uid(); +$basis = new basis(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('basis/infoscreen')) + die('Sie haben keine Berechtigung fuer diese Seite'); + +$datum_obj = new datum(); + +$action = isset($_GET['action'])?$_GET['action']:'show'; +$infoscreen_id = isset($_GET['infoscreen_id'])?$_GET['infoscreen_id']:''; + +echo ' + + + Infoscreen + + + + + + + + + +

Infoscreen Übersicht

+
+ Neuen Infoscreen hinzufügen +
'; + +if($action=='save') +{ + $infoscreen_id = $_POST['infoscreen_id']; + $bezeichnung = $_POST['bezeichnung']; + $beschreibung = $_POST['beschreibung']; + $ipadresse = $_POST['ipadresse']; + + $infoscreen = new infoscreen(); + if($infoscreen_id!='') + { + $infoscreen->load($infoscreen_id); + $infoscreen->new = false; + } + else + $infoscreen->new = true; + + $infoscreen->bezeichnung = $bezeichnung; + $infoscreen->beschreibung = $beschreibung; + $infoscreen->ipadresse = $ipadresse; + + if(!$infoscreen->save()) + echo '',$basis->convert_html_chars($infoscreen->errormsg),''; + else + echo 'Daten erfolgreich gespeichert'; +} + +if($action=='new' || $action=='update') +{ + $infoscreen = new infoscreen(); + if($action=='new') + { + echo '

Neu

'; + } + else + { + echo '

Bearbeiten von ID ',$basis->convert_html_chars($infoscreen_id),'

'; + if(!$infoscreen->load($infoscreen_id)) + die('Fehler: '.$infoscreen->errormsg); + } + echo ' +
+ + + + + + + + + + + + + + + + + + +
Bezeichnung
Beschreibung
IP Adresse
+
'; +} +$infoscreen = new infoscreen(); + +if(!$infoscreen->getAll()) + die($infoscreen->errormsg); + +echo ' + + + + + + + + + + '; + +foreach($infoscreen->result as $row) +{ + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; +} +echo ' +
IDBezeichnungBeschreibungIPAktion
',$basis->convert_html_chars($row->infoscreen_id),'',$basis->convert_html_chars($row->bezeichnung),'',$basis->convert_html_chars($row->beschreibung),'',$basis->convert_html_chars($row->ipadresse),'detailsbearbeiten
+ +'; +?> \ No newline at end of file