diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php index 5dfe3b437..f15c2c2d2 100644 --- a/cis/testtool/frage.php +++ b/cis/testtool/frage.php @@ -160,7 +160,7 @@ $gebiet = new gebiet($gebiet_id); if($gebiet->level_start!='') $levelgebiet=true; -else +else $levelgebiet=false; list($stunde, $minute, $sekunde) = explode(':',$gebiet->zeit); @@ -178,20 +178,20 @@ if(isset($_GET['start']) && !$gestartet) $frage = new frage(); if(!$frage->generateFragenpool($_SESSION['pruefling_id'], $gebiet_id)) die($p->t('testtool/fehlerBeimGenerierenDesFragenpools').':'.$frage->errormsg); - + //Erste Frage des Pools holen if(!$frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'])) die($p->t('testtool/esWurdeKeineFrageGefunden')); - + //Beginnzeit Speichern $prueflingfrage = new frage(); if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id)) die($p->t('testtool/fehler').':'.$prueflingfrage->errormsg); - + $prueflingfrage->begintime = date('Y-m-d H:i:s'); if(!$prueflingfrage->save_prueflingfrage(false)) die($p->t('testtool/fehlerBeimStartvorgang')); - + echo ''; } @@ -201,46 +201,46 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id'])) // vor dem Speichern der Antworten, alle Antworten zu der Frage loeschen // und die Antworten neu anlegen // Unterscheidung ob mehrere oder nur eine Antwort uebergeben wird - + if($levelgebiet && !isset($_POST['vorschlag_id'])) { echo ''.$p->t('testtool/beiDiesemGebietMuessenSieJedeFrageBeantworten').''; } else { - + $error=false; - + $db->db_query('BEGIN;'); - + // alle vorhandenen Antworten zu dieser Frage loeschen $qry = "DELETE FROM testtool.tbl_antwort WHERE antwort_id in( SELECT antwort_id FROM testtool.tbl_antwort JOIN testtool.tbl_vorschlag USING(vorschlag_id) WHERE frage_id=".$db->db_add_param($_GET['frage_id'])." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id']).")"; - + $db->db_query($qry); - - // Antwort nur Speichern wenn eine Antwort gewaehlt wurde + + // Antwort nur Speichern wenn eine Antwort gewaehlt wurde if(isset($_POST['vorschlag_id']) && $_POST['vorschlag_id']!='') { $vorschlaege = array(); //Falls nur eine einzelne Antwort kommt, diese auch in ein Array packen if(!is_array($_POST['vorschlag_id'])) $vorschlaege[0]=$_POST['vorschlag_id']; - else + else $vorschlaege = $_POST['vorschlag_id']; - + //alle Antworten Speichern - foreach ($vorschlaege as $vorschlag_id) + foreach ($vorschlaege as $vorschlag_id) { if($vorschlag_id!='') { $antwort = new antwort(); - + $antwort->new = true; $antwort->vorschlag_id = $vorschlag_id; $antwort->pruefling_id = $_SESSION['pruefling_id']; - + if(!$antwort->save()) { $errormsg = $antwort->errormsg; @@ -248,7 +248,7 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id'])) } } } - + if(!$error) { //Endzeit der Frage eintragen @@ -259,7 +259,7 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id'])) $error = true; } $prueflingfrage->endtime = date('Y-m-d H:i:s'); - + if(!$prueflingfrage->save_prueflingfrage(false)) { $errormsg = $prueflingfrage->errormsg; @@ -267,32 +267,32 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id'])) } } } - + if($error) { $db->db_query('ROLLBACK;'); die($p->t('testtool/fehler').':'.$errormsg); } - else + else { $db->db_query('COMMIT;'); } - + $frage = new frage(); - + if($levelgebiet) { //bei gelevelten Fragen die naechste Frage holen $frage->generateFragenpool($_SESSION['pruefling_id'], $gebiet_id); } - + $frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id); } } //Schauen ob dieses Gebiet schon gestartet wurde $qry = "SELECT begintime - FROM + FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) WHERE pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." ORDER BY begintime ASC LIMIT 1"; @@ -321,7 +321,7 @@ else $info=''; //Name und Studiengang anzeigen -$qry_pruefling = "SELECT vorname, nachname, stg_bez, tbl_studiengangstyp.bezeichnung FROM testtool.vw_pruefling +$qry_pruefling = "SELECT vorname, nachname, stg_bez, tbl_studiengangstyp.bezeichnung FROM testtool.vw_pruefling JOIN public.tbl_studiengang USING (studiengang_kz) JOIN public.tbl_studiengangstyp USING (typ) WHERE pruefling_id=".$db->db_add_param($_SESSION['pruefling_id']); @@ -342,7 +342,7 @@ if($levelgebiet) $qry = "SELECT count(*) as anzahl FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) WHERE pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER); - + if($result_aktuell = $db->db_query($qry)) { if($row_aktuell = $db->db_fetch_object($result_aktuell)) @@ -402,8 +402,8 @@ if($demo) else { //Wenn es sich um eine Testfrage handelt, dann wird die verbleibende Zeit angezeigt - $qry = "SELECT '$gebiet->zeit'-(now()-min(begintime)) as time - FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) + $qry = "SELECT '$gebiet->zeit'-(now()-min(begintime)) as time + FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) WHERE gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER); $result = $db->db_query($qry); $row = $db->db_fetch_object($result); @@ -419,7 +419,7 @@ else echo $p->t('testtool/bearbeitungszeit').': '; echo ""; - + if($zeit<0) die('
'.$p->t('testtool/dieZeitIstAbgelaufen').'
'); } @@ -439,17 +439,17 @@ else { // wenn keine Frage uebergeben wurde und die maximale Fragenanzahl erreicht wurde // dann ist das Gebiet fertig - $qry = "SELECT count(*) as anzahl FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) + $qry = "SELECT count(*) as anzahl FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) WHERE gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND tbl_pruefling_frage.endtime is not null"; $result = $db->db_query($qry); $row = $db->db_fetch_object($result); - + if($row->anzahl>=$gebiet->maxfragen) { die(""); } } - + $frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], null, $demo, $levelgebiet); $frage->load($frage_id); } @@ -471,7 +471,7 @@ if($frage->frage_id!='') $prueflingfrage = new frage(); if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id)) die($p->t('testtool/dieseFrageIstNichtFuerSieBestimmt')); - + if($prueflingfrage->begintime=='') { $prueflingfrage->begintime = date('Y-m-d H:i:s'); @@ -484,8 +484,8 @@ if($frage->frage_id!='') //Kopfzeile mit Weiter Button und Sprung direkt zu einer Frage if(!$demo && !$levelgebiet) { - $qry = "SELECT tbl_pruefling_frage.nummer, tbl_pruefling_frage.frage_id - FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) + $qry = "SELECT tbl_pruefling_frage.nummer, tbl_pruefling_frage.frage_id + FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) WHERE gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND demo=false ORDER BY nummer"; echo " @@ -515,9 +515,9 @@ if($frage->frage_id!='') { if($demo) $value=''; - else + else $value=$p->t('testtool/blaettern').' >>'; - + echo " $value"; } else @@ -543,8 +543,8 @@ if($frage->frage_id!='') { echo '
-


