, * Andreas Oesterreicher and * Rudolf Hangl . */ header("Content-type: application/xhtml+xml"); // Formular zum beantworten der Fragen 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/antwort.class.php'); $PHP_SELF=$_SERVER["PHP_SELF"]; session_start(); //testumgebung //$_SESSION['pruefling_id']=1; //Connection Herstellen if(!$conn = pg_pconnect(CONN_STRING)) die('Fehler beim oeffnen der Datenbankverbindung'); if(isset($_GET['gebiet_id'])) $gebiet_id = $_GET['gebiet_id']; else die('Gebiet muss uebergeben werden'); if(isset($_GET['frage_id'])) $frage_id = $_GET['frage_id']; else $frage_id = ''; $MAX_VORSCHLAEGE_PRO_ZEILE=4; ?> gruppe_kurzbz; } else die('Pruefling wurde nicht gefunden'); } else die('Pruefling wurde nicht gefunden'); //Start des Pruefungsvorganges if(isset($_GET['start'])) { //Erste Frage holen und Begintime eintragen $qry = "SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND gruppe_kurzbz='$gruppe' AND demo=false AND nummer>0 ORDER BY nummer ASC LIMIT 1"; $result = pg_query($conn, $qry); $row = pg_fetch_object($result); $antwort = new antwort($conn); $antwort->frage_id = $row->frage_id; $antwort->pruefling_id = $_SESSION['pruefling_id']; $antwort->begintime = date('Y-m-d H:i:s'); $antwort->new = true; if(!$antwort->save()) die('Fehler beim Startvorgang'); } //Speichern einer Antwort if(isset($_POST['submitantwort']) && isset($_GET['frage_id'])) { $antwort = new antwort($conn); if($_POST['antwort_id']!='') { if(!$antwort->load($_POST['antwort_id'])) die('Antwort konnte nicht geladen werden'); else { $antwort->new = false; $antwort->antwort_id = $_POST['antwort_id']; } } else $antwort->new = true; $antwort->frage_id = $_GET['frage_id']; $antwort->pruefling_id = $_SESSION['pruefling_id']; $antwort->antwort = trim(strtoupper($_POST['antwort'])); $antwort->endtime = date('Y-m-d H:i:s'); if(!$antwort->save()) die('Fehler beim Speichern'); else { $frage = new frage($conn); $frage_id = $frage->getNextFrage($gebiet_id, $gruppe, $frage_id); } } //Schauen ob dieses Gebiet schon gestartet wurde $qry = "SELECT count(*) as anzahl FROM testtool.tbl_antwort JOIN testtool.tbl_frage USING(frage_id) WHERE pruefling_id='".addslashes($_SESSION['pruefling_id'])."' AND gebiet_id='".addslashes($gebiet_id)."'"; if($result = pg_query($conn, $qry)) { if($row = pg_fetch_object($result)) { if($row->anzahl>0) { //Hat bereits Fragen beantwortet -> Frage anzeigen $demo=false; } else { //Demo anzeigen $demo=true; } } else die('error'); } else die('error'); $info=''; $qry_pruefling = "SELECT vorname, nachname, stg_bez, gruppe_kurzbz FROM testtool.vw_pruefling WHERE pruefling_id='".$_SESSION['pruefling_id']."'"; if($result_pruefling = pg_query($conn, $qry_pruefling)) { if($row_pruefling = pg_fetch_object($result_pruefling)) { $info = "$row_pruefling->vorname $row_pruefling->nachname, $row_pruefling->stg_bez, Gruppe $row_pruefling->gruppe_kurzbz"; } } //Zeit des Gebietes holen echo ''; echo '
'.$info.''; $qry = "SELECT zeit FROM testtool.tbl_gebiet WHERE gebiet_id='".addslashes($gebiet_id)."'"; $result = pg_query($conn, $qry); if(!$row = pg_fetch_object($result)) die('Gebiet wurde nicht gefunden'); list($stunde, $minute, $sekunde) = split(':',$row->zeit); if($demo) { //Wenn es sich um ein Demobeispiel handelt, dann wird die Maximale Gesamtzeit angezeigt echo $minute.':'.$sekunde.' Minuten '; echo ""; } else { //Wenn es sich um eine Testfrage handelt, dann wird die verbleibende Zeit angezeigt $qry = "SELECT '$row->zeit'-(now()-min(begintime)) as time FROM testtool.tbl_antwort JOIN testtool.tbl_frage USING(frage_id) WHERE gebiet_id='".addslashes($gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."'"; $result = pg_query($conn, $qry); $row = pg_fetch_object($result); //Zeit in Sekunden umrechnen list($stunde, $minute, $sekunde) = split(':',$row->time); $zeit = (int) ($stunde*60*60+$minute*60+$sekunde); //Wenn die Zeit negativ ist und die Stunde 0 ist, //dann muss die Zeit mit -1 multipliziert werden if(substr($stunde,0,1)=='-' && $stunde==0) { $zeit = $zeit*-1; } echo ' Minuten'; echo ""; } echo '
'; //Laden der Frage $frage = new frage($conn); if($frage_id!='') //Frage wurde uebergeben { $frage->load($frage_id); } else { if($demo) //Demofrage wird angezeigt { $qry = "SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND gruppe_kurzbz='$gruppe' AND demo=true ORDER BY nummer DESC LIMIT 1"; $result = pg_query($conn, $qry); if($row = pg_fetch_object($result)) $frage->load($row->frage_id); } else //Testfrage wird angezeigt { $qry ="SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND gruppe_kurzbz='$gruppe' AND nummer>0 AND demo=false ORDER BY nummer ASC LIMIT 1"; $result = pg_query($conn, $qry); if($row = pg_fetch_object($result)) $frage->load($row->frage_id); } } //Anzeigen der Frage if($frage->frage_id!='') { $frage_id = $frage->frage_id; if(!$demo) { //Nachschauen ob diese Frage bereits angesehen wurde $antwort = new antwort($conn); if(!$antwort->getAntwort($_SESSION['pruefling_id'],$frage_id)) { //wenn diese noch nicht angesehen wurde, dann wird die begintime gesetzt $antwort = new antwort($conn); $antwort->begintime = date('Y-m-d H:i:s'); $antwort->pruefling_id = $_SESSION['pruefling_id']; $antwort->frage_id = $frage_id; $antwort->new = true; if(!$antwort->save()) echo 'Fehler beim Speichern der Erstansicht'; } } echo '

