diff --git a/cis/testtool/admin/bild.php b/cis/testtool/admin/bild.php
index 500529d95..5be9eda48 100644
--- a/cis/testtool/admin/bild.php
+++ b/cis/testtool/admin/bild.php
@@ -43,6 +43,10 @@ if(isset($_GET['src']) && $_GET['src']=='frage' && isset($_GET['frage_id']))
{
$qry = "SELECT bild FROM testtool.tbl_frage WHERE frage_id='".addslashes($_GET['frage_id'])."'";
}
+elseif(isset($_GET['src']) && $_GET['src']=='vorschlag' && isset($_GET['vorschlag_id']))
+{
+ $qry = "SELECT bild FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($_GET['vorschlag_id'])."'";
+}
else
echo 'Unkown type';
diff --git a/cis/testtool/admin/index.php b/cis/testtool/admin/index.php
index 600365f46..4db182beb 100644
--- a/cis/testtool/admin/index.php
+++ b/cis/testtool/admin/index.php
@@ -23,6 +23,7 @@
require_once('../../config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/frage.class.php');
+require_once('../../../include/vorschlag.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
//wandelt einen String in HEX-Werte um
@@ -63,7 +64,13 @@ if(isset($_GET['frage_id']))
$frage_id = $_GET['frage_id'];
else
$frage_id = '';
-
+
+if(isset($_GET['vorschlag_id']))
+ $vorschlag_id = $_GET['vorschlag_id'];
+else
+ $vorschlag_id = '';
+
+$save_vorschlag_error=false;
?>
@@ -106,19 +113,19 @@ if(isset($_POST['submitbild']))
$frage->bild = $content;
$frage->new = false;
if($frage->save())
- echo "Bild gespeichert";
+ echo "Bild gespeichert
";
else
- echo $frage->errormsg;
+ echo ''.$frage->errormsg.'
';
}
else
- echo $frage->errormsg;
+ echo ''.$frage->errormsg.'
';
}
else
- echo "
File ist kein gueltiges Bild
";
+ echo "File ist kein gueltiges Bild
";
}
}
-//Speichern der Daten
+//Speichern der Frage-Daten
if(isset($_POST['submitdata']))
{
$frage = new frage($conn);
@@ -130,15 +137,88 @@ if(isset($_POST['submitdata']))
$frage->new = false;
if($frage->save())
{
- echo "Daten gespeichert";
+ echo "Daten gespeichert
";
}
else
- echo $frage->errormsg;
+ echo ''.$frage->errormsg.'
';
}
else
- echo $frage->errormsg;
+ echo ''.$frage->errormsg.'
';
}
+//Speichern eines Vorschlages
+if(isset($_POST['submitvorschlag']))
+{
+ $content='';
+ if(isset($_FILES['bild']['tmp_name']) && is_uploaded_file($_FILES['bild']['tmp_name']))
+ {
+ //Wenn File ein Bild ist
+ if (($_FILES['bild']['type']=="image/gif") || ($_FILES['bild']['type']=="image/jpeg") || ($_FILES['bild']['type']=="image/png"))
+ {
+ $filename = $_FILES['bild']['tmp_name'];
+ //File oeffnen
+ $fp = fopen($filename,'r');
+ //auslesen
+ $content = fread($fp, filesize($filename));
+ fclose($fp);
+ //in HEX-Werte umrechnen
+ $content = strhex($content);
+ }
+ else
+ echo "Datei ist kein Bild!
";
+ }
+
+ $vorschlag = new vorschlag($conn);
+ $error=false;
+
+ if($_POST['vorschlag_id']!='')
+ {
+ if($vorschlag->load($_POST['vorschlag_id']))
+ {
+ $vorschlag->new = false;
+ $vorschlag->vorschlag_id = $_POST['vorschlag_id'];
+ }
+ else
+ {
+ echo 'Fehler beim Laden des Datensatzes
';
+ $error = true;
+ }
+ }
+ else
+ $vorschlag->new = true;
+ if($_POST['nummer']=='' || !is_numeric($_POST['nummer']))
+ {
+ $error = true;
+ echo 'Nummer ist ungueltig
';
+ }
+
+ if(!$error)
+ {
+ $vorschlag->bild = $content;
+ $vorschlag->frage_id = $_GET['frage_id'];
+ $vorschlag->nummer = $_POST['nummer'];
+ $vorschlag->antwort = strtoupper($_POST['antwort']);
+ $vorschlag->text = $_POST['text'];
+
+ if($vorschlag->save())
+ echo "Vorschlag gespeichert
";
+ else
+ {
+ $save_vorschlag_error=true;
+ echo ''.$vorschlag->errormsg.'
';
+ }
+ }
+ else
+ $save_vorschlag_error=true;
+}
+//Vorschlag loeschen
+if(isset($_GET['type']) && $_GET['type']=='delete' && isset($_GET['vorschlag_id']))
+{
+ $vs = new vorschlag($conn);
+ if(!$vs->delete($_GET['vorschlag_id']))
+ echo ''.$vs->errormsg.'
';
+ $vorschlag_id='';
+}
//Liste der Gebiete
$qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung";
$result = pg_query($conn, $qry);
@@ -192,6 +272,8 @@ $frage = new frage($conn);
$frage->getFrage($gebiet_id, $nummer, $gruppe_id);
if($frage->frage_id!='')
{
+ echo "
";
+ //Fragen
echo "";
echo "";
//Upload Feld fuer Bild
@@ -215,16 +297,67 @@ if($frage->frage_id!='')
echo "";
echo "";
- echo " ";
//Vorschau fuer das Text-Feld
- echo "Vorschau:
$frage->text ";
+ echo " |
Vorschau:
$frage->text |
";
+ echo "
";
+ echo '';
+
+ $vorschlag = new vorschlag($conn);
+
+ if($vorschlag_id!='')
+ if(!$vorschlag->load($vorschlag_id))
+ die($vorschlag->errormsg);
+ if($save_vorschlag_error)
+ {
+ $vorschlag->vorschlag_id = (isset($_POST['vorschlag_id'])?$_POST['vorschlag_id']:'');
+ $vorschlag->frage_id = $_GET['frage_id'];
+ $vorschlag->nummer = $_POST['nummer'];
+ $vorschlag->antwort = $_POST['antwort'];
+ $vorschlag->text = $_POST['text'];
+ $vorschlag->bild = '';
+ }
+ //Vorschlag
+ echo 'Vorschlag
';
+ echo "";
+
+ echo ' | ';
+
+ $vorschlag = new vorschlag($conn);
+ $vorschlag->getVorschlag($frage->frage_id);
+ $i=0;
+ if(count($vorschlag->result)>0)
+ {
+ echo '| Nummer | Antwort | Text | Bild | | |
';
+
+ foreach ($vorschlag->result as $vs)
+ {
+ $i++;
+ echo "| $vs->nummer | $vs->antwort | $vs->text |  | edit | delete |
";
+ }
+ echo '
';
+ }
}
diff --git a/include/vorschlag.class.php b/include/vorschlag.class.php
new file mode 100644
index 000000000..8cc9d4852
--- /dev/null
+++ b/include/vorschlag.class.php
@@ -0,0 +1,203 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+class vorschlag
+{
+ //Tabellenspalten
+ var $vorschlag_id;
+ var $frage_id;
+ var $nummer;
+ var $antwort;
+ var $text;
+ var $bild;
+
+ // ErgebnisArray
+ var $result=array();
+ var $num_rows=0;
+ var $errormsg;
+ var $new;
+
+ // *************************************************************************
+ // * Konstruktor - Uebergibt die Connection und laedt optional einen vorschlag
+ // * @param $conn Datenbank-Connection
+ // * $frage_id Frage die geladen werden soll (default=null)
+ // * $unicode Gibt an ob die Daten mit UNICODE Codierung
+ // * oder LATIN9 Codierung verarbeitet werden sollen
+ // *************************************************************************
+ function vorschlag($conn, $vorschlag_id=null, $unicode=false)
+ {
+ $this->conn = $conn;
+
+ if($unicode)
+ $qry = "SET CLIENT_ENCODING TO 'UNICODE';";
+ else
+ $qry = "SET CLIENT_ENCODING TO 'LATIN9';";
+
+ if(!pg_query($conn,$qry))
+ {
+ $this->errormsg = 'Encoding konnte nicht gesetzt werden';
+ return false;
+ }
+
+ if($vorschlag_id != null)
+ $this->load($vorschlag_id);
+ }
+
+ // ***********************************************************
+ // * Laedt Vorschlag mit der uebergebenen ID
+ // * @param $vorschlag_id ID des Vorschlages der geladen werden soll
+ // ***********************************************************
+ function load($vorschlag_id)
+ {
+ $qry = "SELECT * FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'";
+
+ if($result = pg_query($this->conn, $qry))
+ {
+ if($row = pg_fetch_object($result))
+ {
+ $this->vorschlag_id = $row->vorschlag_id;
+ $this->frage_id = $row->frage_id;
+ $this->antwort = $row->antwort;
+ $this->nummer = $row->nummer;
+ $this->text = $row->text;
+ $this->bild = $row->bild;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = "Kein Eintrag gefunden fuer $vorschlag_id";
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler beim laden: $qry";
+ return false;
+ }
+ }
+
+ // ************************************************
+ // * wenn $var '' ist wird NULL zurueckgegeben
+ // * wenn $var !='' ist werden Datenbankkritische
+ // * Zeichen mit Backslash versehen und das Ergbnis
+ // * unter Hochkomma gesetzt.
+ // ************************************************
+ function addslashes($var)
+ {
+ return ($var!=''?"'".addslashes($var)."'":'null');
+ }
+
+ // *******************************************
+ // * Prueft die Variablen vor dem Speichern
+ // * auf Gueltigkeit.
+ // * @return true wenn ok, false im Fehlerfall
+ // *******************************************
+ function validate()
+ {
+ return true;
+ }
+
+ // ******************************************************************
+ // * Speichert die Benutzerdaten in die Datenbank
+ // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
+ // * ansonsten der Datensatz mit $uid upgedated
+ // * @return true wenn erfolgreich, false im Fehlerfall
+ // ******************************************************************
+ function save()
+ {
+ //Variablen auf Gueltigkeit pruefen
+ if(!$this->validate())
+ return false;
+
+ if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
+ {
+ $qry = 'INSERT INTO testtool.tbl_vorschlag (frage_id, nummer, antwort, text, bild) VALUES('.
+ "'".addslashes($this->frage_id)."',".
+ $this->addslashes($this->nummer).",".
+ $this->addslashes($this->antwort).",".
+ $this->addslashes($this->text).",".
+ $this->addslashes($this->bild).");";
+ }
+ else
+ {
+ $qry = 'UPDATE testtool.tbl_vorschlag SET'.
+ ' frage_id='.$this->addslashes($this->frage_id).','.
+ ' nummer='.$this->addslashes($this->nummer).','.
+ ' antwort='.$this->addslashes($this->antwort).','.
+ ' text='.$this->addslashes($this->text);
+ if($this->bild!='')
+ $qry.=' , bild='.$this->addslashes($this->bild);
+ $qry.=" WHERE vorschlag_id='".addslashes($this->vorschlag_id)."';";
+ }
+
+ if(pg_query($this->conn,$qry))
+ {
+ //Log schreiben
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Frage:'.$qry;
+ return false;
+ }
+ }
+
+ function getVorschlag($frage_id)
+ {
+ $qry = "SELECT * FROM testtool.tbl_vorschlag WHERE frage_id='".addslashes($frage_id)."' ORDER BY nummer";
+
+ if($result = pg_query($this->conn, $qry))
+ {
+ while($row = pg_fetch_object($result))
+ {
+ $vs = new vorschlag($this->conn);
+ $vs->vorschlag_id = $row->vorschlag_id;
+ $vs->frage_id = $row->frage_id;
+ $vs->nummer = $row->nummer;
+ $vs->antwort = $row->antwort;
+ $vs->text = $row->text;
+ $vs->bild = $row->bild;
+
+ $this->result[] = $vs;
+
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim laden der Daten';
+ return false;
+ }
+ }
+ function delete($vorschlag_id)
+ {
+ $qry = "DELETE FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'";
+ if(pg_query($this->conn, $qry))
+ return true;
+ else
+ {
+ $this->errormsg = 'Fehler beim loeschen';
+ return false;
+ }
+ }
+}
+?>