-
+


+ '; } $timestamp = time(); @@ -552,13 +552,13 @@ if($frage->frage_id!='') //Sound einbinden if($frage->audio!='') { - echo ' + echo '
+
'; } @@ -566,10 +566,10 @@ if($frage->frage_id!='') $display_well = $frage->nummer == 0 ? '' : 'well'; // don't style frage 0 because this is always the introduction to gebiet echo '
-
+
'. $frage->text. '
-
-
+
+ '; //Vorschlaege laden @@ -586,22 +586,22 @@ if($frage->frage_id!='') $beantwortet = false; $cnt = 0; // counter für foreach-Schleife $len = count($vs->result); - + //Antworten laden falls bereits vorhanden $antwort = new antwort(); $antwort->getAntwort($_SESSION['pruefling_id'],$frage->frage_id); - + //Vorschlaege anzeigen foreach ($vs->result as $vorschlag) { echo ""; - + //Bei multipleresponse checkboxen anzeigen ansonsten radiobuttons if($gebiet->multipleresponse) $type='checkbox'; - else + else $type='radio'; - + //Antworten markieren wenn die Frage bereits beantwortet wurde $checked=false; reset($antwort->result); @@ -613,9 +613,9 @@ if($frage->frage_id!='') $beantwortet = true; } } - + echo ''; - + echo '
'; if($vorschlag->bild!='') echo "
"; @@ -641,7 +641,7 @@ if($frage->frage_id!='') $cnt++; } - //wenn singleresponse und keine Levels und vorschlaege vorhanden sind, dann gibt es auch die + //wenn singleresponse und keine Levels und vorschlaege vorhanden sind, dann gibt es auch die //moeglichkeit fuer keine Antwort if(!$gebiet->multipleresponse && !$levelgebiet && count($vs->result)>0) { @@ -668,8 +668,8 @@ if($frage->frage_id!='') //Naechste Frage holen und Weiter-Button anzeigen //$frage = new frage(); //$nextfrage = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); - - $qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage + + $qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage WHERE tbl_frage.gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND demo "; if($row = $db->db_fetch_object($db->db_query($qry))) @@ -682,10 +682,11 @@ if($frage->frage_id!='') } } } - echo ' + echo ' '; echo ""; + echo ''; echo '




'; } else @@ -694,7 +695,5 @@ else echo "

".$p->t("testtool/startDrueckenUmZuBeginnen")."
"; } ?> - -