- hinzufügen von Vorschlägen nun möglich
This commit is contained in:
Andreas Österreicher
2007-04-03 12:05:19 +00:00
parent 6120faf3b2
commit d3f5f2bf61
3 changed files with 352 additions and 12 deletions
+4
View File
@@ -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
View File
@@ -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>';
}
}
+203
View File
@@ -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;
}
}
}
?>