mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
Testtool
- hinzufügen von Vorschlägen nun möglich
This commit is contained in:
@@ -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';
|
||||
|
||||
|
||||
+145
-12
@@ -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;
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
@@ -106,19 +113,19 @@ if(isset($_POST['submitbild']))
|
||||
$frage->bild = $content;
|
||||
$frage->new = false;
|
||||
if($frage->save())
|
||||
echo "Bild gespeichert";
|
||||
echo "<b>Bild gespeichert</b><br>";
|
||||
else
|
||||
echo $frage->errormsg;
|
||||
echo '<b>'.$frage->errormsg.'</b><br>';
|
||||
}
|
||||
else
|
||||
echo $frage->errormsg;
|
||||
echo '<b>'.$frage->errormsg.'</b><br>';
|
||||
}
|
||||
else
|
||||
echo "<br>File ist kein gueltiges Bild<br>";
|
||||
echo "<b>File ist kein gueltiges Bild</b><br>";
|
||||
}
|
||||
}
|
||||
|
||||
//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 "<b>Daten gespeichert</b><br>";
|
||||
}
|
||||
else
|
||||
echo $frage->errormsg;
|
||||
echo '<b>'.$frage->errormsg.'</b><br>';
|
||||
}
|
||||
else
|
||||
echo $frage->errormsg;
|
||||
echo '<b>'.$frage->errormsg.'</b><br>';
|
||||
}
|
||||
|
||||
//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 "<b>Datei ist kein Bild!</b><br>";
|
||||
}
|
||||
|
||||
$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 '<b>Fehler beim Laden des Datensatzes</b><br>';
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
$vorschlag->new = true;
|
||||
if($_POST['nummer']=='' || !is_numeric($_POST['nummer']))
|
||||
{
|
||||
$error = true;
|
||||
echo '<b>Nummer ist ungueltig</b><br>';
|
||||
}
|
||||
|
||||
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 "<b>Vorschlag gespeichert</b><br>";
|
||||
else
|
||||
{
|
||||
$save_vorschlag_error=true;
|
||||
echo '<b>'.$vorschlag->errormsg.'</b><br>';
|
||||
}
|
||||
}
|
||||
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 '<b>'.$vs->errormsg.'</b><br>';
|
||||
$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 "<table><tr><td>";
|
||||
//Fragen
|
||||
echo "<table>";
|
||||
echo "<tr>";
|
||||
//Upload Feld fuer Bild
|
||||
@@ -215,16 +297,67 @@ if($frage->frage_id!='')
|
||||
echo "<form method=POST action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_id=$gruppe_id&frage_id=$frage->frage_id'>";
|
||||
echo "<table>";
|
||||
//Bei Aenderungen im Textfeld werden diese sofort in der Vorschau angezeigt
|
||||
echo "<tr><td colspan=2><textarea name='text' id='text' cols=50 rows=8 oninput='preview()'>$frage->text</textarea></td></tr>";
|
||||
echo "<tr><td colspan=2><textarea name='text' id='text' cols=30 rows=8 oninput='preview()'>$frage->text</textarea></td></tr>";
|
||||
echo "<tr><td>Demo <input type='checkbox' name='demo' ".($frage->demo?'checked':'').">
|
||||
Lösung <input type='text' name='loesung' value='$frage->loesung' size=1 /></td>
|
||||
<td align='right'><input type='submit' value='Speichern' name='submitdata' /></td>";
|
||||
echo "</tr></table>";
|
||||
echo "</form>";
|
||||
echo "</td>";
|
||||
echo "</tr></table>";
|
||||
//Vorschau fuer das Text-Feld
|
||||
echo "Vorschau:<br><div id='vorschau' style='border: 1px solid black'>$frage->text</div>";
|
||||
echo "<tr><td colspan=2>Vorschau:<br><div id='vorschau' style='border: 1px solid black'>$frage->text</div></td></tr>";
|
||||
echo "</table>";
|
||||
echo '</td><td style="border-left: 1px solid black" valign="top">';
|
||||
|
||||
$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 '<b>Vorschlag</b><br><br>';
|
||||
echo "<form method=POST ENCTYPE='multipart/form-data' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_id=$gruppe_id&frage_id=$frage->frage_id'>";
|
||||
echo "<input type='hidden' name='vorschlag_id' value='$vorschlag->vorschlag_id'>";
|
||||
echo '<table>';
|
||||
echo '<tr>';
|
||||
echo "<td>Antwort</td><td><input type='text' size='1' name='antwort' value='$vorschlag->antwort'></td>";
|
||||
echo '</tr>';
|
||||
echo '<tr>';
|
||||
echo '<td>Text:</td><td><textarea name="text" id="text" rows=5 cols=30 oninput="preview()">'.$vorschlag->text.'</textarea></td>';
|
||||
echo '</tr><tr valign="top">';
|
||||
//Upload Feld fuer Bild
|
||||
echo "<td>Bild:</td><td><input type='file' name='bild'></td>";
|
||||
echo "</tr>";
|
||||
echo "<tr><td>Nummer:</td><td><input type='text' name='nummer' size=3 value='$vorschlag->nummer'></td></tr>";
|
||||
echo "<tr><td colspan='2' align='right'><input type='submit' name='submitvorschlag' value=Speichern ></td></tr>";
|
||||
echo "</table>";
|
||||
echo "</form>";
|
||||
|
||||
echo '</td></tr></table>';
|
||||
|
||||
$vorschlag = new vorschlag($conn);
|
||||
$vorschlag->getVorschlag($frage->frage_id);
|
||||
$i=0;
|
||||
if(count($vorschlag->result)>0)
|
||||
{
|
||||
echo '<table><tr class="liste"><th>Nummer</th><th>Antwort</th><th>Text</th><th>Bild</th><th></th><th></th></tr>';
|
||||
|
||||
foreach ($vorschlag->result as $vs)
|
||||
{
|
||||
$i++;
|
||||
echo "<tr class='liste".($i%2)."'><td>$vs->nummer</td><td>$vs->antwort</td><td>$vs->text</td><td><img src='bild.php?src=vorschlag&vorschlag_id=$vs->vorschlag_id'></td><td><a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_id=$gruppe_id&frage_id=$frage->frage_id&vorschlag_id=$vs->vorschlag_id'>edit</a></td><td><a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_id=$gruppe_id&frage_id=$frage->frage_id&vorschlag_id=$vs->vorschlag_id&type=delete' onclick=\"return confirm('Wollen Sie diesen Eintrag wirklich loeschen?')\">delete</a></td></tr>";
|
||||
}
|
||||
echo '</table>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,203 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user