'; //Bild und Text der Frage anzeigen if($frage->bild!='') echo "

\n"; echo "$frage->text

\n"; //Vorschlaege laden $vs = new vorschlag($conn); $vs->getVorschlag($frage->frage_id); echo ''; echo ''; $anzahl = 1; //Vorschlaege anzeigen foreach ($vs->result as $vorschlag) { echo "\n"; $anzahl++; if($anzahl>$MAX_VORSCHLAEGE_PRO_ZEILE) { echo ''; $anzahl=1; } } echo '
"; echo "$vorschlag->antwort
"; if($vorschlag->bild!='') echo "
"; if($vorschlag->text!='') echo $vorschlag->text.'
'; echo "
'; //Antwort laden falls bereits vorhanden $antwort = new antwort($conn); $antwort->getAntwort($_SESSION['pruefling_id'],$frage->frage_id); if(!$demo) { echo "
frage_id\" method=\"POST\">"; echo "antwort_id\" />"; echo "Antwort: antwort))."\" /> "; echo "
"; } echo '


'; //Fusszeile mit Weiter Button und Sprung direkt zu einer Frage if(!$demo) { $qry = "SELECT nummer, frage_id FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND gruppe_kurzbz='$gruppe' AND demo=false ORDER BY nummer"; //Nummern der Fragen Anzeigen $result = pg_query($conn, $qry); while($row = pg_fetch_object($result)) { if($row->frage_id==$frage_id) echo " $row->nummer -"; else echo " $row->nummer -"; } } //Naechste Frage holen und Weiter-Button anzeigen $frage = new frage($conn); $nextfrage = $frage->getNextFrage($gebiet_id, $gruppe, $frage_id, $demo); if($nextfrage) { echo " Weiter >>"; } else { //Wenns der letzte Eintrag ist, wieder zum ersten springen echo " Weiter >>"; } echo '
'; } else { //Wenn kein Demo vorhanden ist echo "


Start drücken um zu beginnen
"; } ?>