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 '
+ ';
+
+ 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 '
+ ';
+ }
+
+ if(!$infoscreen->getScreenContent($infoscreen_id, false))
+ die('Fehler:'.$infoscreen->errormsg);
+ echo '
+
+
+ | ID |
+ InfoscreenID |
+ ContentID |
+ Gültig von |
+ Gültig bis |
+ Aktion |
+
+
+ ';
+
+ foreach($infoscreen->result as $row)
+ {
+ echo '';
+ echo '| ',$db->convert_html_chars($row->infoscreen_content_id),' | ';
+ echo '',$db->convert_html_chars($row->infoscreen_id),' | ';
+ echo '',$db->convert_html_chars($row->content_id),' | ';
+ echo '',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i:s')),' | ';
+ echo '',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i:s')),' | ';
+ echo 'bearbeiten';
+ echo ' | entfernen';
+ echo ' |
';
+ }
+ 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
+
+
+
+
+
+
+
\ 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
+';
+
+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 '
+ ';
+}
+$infoscreen = new infoscreen();
+
+if(!$infoscreen->getAll())
+ die($infoscreen->errormsg);
+
+echo '
+
+
+ | ID |
+ Bezeichnung |
+ Beschreibung |
+ IP |
+ Aktion |
+
+
+ ';
+
+foreach($infoscreen->result as $row)
+{
+ echo '';
+ echo '| ',$basis->convert_html_chars($row->infoscreen_id),' | ';
+ echo '',$basis->convert_html_chars($row->bezeichnung),' | ';
+ echo '',$basis->convert_html_chars($row->beschreibung),' | ';
+ echo '',$basis->convert_html_chars($row->ipadresse),' | ';
+ echo 'details | ';
+ echo 'bearbeiten | ';
+ echo '
';
+}
+echo '
+
+
+';
+?>
\ No newline at end of file