diff --git a/cis/testtool/admin/.htaccess b/cis/testtool/admin/.htaccess index d2569a69d..8f33404c4 100644 --- a/cis/testtool/admin/.htaccess +++ b/cis/testtool/admin/.htaccess @@ -12,4 +12,6 @@ require ldap-group cn=hadesadm,ou=Group,dc=technikum-wien,dc=at Require user pam require user oesi require user ruhan -Require user tw01e061 \ No newline at end of file +Require user tw01e061 +Require user if10b066 +require ldap-user if10b066 \ No newline at end of file diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php index e1d2036e3..e0bfda178 100644 --- a/cis/testtool/frage.php +++ b/cis/testtool/frage.php @@ -17,8 +17,9 @@ * * Authors: Christian Paminger , * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Simane-Sequens + * Rudolf Hangl , + * Gerald Simane-Sequens , + * Manfred Kindl */ /** * Formular zum Beantworten der Fragen @@ -27,17 +28,63 @@ header("Content-type: application/xhtml+xml"); require_once('../../config/cis.config.inc.php'); +require_once('../../config/global.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'); require_once('../../include/gebiet.class.php'); +require_once('../../include/sprache.class.php'); +require_once '../../include/phrasen.class.php'; if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); $PHP_SELF=$_SERVER["PHP_SELF"]; +function getSpracheUser() +{ + if(isset($_SESSION['sprache_user'])) + { + $sprache_user=$_SESSION['sprache_user']; + } + else + { + if(isset($_COOKIE['sprache_user'])) + { + $sprache_user=$_COOKIE['sprache_user']; + } + else + { + $sprache_user=DEFAULT_LANGUAGE; + } + setSpracheUser($sprache_user); + } + return $sprache_user; +} + +function setSpracheUser($sprache) +{ + $_SESSION['sprache_user']=$sprache; + setcookie('sprache_user',$sprache,time()+60*60*24*30,'/'); +} + +if(isset($_GET['sprache_user'])) +{ + $sprache_user = new sprache(); + if($sprache_user->load($_GET['sprache_user'])) + { + setSpracheUser($_GET['sprache_user']); + } + else + setSpracheUser(DEFAULT_LANGUAGE); +} + +$sprache_user = getSpracheUser(); +$p = new phrasen($sprache_user); + +$sprache = getSprache(); + session_start(); if(isset($_GET['gebiet_id'])) @@ -52,8 +99,11 @@ else //$MAX_VORSCHLAEGE_PRO_ZEILE=4; ?> + + @@ -106,6 +156,23 @@ else } } + function GebietStarten(bezeichnung,stunde,minute,sekunde,gebiet_id) + { + var check = confirm(t('testtool/okKlickenUmZuStarten')."'"?>+' '+stunde+'h '+minute+'m '+sekunde+'s'); + if (check == true) { + document.location.href = 'frage.php?gebiet_id='+gebiet_id+'&start=true'; + } + else { + return false; + } + } + + function letzteFrage() + { + alert(t("testtool/alleFragenBeantwortet")."'"?>); + return true; + } + //]]> @@ -113,7 +180,7 @@ else t('testtool/bitteZuerstAnmelden')); $gebiet = new gebiet($gebiet_id); @@ -130,20 +197,20 @@ if(isset($_GET['start'])) //Fragenpool generieren $frage = new frage(); if(!$frage->generateFragenpool($_SESSION['pruefling_id'], $gebiet_id)) - die('Fehler beim Generieren des Fragenpools:'.$frage->errormsg); + die($p->t('testtool/fehlerBeimGenerierenDesFragenpools').':'.$frage->errormsg); //Erste Frage des Pools holen if(!$frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'])) - die('Es wurde keine Frage gefunden'); + die($p->t('testtool/esWurdeKeineFrageGefunden')); //Beginnzeit Speichern $prueflingfrage = new frage(); if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id)) - die('Fehler:'.$prueflingfrage->errormsg); + die($p->t('testtool/fehler').':'.$prueflingfrage->errormsg); $prueflingfrage->begintime = date('Y-m-d H:i:s'); if(!$prueflingfrage->save_prueflingfrage(false)) - die('Fehler beim Startvorgang'); + die($p->t('testtool/fehlerBeimStartvorgang')); echo ''; } @@ -157,7 +224,7 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id'])) if($levelgebiet && !isset($_POST['vorschlag_id'])) { - echo 'Bei diesem Gebiet müssen Sie jede Frage beantworten!'; + echo ''.$p->t('testtool/beiDiesemGebietMuessenSieJedeFrageBeantworten').''; } else { @@ -224,7 +291,7 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id'])) if($error) { $db->db_query('ROLLBACK;'); - die('Fehler:'.$errormsg); + die($p->t('testtool/fehler').':'.$errormsg); } else { @@ -274,14 +341,16 @@ else $info=''; //Name und Studiengang anzeigen -$qry_pruefling = "SELECT vorname, nachname, stg_bez 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='".addslashes($_SESSION['pruefling_id'])."'"; if($result_pruefling = $db->db_query($qry_pruefling)) { if($row_pruefling = $db->db_fetch_object($result_pruefling)) { - $info = "$row_pruefling->vorname $row_pruefling->nachname, $row_pruefling->stg_bez"; + $info = "$row_pruefling->vorname $row_pruefling->nachname, $row_pruefling->bezeichnung $row_pruefling->stg_bez"; } } @@ -323,13 +392,13 @@ if($levelgebiet) } //Zeit des Gebietes holen -echo '
'.$info.''.$fortschrittsbalken.'
'; +echo '
'.$info.''.$fortschrittsbalken.'
'; if($demo) { //Wenn es sich um ein Demobeispiel handelt, dann wird die Maximale Gesamtzeit angezeigt - echo " "; - echo $minute.':'.$sekunde.' Minuten '; + echo "t("testtool/gebietStarten")."\" onclick=\"GebietStarten('".$db->convert_html_chars($gebiet->bezeichnung)."','".$stunde."','".$minute."','".$sekunde."','".$gebiet_id."')\" /> "; + echo '
'.$p->t('testtool/bearbeitungszeit').': '.$stunde.'h '.$minute.'m '.$sekunde.'s
'; } else { @@ -349,11 +418,11 @@ else $zeit = $zeit*-1; } - echo ' Minuten'; + echo $p->t('testtool/bearbeitungszeit').': '; echo ""; if($zeit<0) - die('
Die Zeit ist abgelaufen!
Bitte aktivieren Sie Javascript in Ihrem Browser!
'); + die('
'.$p->t('testtool/dieZeitIstAbgelaufen').'
'); } echo ''; echo ''; @@ -402,18 +471,115 @@ if($frage->frage_id!='') //wenn diese noch nicht angesehen wurde, dann wird die begintime gesetzt $prueflingfrage = new frage(); if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id)) - die('Diese Frage ist nicht fuer Sie bestimmt'); + die($p->t('testtool/dieseFrageIstNichtFuerSieBestimmt')); if($prueflingfrage->begintime=='') { $prueflingfrage->begintime = date('Y-m-d H:i:s'); $prueflingfrage->new = false; if(!$prueflingfrage->save_prueflingfrage()) - echo 'Fehler beim Speichern der Erstansicht'; + echo $p->t('testtool/fehlerBeimSpeichernDerErstansicht'); } } } - echo '

'; + echo '
'; + //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) + WHERE gebiet_id='".addslashes($gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."' AND demo=false ORDER BY nummer"; + + echo " "; + //Nummern der Fragen Anzeigen + $result = $db->db_query($qry); + while($row = $db->db_fetch_object($result)) + { + $antwort = new antwort(); + $antwort->getAntwort($_SESSION['pruefling_id'],$row->frage_id); + if($row->frage_id==$frage_id) + echo " "; + else + echo " "; + } + //echo "
".($row->nummer<10?" ":"")."$row->nummer$row->nummer
"; + } + //Weiter Button nur bei nicht gelevelten Gebieten anzeigen + if(!$levelgebiet) + { + //Naechste Frage holen und Weiter-Button anzeigen + $frage2 = new frage(); + $nextfrage = $frage2->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); + if($nextfrage) + { + if($demo) + $value=$p->t('testtool/demo'); + else + $value=$p->t('testtool/blaettern'); + + echo " $value >>"; + } + else + { + if($demo) + { + $qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage + WHERE tbl_frage.gebiet_id='".addslashes($gebiet_id)."' + AND demo "; + if($row = $db->db_fetch_object($db->db_query($qry))) + { + if($row->anzahl>1) + { + //Bei Demos den Weiter-Button nur anzeigen, wenn ausser der Startseite noch andere Demoseiten vorhanden sind + echo " ".$p->t("testtool/startseite")." >>"; + } + } + } + else + { + //Wenns der letzte Eintrag ist, wieder zum ersten springen + echo " ".$p->t('testtool/blaettern')." >>"; + } + } + } + else + { + //Naechste Frage holen und Weiter-Button anzeigen + if($demo) + { + + $frage2 = new frage(); + $nextfrage = $frage2->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); + + if($nextfrage) + { + $value="Demo"; + echo " $value >>"; + } + else + { + //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 + WHERE tbl_frage.gebiet_id='".addslashes($gebiet_id)."' + AND demo "; + if($row = $db->db_fetch_object($db->db_query($qry))) + { + if($row->anzahl>1) + { + //Bei Demos den Weiter-Button nur anzeigen, wenn ausser der Startseite noch andere Demoseiten vorhanden sind + echo " ".$p->t("testtool/startseite")." >>"; + } + } + } + } + } + if(!$demo && !$levelgebiet) + echo " "; + + echo '



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

\n"; @@ -437,10 +603,12 @@ if($frage->frage_id!='') //Vorschlaege laden $vs = new vorschlag(); $vs->getVorschlag($frage->frage_id, $_SESSION['sprache'], $gebiet->zufallvorschlag); - echo "
frage_id\" method=\"POST\">"; + $letzte = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); + echo "frage_id\" method=\"POST\" ".(!$letzte && !$levelgebiet?"onsubmit=\"letzteFrage()\"":"").">"; echo ''; echo ''; $anzahl = 1; + $beantwortet = false; //Antworten laden falls bereits vorhanden $antwort = new antwort(); @@ -465,10 +633,11 @@ if($frage->frage_id!='') if($vorschlag->vorschlag_id==$answer->vorschlag_id) { $checked='checked="checked"'; + $beantwortet = true; } } - echo ''; + echo ''; echo '
'; if($vorschlag->bild!='') @@ -503,159 +672,27 @@ if($frage->frage_id!='') if(!$gebiet->multipleresponse && !$levelgebiet && count($vs->result)>0) { echo "'; + echo '
'.$p->t('testtool/keineAntwort').''; } echo '
"; - echo '
CLEAR
'; if(!$demo) { - echo ""; + echo ''; } echo "
"; echo '


'; - //Fusszeile 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) - WHERE gebiet_id='".addslashes($gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."' AND demo=false ORDER BY nummer"; - - //Nummern der Fragen Anzeigen - $result = $db->db_query($qry); - while($row = $db->db_fetch_object($result)) - { - if($row->frage_id==$frage_id) - echo " $row->nummer -"; - else - echo " $row->nummer -"; - } - } - - //Weiter Button nur bei nicht gelevelten Gebieten anzeigen - if(!$levelgebiet) - { - //Naechste Frage holen und Weiter-Button anzeigen - $frage = new frage(); - $nextfrage = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); - if($nextfrage) - { - if($demo) - $value="Demo"; - else - $value="Weiter"; - - echo " $value >>"; - } - else - { - if($demo) - { - $qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage - WHERE tbl_frage.gebiet_id='".addslashes($gebiet_id)."' - AND demo "; - if($row = $db->db_fetch_object($db->db_query($qry))) - { - if($row->anzahl>1) - { - //Bei Demos den Weiter-Button nur anzeigen, wenn ausser der Startseite noch andere Demoseiten vorhanden sind - echo " Startseite >>"; - } - } - } - else - { - //Wenns der letzte Eintrag ist, wieder zum ersten springen - echo " Weiter >>"; - } - } - } - else - { - //Naechste Frage holen und Weiter-Button anzeigen - if($demo) - { - - $frage = new frage(); - $nextfrage = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); - - if($nextfrage) - { - $value="Demo"; - echo " $value >>"; - } - else - { - //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 - WHERE tbl_frage.gebiet_id='".addslashes($gebiet_id)."' - AND demo "; - if($row = $db->db_fetch_object($db->db_query($qry))) - { - if($row->anzahl>1) - { - //Bei Demos den Weiter-Button nur anzeigen, wenn ausser der Startseite noch andere Demoseiten vorhanden sind - echo " Startseite >>"; - } - } - } - } - } - echo '
'; } else { //Wenn kein Demo vorhanden ist - echo "


Start druecken um zu beginnen
"; + echo "


".$p->t("testtool/startDrueckenUmZuBeginnen")."
"; } -/* -//Test mit Button unten -echo '


'; -echo '
'; - -if($demo) -{ - //Wenn es sich um ein Demobeispiel handelt, dann wird die Maximale Gesamtzeit angezeigt - echo $minute.':'.$sekunde.' Minuten '; - echo '

'; - echo ""; -} -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) - WHERE gebiet_id='".addslashes($gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."'"; - $result = $db->db_query($qry); - $row = $db->db_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 '
'; -*/ - - - - - - ?> diff --git a/cis/testtool/gebietfertig.php b/cis/testtool/gebietfertig.php index 68a56438d..45142e8c2 100644 --- a/cis/testtool/gebietfertig.php +++ b/cis/testtool/gebietfertig.php @@ -16,25 +16,72 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl , + * Manfred Kindl */ +require_once('../../config/cis.config.inc.php'); +require_once('../../include/basis_db.class.php'); +require_once('../../include/sprache.class.php'); +require_once '../../include/phrasen.class.php'; + + if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + +function getSpracheUser() +{ + if(isset($_SESSION['sprache_user'])) + { + $sprache_user=$_SESSION['sprache_user']; + } + else + { + if(isset($_COOKIE['sprache_user'])) + { + $sprache_user=$_COOKIE['sprache_user']; + } + else + { + $sprache_user=DEFAULT_LANGUAGE; + } + setSpracheUser($sprache_user); + } + return $sprache_user; +} + +function setSpracheUser($sprache) +{ + $_SESSION['sprache_user']=$sprache; + setcookie('sprache_user',$sprache,time()+60*60*24*30,'/'); +} + +if(isset($_GET['sprache_user'])) +{ + $sprache_user = new sprache(); + if($sprache_user->load($_GET['sprache_user'])) + { + setSpracheUser($_GET['sprache_user']); + } + else + setSpracheUser(DEFAULT_LANGUAGE); +} + +$sprache_user = getSpracheUser(); +$p = new phrasen($sprache_user); + ?> - + -


-
Die Maximalzeit für dieses Gebiet ist abgelaufen, oder alle Fragen wurden beantwortet. -
_____________________________ -
-
-The time for this part has expired or you have answered all the questions.
+




+

t('testtool/zeitAbgelaufen');?>

+
diff --git a/cis/testtool/index.html b/cis/testtool/index.html index 717fd3b28..2a2698564 100644 --- a/cis/testtool/index.html +++ b/cis/testtool/index.html @@ -7,10 +7,10 @@ - + - - + + <body> diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 6195f2903..e53b0d12c 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -16,24 +16,80 @@ * 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>. + * Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>, + * Rudolf Hangl <rudolf.hangl@technikum-wien.at>, + * Manfred Kindl <manfred.kindl@technikum-wien.at> */ -require_once('../../config/cis.config.inc.php'); +require_once('../../config/cis.config.inc.php'); +require_once('../../config/global.config.inc.php'); require_once('../../include/person.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/pruefling.class.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/reihungstest.class.php'); +require_once('../../include/sprache.class.php'); +require_once '../../include/phrasen.class.php'; +require_once '../../include/datum.class.php'; if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); +//if(isset($_GET['lang'])) +// setSprache($_GET['lang']); + +$date = new datum(); + +function getSpracheUser() +{ + if(isset($_SESSION['sprache_user'])) + { + $sprache_user=$_SESSION['sprache_user']; + } + else + { + if(isset($_COOKIE['sprache_user'])) + { + $sprache_user=$_COOKIE['sprache_user']; + } + else + { + $sprache_user=DEFAULT_LANGUAGE; + } + setSpracheUser($sprache_user); + } + return $sprache_user; +} + +function setSpracheUser($sprache) +{ + $_SESSION['sprache_user']=$sprache; + setcookie('sprache_user',$sprache,time()+60*60*24*30,'/'); +} + +if(isset($_GET['sprache_user'])) +{ + $sprache_user = new sprache(); + if($sprache_user->load($_GET['sprache_user'])) + { + setSpracheUser($_GET['sprache_user']); + } + else + setSpracheUser(DEFAULT_LANGUAGE); +} + +$sprache_user = getSpracheUser(); +$p = new phrasen($sprache_user); + +$gebdatum=''; + session_start(); $reload=false; $reload_parent=false; +$sg_var = new studiengang(); +$studiengang_typ_arr = $sg_var->studiengang_typ_arr; + if (isset($_GET['logout'])) { if(isset($_SESSION['prestudent_id'])) @@ -43,13 +99,12 @@ if (isset($_GET['logout'])) } } -if(isset($_POST['tag']) && isset($_POST['monat']) && isset($_POST['jahr'])) +if(isset($_POST['gebdatum']) && $_POST['gebdatum']!='') { - if($_POST['tag']!='' && $_POST['monat']!='' && $_POST['jahr']!='') - $gebdatum = $_POST['jahr'].'-'.$_POST['monat'].'-'.$_POST['tag']; - else - $gebdatum=''; + $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); } +else + $gebdatum=''; if (isset($_POST['prestudent']) && isset($gebdatum)) { @@ -90,17 +145,17 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) } else { - echo '<span class="error">Der zuteilte Reihungstest ist noch nicht freigeschalten</span>'; + echo '<span class="error">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</span>'; } } else { - echo '<span class="error">Der Reihungstest dem Sie zugeteilt sind kann nicht geladen werden</span>'; + echo '<span class="error">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</span>'; } } else { - echo '<span class="error">Ihr Geburtsdatum stimmt nicht mit unseren Daten überein</span>'; + echo '<span class="error">'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'</span>'; } } @@ -118,7 +173,7 @@ else if(isset($_GET['type']) && $_GET['type']=='sprachechange' && isset($_GET['sprache'])) { - $_SESSION['sprache']=$_GET['sprache']; + setSprache($_GET['sprache']); } if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) @@ -166,12 +221,43 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) $reload_parent=true; } } -?> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +?><!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="../../skin/style.css.php" rel="stylesheet" type="text/css"> + <link rel="stylesheet" href="../../skin/jquery.css" type="text/css"/> + <script type="text/javascript" src="../../include/js/jquery1.9.min.js"></script> + <link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css"/> + <script type="text/javascript"> + $(document).ready(function() + { + $.datepicker.setDefaults( $.datepicker.regional[ "" ] ); + <?php //Wenn Deutsch ausgewaehlt, dann Datepicker auch in Deutsch + if ($sprache_user=="German") + echo '$.datepicker.setDefaults( $.datepicker.regional[ "de" ] ); + $( "#datepicker" ).datepicker( + { + changeMonth: true, + changeYear: true, + defaultDate: "-6570", + maxDate: -5110, + yearRange: "-60:+00", + } + );'; + else + echo '$( "#datepicker" ).datepicker({ + dateFormat: "dd.mm.yy", + changeMonth: true, + changeYear: true, + defaultDate: "-6570", + maxDate: -5110, + yearRange: "-60:+00", + });'; + ?> + + }); + </script> <?php if($reload_parent) echo '<script language="Javascript">parent.menu.location.reload()</script>'; @@ -181,20 +267,31 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) </head> <body> -<h1>Login</h1> -<?php +<?php echo '<h1>'.$p->t('testtool/startseite').'</h1>'; + if (isset($prestudent_id)) { + $prestudent = new prestudent($prestudent_id); - $stg_obj = new studiengang($prestudent->studiengang_kz); + $stg_obj = new studiengang($prestudent->studiengang_kz); $pruefling = new pruefling(); + $typ = new studiengang($prestudent->studiengang_kz); + $typ->getStudiengangTyp($stg_obj->typ); + + //Sprachwahl des Studiengangs + $qry = "SELECT sprachwahl FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".addslashes($prestudent->studiengang_kz)." LIMIT 1"; + $result = $db->db_query($qry); + $sprachwahl = $db->db_fetch_object($result); + $sprachwahl = $db->db_parse_bool($sprachwahl->sprachwahl); echo '<form method="GET">'; - echo '<br>Sie sind angemeldet als '.$_SESSION['vorname'].' '.$_SESSION['nachname']; - echo ' ('.$_SESSION['gebdatum'].') ID: '.$_SESSION['prestudent_id']; - echo '&nbsp; <INPUT type="submit" value="Logout" name="logout" />'; + echo '<br>'.$p->t('testtool/begruessungstext').' <br/><br/>'; + echo '<b>'.$p->t('zeitaufzeichnung/id').'</b>: '.$_SESSION['prestudent_id'].'<br/>'; + echo '<b>'.$p->t('global/name').'</b>: '.$_SESSION['vorname'].' '.$_SESSION['nachname'].'<br/>'; + echo '<b>'.$p->t('global/geburtsdatum').'</b>: '.$date->formatDatum($_SESSION['gebdatum'],'d.m.Y').'<br/>'; + echo '<b>'.$p->t('global/studiengang').'</b>: '.$typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'<br/><br/>'; + echo '<INPUT type="submit" value="Logout" name="logout" />'; echo '</form>'; - echo ' (Studiengang '.$stg_obj->bezeichnung.')'; echo '<br><br>'; if($pruefling->getPruefling($prestudent_id)) @@ -203,16 +300,16 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) echo '<FORM accept-charset="UTF-8" action="'. $_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">'; echo '<input type="hidden" name="pruefling_id" value="'.$pruefling->pruefling_id.'">'; echo '<table>'; - echo '<tr><td>Semester:</td><td><input type="text" name="semester" size="1" maxlength="1" value="'.$pruefling->semester.'">&nbsp;<input type="submit" name="save" value="Semester ändern"></td></tr>'; + //echo '<tr><td>'.$p->t('global/semester').':</td><td><input type="text" name="semester" size="1" maxlength="1" value="'.$pruefling->semester.'">&nbsp;<input type="submit" name="save" value="Semester ändern"></td></tr>'; //echo '<tr><td>ID Nachweis:</td><td><INPUT type="text" maxsize="50" name="idnachweis" value="'.$pruefling->idnachweis.'"></td></tr>'; //echo '<tr><td></td><td><input type="submit" name="save" value="Semester ändern"></td>'; echo '</table>'; - echo '</FORM><br>'; + echo '</FORM>'; //Wenn die Sprachwahl fuer diesen Studiengang aktiviert ist, dann die Sprachen anzeigen - if($stg_obj->testtool_sprachwahl) + if($sprachwahl==true) { - //Liste der Sprachen + //Liste der Sprachen, die in den Gebieten vorkommen koennen $qry = "SELECT distinct sprache FROM testtool.tbl_pruefling @@ -222,7 +319,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) WHERE tbl_pruefling.pruefling_id='".addslashes($pruefling->pruefling_id)."' ORDER BY sprache DESC"; - echo 'Sprache:'; + echo $p->t('testtool/spracheDerTestfragen').':'; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) @@ -235,7 +332,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) } } } - echo '<br><br><br><b>Klicken Sie links auf ein Teilgebiet</b><br><b>Select a topic on the left side</b>'; + echo '<br><br><br><b>'.$p->t('testtool/klickenSieAufEinTeilgebiet').'</b>'; if($pruefling->pruefling_id!='') { $_SESSION['pruefling_id']=$pruefling->pruefling_id; @@ -244,48 +341,29 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) } else { - echo 'Kein Pueflingseintrag vorhanden'; + echo '<span class="error">'.$p->t('testtool/keinPrueflingseintragVorhanden').'</span>'; } } else { echo '<form method="post"> <SELECT name="prestudent">'; - echo '<OPTION value="13478">Dummy Dieter</OPTION>\n'; + echo '<OPTION value="'.PRESTUDENT_ID_DUMMY_STUDENT.'">'.$p->t('testtool/nameAuswaehlen').'</OPTION>\n'; foreach($ps->result as $prestd) - echo '<OPTION value="'.$prestd->prestudent_id.'">'.$prestd->nachname.' '.$prestd->vorname."</OPTION>\n"; + { + $stg = new studiengang(); + $stg->load($prestd->studiengang_kz); + echo '<OPTION value="'.$prestd->prestudent_id.'" '.($prestd->prestudent_id==($_POST['prestudent'])?'selected':'').'>'.$prestd->nachname.' '.$prestd->vorname.' ('.(strtoupper($stg->typ.$stg->kurzbz)).')</OPTION>\n'; + } echo '</SELECT>'; - echo '&nbsp; Geburtsdatum: '; - //<INPUT type="text" maxlength="10" size="10" name="gebdatum" />(YYYY-MM-TT)'; - echo ' <SELECT name="tag">'; - echo '<OPTION value="">Tag</OPTION>'; - for($i=1;$i<=31;$i++) - echo '<OPTION value="'.($i<10?'0':'').$i.'">'.$i.'</OPTION>'; - echo '</SELECT>'; - echo ' <SELECT name="monat">'; - echo '<OPTION value="">Monat</OPTION>'; - for($i=1;$i<=12;$i++) - echo '<OPTION value="'.($i<10?'0':'').$i.'">'.date('F',mktime(0,0,0,$i,1,date('Y'))).'</OPTION>'; - echo '</SELECT>'; - echo ' <SELECT name="jahr">'; - echo '<OPTION value="">Jahr</OPTION>'; - for($i=date('Y');$i>date('Y')-99;$i--) - echo '<OPTION value="'.$i.'">'.$i.'</OPTION>'; - echo '</SELECT>'; - echo '&nbsp; <INPUT type="submit" value="Login" />'; + echo '&nbsp; '.$p->t('global/geburtsdatum').': '; + echo '<input type="text" id="datepicker" size="12" name="gebdatum" value="'.$date->formatDatum($gebdatum,'d.m.Y').'">'; + echo '&nbsp; <INPUT type="submit" value="'.$p->t('testtool/login').'" />'; echo '</form>'; echo '<br /><br /><br /> <center> - <span style="font-size: 1.2em; font-style: italic;"> - Herzlich Willkommen zum Reihungstest der Fachhochschule Technikum-Wien.<br /><br /> - Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.<br /><br /> - Wir wünschen Ihnen einen erfolgreichen Start ins Studium.<br /><br /> - ---------------<br /><br /> - Welcome to the placement test of UAS Technikum Wien.<br /><br /> - Please wait for the tutor\'s instructions before you log in.<br /><br /> - We wish you a good start to your studies. - </span> + <span style="font-size: 1.2em; font-style: italic;">'.$p->t('testtool/willkommenstext').'</span> </center>'; } ?> diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php index 369e5c620..60f6ccd8c 100644 --- a/cis/testtool/menu.php +++ b/cis/testtool/menu.php @@ -16,21 +16,67 @@ * 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>. + * Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>, + * Rudolf Hangl <rudolf.hangl@technikum-wien.at>, + * Manfred Kindl <manfred.kindl@technikum-wien.at> */ - require_once('../../config/cis.config.inc.php'); - require_once('../../include/basis_db.class.php'); +require_once('../../config/cis.config.inc.php'); +require_once('../../config/global.config.inc.php'); +require_once('../../include/basis_db.class.php'); +require_once('../../include/sprache.class.php'); +require_once '../../include/phrasen.class.php'; + if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); require_once('../../include/gebiet.class.php'); + +function getSpracheUser() +{ + if(isset($_SESSION['sprache_user'])) + { + $sprache_user=$_SESSION['sprache_user']; + } + else + { + if(isset($_COOKIE['sprache_user'])) + { + $sprache_user=$_COOKIE['sprache_user']; + } + else + { + $sprache_user=DEFAULT_LANGUAGE; + } + setSpracheUser($sprache_user); + } + return $sprache_user; +} + +function setSpracheUser($sprache) +{ + $_SESSION['sprache_user']=$sprache; + setcookie('sprache_user',$sprache,time()+60*60*24*30,'/'); +} + +if(isset($_GET['sprache_user'])) +{ + $sprache_user = new sprache(); + if($sprache_user->load($_GET['sprache_user'])) + { + setSpracheUser($_GET['sprache_user']); + } + else + setSpracheUser(DEFAULT_LANGUAGE); +} + +$sprache_user = getSpracheUser(); +$p = new phrasen($sprache_user); +$sprache = getSprache(); + session_start(); -?> - -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +?><!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> @@ -41,81 +87,104 @@ session_start(); <?php if (isset($_SESSION['pruefling_id'])) { + //content_id fuer Einfuehrung auslesen + $qry = "SELECT content_id FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz='".addslashes($_SESSION['studiengang_kz'])."' LIMIT 1"; + $result = $db->db_query($qry); + echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-right-width:1px;border-right-color:#BCBCBC;">'; - echo '<tr><td nowrap> - <a class="MenuItem" href="index.html" target="_top"> - <img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;Home - </a> + echo '<tr><td style="padding-left: 20px;" nowrap> + <a href="login.php" target="content">'.$p->t('testtool/startseite').'</a> </td></tr>'; - echo '<tr><td nowrap><img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;Gebiet</td></tr>'; - echo '<tr><td nowrap>'; - echo '<table /*width="100%"*/ border="0" cellspacing="0" cellpadding="0" id="Gebiet" style="display: visible;">'; + if ($content_id = $db->db_fetch_object($result)) + echo '<tr><td style="padding-left: 20px;"><a href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache.'" target="content">'.$p->t('testtool/einleitung').'</a></td></tr>'; + echo '<tr><td>&nbsp;</td></tr>'; + echo '<tr><td style="padding-left: 20px;" nowrap>'; - $qry = "SELECT * FROM testtool.vw_ablauf WHERE studiengang_kz='".addslashes($_SESSION['studiengang_kz'])."' AND semester='".addslashes($_SESSION['semester'])."' ORDER BY reihung"; - //echo $qry; - if($result = $db->db_query($qry)) + $qry = "SELECT * FROM testtool.vw_ablauf WHERE studiengang_kz='".addslashes($_SESSION['studiengang_kz'])."' ORDER BY semester,reihung"; + + $result = $db->db_query($qry); + $lastsemester = ''; + + while($row = $db->db_fetch_object($result)) { - while($row = $db->db_fetch_object($result)) + //Jedes Semester in einer eigenen Tabelle anzeigen + if($lastsemester!=$row->semester) { - $gebiet = new gebiet(); - if($gebiet->check_gebiet($row->gebiet_id)) + if($lastsemester!='') { - //Status der Gebiete Pruefen - $gebiet->load($row->gebiet_id); - - $qry = "SELECT extract('epoch' from '$gebiet->zeit'-(now()-min(begintime))) as time - FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) - WHERE gebiet_id='".addslashes($row->gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."'"; - if($result_time = $db->db_query($qry)) + //echo '<tr><td>&nbsp;</td></tr>'; + echo '</table>'; + } + $lastsemester = $row->semester; + + echo '<table border="0" cellspacing="0" cellpadding="0" id="Gebiet" style="display: visible; border-collapse: separate; border-spacing: 0 6px;">'; + echo '<tr><td style="color: #000; background-color: #8DBDD8; white-space:nowrap; padding: 0 10px 0 10px; line-height: 20px">'.$row->semester.'. '.$p->t('testtool/semester').' '.($row->semester!='1'?$p->t('testtool/quereinstieg'):'').'</td></tr>'; + } + $gebiet = new gebiet(); + if($gebiet->check_gebiet($row->gebiet_id)) + { + //Status der Gebiete Pruefen + $gebiet->load($row->gebiet_id); + + $qry = "SELECT extract('epoch' from '$gebiet->zeit'-(now()-min(begintime))) as time + FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) + WHERE gebiet_id='".addslashes($row->gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."'"; + if($result_time = $db->db_query($qry)) + { + if($row_time = $db->db_fetch_object($result_time)) { - if($row_time = $db->db_fetch_object($result_time)) + if($row_time->time>0) { - if($row_time->time>0) - { - //Gebiet gestartet aber noch nicht zu ende - $style='text-decoration: underline;'; - } - else - { - if($row_time->time=='') - { - //Gebiet noch nicht gestartet - $style=''; - } - else - { - //Gebiet ist zu Ende - $style='text-decoration:line-through;'; - } - } + //Gebiet gestartet aber noch nicht zu ende + //$style='text-decoration: underline;'; + $style=''; + $class='ItemTesttoolAktiv'; } else { - $style=''; + if($row_time->time=='') + { + //Gebiet noch nicht gestartet + $style=''; + $class='ItemTesttool'; + } + else + { + //Gebiet ist zu Ende + //$style='text-decoration:line-through;'; + $style=''; + $class='ItemTesttoolBeendet'; + } } } else { $style=''; + $class='ItemTesttool'; } - - echo '<tr> - <td width="10" class="ItemTesttoolLeft" nowrap>&nbsp;</td> - <td class="ItemTesttool" nowrap> - <a class="ItemTesttool" href="frage.php?gebiet_id='.$row->gebiet_id.'" onclick="document.location.reload()" target="content" style="'.$style.'">'.$row->gebiet_bez.'</a> - </td> - <td width="10" class="ItemTesttoolRight" nowrap>&nbsp;</td> - </tr>'; } - else + else { - echo '<tr> - <td width="10" nowrap>&nbsp;</td> - <td nowrap> - <span class="error"><img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;'.$row->gebiet_bez.' (invalid)</span> - </td> - </tr>'; + $style=''; + $class='ItemTesttool'; } + + echo '<tr> + <!--<td width="10" class="ItemTesttoolLeft" nowrap>&nbsp;</td>--> + <td class="'.$class.'"> + <a class="'.$class.'" href="frage.php?gebiet_id='.$row->gebiet_id.'" onclick="document.location.reload()" target="content" style="'.$style.'">'.$row->gebiet_bez.'</a> + </td> + <!--<td width="10" class="ItemTesttoolRight" nowrap>&nbsp;</td>--> + </tr>'; + } + else + { + echo '<tr> + <td width="10" nowrap>&nbsp;</td> + <td nowrap> + <span class="error"><img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;'.$row->gebiet_bez.' (invalid)</span> + </td> + </tr>'; } } echo '</table>'; @@ -123,13 +192,6 @@ if (isset($_SESSION['pruefling_id'])) } else { - echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-right-width:1px;border-right-color:#BCBCBC;">'; - echo '<tr><td nowrap> - <a class="HyperItem" href="index.html" target="_top"> - <img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;Login - </a> - </td></tr>'; - echo '</table>'; echo '</td></tr></table>'; } ?> diff --git a/cis/testtool/topbar.php b/cis/testtool/topbar.php new file mode 100644 index 000000000..d6a29dad2 --- /dev/null +++ b/cis/testtool/topbar.php @@ -0,0 +1,138 @@ +<?php +/* Copyright (C) 2006 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: Manfred Kindl <manfred.kindl@technikum-wien.at>. + */ + +require_once('../../config/cis.config.inc.php'); +require_once('../../include/basis_db.class.php'); +require_once('../../include/sprache.class.php'); +require_once '../../include/phrasen.class.php'; + + if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + +require_once('../../include/gebiet.class.php'); + +//if(isset($_GET['lang'])) + //setSprache($_GET['lang']); + +function getSpracheUser() +{ + if(isset($_SESSION['sprache_user'])) + { + $sprache_user=$_SESSION['sprache_user']; + } + else + { + if(isset($_COOKIE['sprache_user'])) + { + $sprache_user=$_COOKIE['sprache_user']; + } + else + { + $sprache_user=DEFAULT_LANGUAGE; + } + setSpracheUser($sprache_user); + } + return $sprache_user; +} + +function setSpracheUser($sprache) +{ + $_SESSION['sprache_user']=$sprache; + setcookie('sprache_user',$sprache,time()+60*60*24*30,'/'); +} + +if(isset($_GET['sprache_user'])) +{ + $sprache_user = new sprache(); + if($sprache_user->load($_GET['sprache_user'])) + { + setSpracheUser($_GET['sprache_user']); + } + else + setSpracheUser(DEFAULT_LANGUAGE); +} + +$sprache_user = getSpracheUser(); + +$p = new phrasen($sprache_user); + +?> + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link href="../../skin/style.css.php" rel="stylesheet" type="text/css"> +</head> +<script type="text/javascript"> +function changeSprache(sprache) +{ + var content = ''; + content = parent.content.location.pathname+parent.content.location.search; + + window.location.href="topbar.php?sprache_user="+sprache; + parent.menu.location.href="menu.php?sprache_user="+sprache; + + if (parent.content.location.search=='') + parent.content.location.href=content+"?sprache_user="+sprache; + else + parent.content.location.href=content+"&sprache_user="+sprache; +} +</script> +<body> +<?php +echo ' <table style="background-image: url(../../skin/images/header_testtool.png); background-repeat: repeat-x;" width="100%" height="100%" cellspacing="0" cellpadding="0"> + <tr> + <td valign="top" align="left"> + <a href="index.html" target="_top"><img class="header_logo" style="height:70%; left: 16px; top: 10%;" src="../../skin/styles/'.EXT_FKT_PATH.'/logo_klein.png" alt="logo"></a> + </td> + <td align="right"> + <select style="text-align: left; color: #0086CC; border: 1;" name="select">'; + $sprache = new sprache(); + $sprache->getAll(true); + foreach($sprache->result as $row) + { + echo ' <option onclick="changeSprache(\''.$row->sprache.'\'); return false;" '.($row->sprache==$sprache_user?'selected':'').'>'.($row->bezeichnung_arr[getSprache()]).'&nbsp;&nbsp;</option>'; + } + echo ' </select>&nbsp;&nbsp;</div> + </tr> + </table>'; +?> +</body> +</html> + + + + + + + + + + + + + + + + + + diff --git a/cms/admin.php b/cms/admin.php index 3aaf89f42..1dcb5c24a 100644 --- a/cms/admin.php +++ b/cms/admin.php @@ -64,6 +64,10 @@ $berechtigte_oe = $rechte->getOEkurzbz('basis/cms') mode : "textareas", theme : "advanced", language : "de", + protect: [ /\<\/?(audio[^>]+|audio)\>/g, // Protect <audio...> und </audio>], + /\<\/?(source[^>]+)\>/g // Protect <source...>], + ], + file_browser_callback: "FHCFileBrowser", plugins : "spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,inlinepopups,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras", @@ -78,7 +82,7 @@ $berechtigte_oe = $rechte->getOEkurzbz('basis/cms') theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, theme_advanced_styles : "Contenttabelle=cmstable;Hauptcontent=cmscontent;Menuebox=menubox;Teambox=teambox;Schatteneffekt Grafiken=screenshot_boxshadow;Tablesorter=tablesorter tablesorter_col_0 tablesorter_sort_0", - advimage_update_dimensions_onchange : false, + advimage_update_dimensions_onchange : false, //funktioniert aus irgendeinem Grund nicht. Grafiken sollten nach aendern der ID die eingestellte groesse behalten. force_br_newlines : true, force_p_newlines : false, forced_root_block : '', @@ -523,7 +527,7 @@ if(!is_null($method)) $texthtml = "Dies ist eine automatisch generierte E-Mail.<br><br> Es wurde ein Artikel angelegt/bearbeitet. Dieser kann nun übersetzt werden: '$content->titel'<br> <br> - <a href=\"".APP_ROOT."cms/admin.php?content_id=".$content->content_id."&sprache=$sprache&version=$version)&action=content\">zum Artikel</a> + <a href=\"".APP_ROOT."cms/admin.php?content_id=".$content->content_id."&sprache=$sprache&version=$version&action=content\">zum Artikel</a> <br> <br> Mit freundlichen Grüßen<br> @@ -1204,7 +1208,7 @@ function print_content() if($content->template_kurzbz=='redirect') echo '<a href="content.php?content_id='.$content_id.'&version='.$version.'&sprache='.$sprache.'&sichtbar" target="_blank">Vorschau in eigenem Fenster öffnen</a>'; else - echo '<iframe src="content.php?content_id='.$content_id.'&version='.$version.'&sprache='.$sprache.'&sichtbar" style="width: 800px; height: 500px; border: 1px solid black;">'; + echo '<iframe src="content.php?content_id='.$content_id.'&version='.$version.'&sprache='.$sprache.'" style="width: 800px; height: 500px; border: 1px solid black;">'; } /** diff --git a/locale/de-AT/testtool.php b/locale/de-AT/testtool.php index 67c70b495..383228037 100644 --- a/locale/de-AT/testtool.php +++ b/locale/de-AT/testtool.php @@ -1,3 +1,42 @@ <?php $this->phrasen['testtool/titel']=''; +$this->phrasen['testtool/login']='Login'; +$this->phrasen['testtool/tag']='Tag'; +$this->phrasen['testtool/monat']='Monat'; +$this->phrasen['testtool/jahr']='Jahr'; +$this->phrasen['testtool/willkommenstext']='Herzlich Willkommen zum Reihungstest.<br /><br /> + Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.<br /><br /> + Wir wünschen Ihnen einen erfolgreichen Start ins Studium.'; +$this->phrasen['testtool/nameAuswaehlen']='Name auswählen...'; +$this->phrasen['testtool/quereinstieg']='(Quereinstieg)'; +$this->phrasen['testtool/semester']='Semester'; +$this->phrasen['testtool/reihungstestNichtFreigeschalten']='Der zuteilte Reihungstest ist noch nicht freigeschaltet'; +$this->phrasen['testtool/reihungstestKannNichtGeladenWerden']='Der Reihungstest dem Sie zugeteilt sind, kann nicht geladen werden'; +$this->phrasen['testtool/geburtsdatumStimmtNichtUeberein']='Ihr Geburtsdatum stimmt nicht mit unseren Daten überein. Bitte wenden Sie sich an die Aufsichtsperson'; +$this->phrasen['testtool/home']='Home'; +$this->phrasen['testtool/klickenSieAufEinTeilgebiet']='Klicken Sie links auf ein Teilgebiet'; +$this->phrasen['testtool/gebietStarten']='Gebiet starten'; +$this->phrasen['testtool/startseite']='Startseite'; +$this->phrasen['testtool/begruessungstext']='Willkommen zum Reihungstest der Fachhochschule Technikum Wien. Sie sind mit folgenden Daten angemeldet:'; +$this->phrasen['testtool/keineAntwort']='Keine Antwort'; +$this->phrasen['testtool/speichernUndWeiter']='Speichern und weiter'; +$this->phrasen['testtool/alleFragenBeantwortet']='GLÜCKWUNSCH! \n\nSie haben alle Fragen in der zur Verfügung stehenden Zeit beantwortet. \nNutzen Sie die verbleibende Zeit, um Ihre Antworten zu kontrollieren oder fahren Sie mit dem nächsten Teilgebiet fort'; +$this->phrasen['testtool/zeitAbgelaufen']='Die Maximalzeit für dieses Gebiet ist abgelaufen, oder alle Fragen wurden beantwortet'; +$this->phrasen['testtool/spracheDerTestfragen']='Gewünschte Sprache der Testfragen'; +$this->phrasen['testtool/einleitung']='Einleitung'; +$this->phrasen['testtool/blaettern']='Blättern'; +$this->phrasen['testtool/demo']='Demo'; +$this->phrasen['testtool/okKlickenUmZuStarten']='Klicken Sie OK um dieses Gebiet zu starten. \nSie haben für die Bearbeitung ein Zeitlimit von'; +$this->phrasen['testtool/bitteZuerstAnmelden']='Bitte zuerst anmelden!'; +$this->phrasen['testtool/fehlerBeimGenerierenDesFragenpools']='Fehler beim generieren des Fragenpools'; +$this->phrasen['testtool/esWurdeKeineFrageGefunden']='Es wurde keine Frage gefunden'; +$this->phrasen['testtool/fehler']='Fehler'; +$this->phrasen['testtool/fehlerBeimStartvorgang']='Fehler beim Startvorgang'; +$this->phrasen['testtool/beiDiesemGebietMuessenSieJedeFrageBeantworten']='Bei diesem Gebiet müssen Sie jede Frage beantworten'; +$this->phrasen['testtool/bearbeitungszeit']='Bearbeitungszeit'; +$this->phrasen['testtool/dieZeitIstAbgelaufen']='Die Zeit ist abgelaufen!<br /> Bitte aktivieren Sie Javascript in Ihrem Browser!'; +$this->phrasen['testtool/dieseFrageIstNichtFuerSieBestimmt']='Diese Frage ist nicht für Sie bestimmt'; +$this->phrasen['testtool/fehlerBeimSpeichernDerErstansicht']='Fehler beim Speichern der Erstansicht'; +$this->phrasen['testtool/startDrueckenUmZuBeginnen']='Um dieses Teilgebiet zu starten, drücken Sie bitte links oben auf <b>Gebiet starten</b>.'; +$this->phrasen['testtool/keinPrueflingseintragVorhanden']='Kein Prüflingseintrag vorhanden'; ?> diff --git a/locale/en-US/testtool.php b/locale/en-US/testtool.php index 67c70b495..b6e775f15 100644 --- a/locale/en-US/testtool.php +++ b/locale/en-US/testtool.php @@ -1,3 +1,42 @@ <?php $this->phrasen['testtool/titel']=''; -?> +$this->phrasen['testtool/login']='Login'; +$this->phrasen['testtool/tag']='Day'; +$this->phrasen['testtool/monat']='Month'; +$this->phrasen['testtool/jahr']='Year'; +$this->phrasen['testtool/willkommenstext']='Welcome to the placement test.<br /><br /> + Please wait for the tutor\'s instructions before you log in.<br /><br /> + We wish you a good start to your studies.'; +$this->phrasen['testtool/nameAuswaehlen']='Choose name...'; +$this->phrasen['testtool/quereinstieg']='(Lateral entry)'; +$this->phrasen['testtool/semester']='Semester'; +$this->phrasen['testtool/reihungstestNichtFreigeschalten']='The entrance examination assigned has not yet been activated.'; +$this->phrasen['testtool/reihungstestKannNichtGeladenWerden']='The entrance examination assigned to you can not be loaded.'; +$this->phrasen['testtool/geburtsdatumStimmtNichtUeberein']='Your date of birth does not correspond to the data we have. Please speak to the supervisor. '; +$this->phrasen['testtool/home']='Home'; +$this->phrasen['testtool/klickenSieAufEinTeilgebiet']='Select a topic on the left side'; +$this->phrasen['testtool/gebietStarten']='Start section'; +$this->phrasen['testtool/startseite']='Startpage'; +$this->phrasen['testtool/begruessungstext']='Welcome to the placement test of the UAS Technikum Wien. <br/>You are logged in with the following data:'; +$this->phrasen['testtool/keineAntwort']='No Answer'; +$this->phrasen['testtool/speichernUndWeiter']='Save and next'; +$this->phrasen['testtool/alleFragenBeantwortet']='CONGRATULATIONS!\n\nYou have answered all the questions in the time allowed.\n Use the remaining time to check your answers or continue to the next section.'; +$this->phrasen['testtool/zeitAbgelaufen']='The time for this part has expired or you have answered all the questions.'; +$this->phrasen['testtool/spracheDerTestfragen']='Desired language of questions'; +$this->phrasen['testtool/einleitung']='Introduction'; +$this->phrasen['testtool/blaettern']='Browse'; +$this->phrasen['testtool/demo']='Demo'; +$this->phrasen['testtool/okKlickenUmZuStarten']='Click OK to start this section. \nYou have a timelimit of'; +$this->phrasen['testtool/bitteZuerstAnmelden']='Please log in first!'; +$this->phrasen['testtool/fehlerBeimGenerierenDesFragenpools']='Error in generating the pool of questions.'; +$this->phrasen['testtool/esWurdeKeineFrageGefunden']='No question has been found.'; +$this->phrasen['testtool/fehler']='Error'; +$this->phrasen['testtool/fehlerBeimStartvorgang']='Error in start-up sequence'; +$this->phrasen['testtool/beiDiesemGebietMuessenSieJedeFrageBeantworten']='In this section you must answer every question'; +$this->phrasen['testtool/bearbeitungszeit']='Time'; +$this->phrasen['testtool/dieZeitIstAbgelaufen']='The time has run out!<br />Please enable JavaScript in your browser!'; +$this->phrasen['testtool/dieseFrageIstNichtFuerSieBestimmt']='This question is not intended for you'; +$this->phrasen['testtool/fehlerBeimSpeichernDerErstansicht']='Error in saving the initial view'; +$this->phrasen['testtool/startDrueckenUmZuBeginnen']='To start this section, please click on <b>Start section</b> in the top left corner.'; +$this->phrasen['testtool/keinPrueflingseintragVorhanden']='No candidate entry available.'; +?> \ No newline at end of file diff --git a/skin/images/header_testtool.png b/skin/images/header_testtool.png new file mode 100644 index 000000000..c4d19a4b4 Binary files /dev/null and b/skin/images/header_testtool.png differ diff --git a/skin/styles/tw/logo_klein.png b/skin/styles/tw/logo_klein.png new file mode 100644 index 000000000..81a5b46d6 Binary files /dev/null and b/skin/styles/tw/logo_klein.png differ diff --git a/system/checksystem.php b/system/checksystem.php index 489fc3962..f5bcbc8c2 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -2108,6 +2108,16 @@ if(!$result = @$db->db_query("SELECT sort FROM lehre.tbl_studienplan_lehrveranst echo ' lehre.tbl_studienplan_lehrveranstaltung: Spalte sort hinzugefuegt!<br>'; } +// Spalte studienjahr_kurzbz in public.tbl_studiensemester +if(!$result = @$db->db_query("SELECT studienjahr_kurzbz FROM public.tbl_studiensemester LIMIT 1;")) +{ + $qry = "ALTER TABLE public.tbl_studiensemester ADD COLUMN studienjahr_kurzbz varchar(16);"; + if(!$db->db_query($qry)) + echo '<strong>public.tbl_studiensemester: '.$db->db_last_error().'</strong><br>'; + else + echo ' public.tbl_studiensemester: Spalte studienjahr_kurzbz hinzugefuegt!<br>'; +} + // Spalte sort in lehre.tbl_studienplan_lehrveranstaltung if($result = $db->db_query("select * from information_schema.key_column_usage where constraint_name='fk_vertragsstatus_vertrag_vertragsstatus'")) { @@ -2132,16 +2142,65 @@ if(!$result = @$db->db_query("SELECT sort FROM fue.tbl_aktivitaet LIMIT 1;")) echo ' fue.tbl_aktivitaet: Spalte sort hinzugefuegt!<br>'; } -// Spalte studienjahr_kurzbz in public.tbl_studiensemester -if(!$result = @$db->db_query("SELECT studienjahr_kurzbz FROM public.tbl_studiensemester LIMIT 1;")) +// Tabelle testtool.tbl_ablauf_vorgaben +if(!$result = @$db->db_query("SELECT 1 FROM testtool.tbl_ablauf_vorgaben LIMIT 1;")) { - $qry = "ALTER TABLE public.tbl_studiensemester ADD COLUMN studienjahr_kurzbz varchar(16);"; + $qry = " + CREATE TABLE testtool.tbl_ablauf_vorgaben + ( + ablauf_vorgaben_id integer NOT NULL, + studiengang_kz integer NOT NULL, + sprache varchar(16), + sprachwahl boolean NOT NULL, + content_id bigint, + insertamum timestamp, + insertvon varchar(32), + updateamum timestamp, + updatevon varchar(32) + ); + COMMENT ON TABLE testtool.tbl_ablauf_vorgaben IS 'Einstellungen und Variablen fuer den Ablauf der Gebiete'; + COMMENT ON COLUMN testtool.tbl_ablauf_vorgaben.content_id IS 'Einfuehrungsseite aus dem CMS'; + COMMENT ON COLUMN testtool.tbl_ablauf_vorgaben.sprache IS 'Sprache, in der die Fragen gestellt werden'; + COMMENT ON COLUMN testtool.tbl_ablauf_vorgaben.sprachwahl IS 'Soll der Pruefling die Sprache der Testfragen aendern koennen?'; + + ALTER TABLE testtool.tbl_ablauf_vorgaben ADD CONSTRAINT pk_ablauf_vorgaben PRIMARY KEY (ablauf_vorgaben_id); + CREATE SEQUENCE testtool.tbl_ablauf_vorgaben_ablauf_vorgaben_id_seq + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + ALTER TABLE testtool.tbl_ablauf_vorgaben ALTER COLUMN ablauf_vorgaben_id SET DEFAULT nextval('testtool.tbl_ablauf_vorgaben_ablauf_vorgaben_id_seq'); + ALTER TABLE testtool.tbl_ablauf_vorgaben ADD CONSTRAINT fk_ablauf_vorgaben_studiengang_kz FOREIGN KEY (studiengang_kz) REFERENCES public.tbl_studiengang(studiengang_kz) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE testtool.tbl_ablauf_vorgaben ADD CONSTRAINT fk_ablauf_vorgaben_sprache FOREIGN KEY (sprache) REFERENCES public.tbl_sprache(sprache) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE testtool.tbl_ablauf_vorgaben ADD CONSTRAINT fk_ablauf_vorgaben_content_id FOREIGN KEY (content_id) REFERENCES campus.tbl_content(content_id) ON DELETE RESTRICT ON UPDATE CASCADE; + + GRANT SELECT, INSERT, UPDATE, DELETE ON testtool.tbl_ablauf_vorgaben TO vilesci; + GRANT SELECT, UPDATE ON testtool.tbl_ablauf_vorgaben_ablauf_vorgaben_id_seq TO vilesci; + + GRANT SELECT, INSERT, UPDATE, DELETE ON testtool.tbl_ablauf_vorgaben TO web; + GRANT SELECT, UPDATE ON testtool.tbl_ablauf_vorgaben_ablauf_vorgaben_id_seq TO web; + "; + if(!$db->db_query($qry)) - echo '<strong>public.tbl_studiensemester: '.$db->db_last_error().'</strong><br>'; + echo '<strong>testtool.tbl_ablauf_vorgaben: '.$db->db_last_error().'</strong><br>'; else - echo ' public.tbl_studiensemester: Spalte studienjahr_kurzbz hinzugefuegt!<br>'; + echo 'testtool.tbl_ablauf_vorgaben: Tabelle und Sequenz hinzugefuegt!<br>'; } +// Vorgaben fuer Testtool Ablauf +if(!$result = @$db->db_query("SELECT ablauf_vorgaben_id FROM testtool.tbl_ablauf LIMIT 1")) +{ + $qry = " + ALTER TABLE testtool.tbl_ablauf ADD COLUMN ablauf_vorgaben_id integer; + ALTER TABLE testtool.tbl_ablauf ADD CONSTRAINT fk_ablauf_vorgaben_id FOREIGN KEY (ablauf_vorgaben_id) REFERENCES testtool.tbl_ablauf_vorgaben(ablauf_vorgaben_id) ON DELETE RESTRICT ON UPDATE CASCADE; + "; + + if(!$db->db_query($qry)) + echo '<strong>testtool.tbl_ablauf: '.$db->db_last_error().'</strong><br>'; + else + echo 'testtool.tbl_ablauf: Neue Spalte ablauf_vorgaben_id hinzugefuegt<br>'; +} echo '<br><br><br>'; @@ -2349,7 +2408,8 @@ $tabellen=array( "public.tbl_variable" => array("name","uid","wert"), "public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype"), "public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz"), - "testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "insertamum","insertvon","updateamum", "updatevon"), + "testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "insertamum","insertvon","updateamum", "updatevon","ablauf_vorgaben_id"), + "testtool.tbl_ablauf_vorgaben" => array("ablauf_vorgaben_id","studiengang_kz","sprache","sprachwahl","content_id","insertamum","insertvon","updateamum", "updatevon"), "testtool.tbl_antwort" => array("antwort_id","pruefling_id","vorschlag_id"), "testtool.tbl_frage" => array("frage_id","kategorie_kurzbz","gebiet_id","level","nummer","demo","insertamum","insertvon","updateamum","updatevon"), "testtool.tbl_gebiet" => array("gebiet_id","kurzbz","bezeichnung","beschreibung","zeit","multipleresponse","kategorien","maxfragen","zufallfrage","zufallvorschlag","levelgleichverteilung","maxpunkte","insertamum", "insertvon", "updateamum", "updatevon", "level_start","level_sprung_auf","level_sprung_ab","antwortenprozeile"), diff --git a/vilesci/stammdaten/reihungstest_administration.php b/vilesci/stammdaten/reihungstest_administration.php index 68737c1a8..55f98fb8a 100644 --- a/vilesci/stammdaten/reihungstest_administration.php +++ b/vilesci/stammdaten/reihungstest_administration.php @@ -374,8 +374,8 @@ if(isset($_GET['action']) && $_GET['action']=='deletedummyanswers') if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('<span class="error">Sie haben keine Berechtigung für diese Aktion. <a href="reihungstest_administration.php">Seite neu laden</a></span>'); - $qry = "DELETE FROM testtool.tbl_antwort WHERE pruefling_id=841; - DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=841;"; + $qry = "DELETE FROM testtool.tbl_antwort WHERE pruefling_id=(SELECT pruefling_id FROM testtool.tbl_pruefling WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT)."); + DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=(SELECT pruefling_id FROM testtool.tbl_pruefling WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT).");"; if($db->db_query($qry)) echo ' <b>Antworten wurden gelöscht</b>'; else @@ -389,8 +389,8 @@ if(isset($_POST['savedummystg']) && isset($_POST['stg'])) if(!$rechte->isBerechtigt('basis/testtool', null, 'su')) die('<span class="error">Sie haben keine Berechtigung für diese Aktion. <a href="reihungstest_administration.php">Seite neu laden</a></span>'); - $qry = "UPDATE public.tbl_prestudent SET studiengang_kz=".$db->db_add_param($_POST['stg'])." WHERE prestudent_id='13478'; - UPDATE testtool.tbl_pruefling SET studiengang_kz=".$db->db_add_param($_POST['stg'])." WHERE prestudent_id='13478';"; + $qry = "UPDATE public.tbl_prestudent SET studiengang_kz=".$db->db_add_param($_POST['stg'])." WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT)."; + UPDATE testtool.tbl_pruefling SET studiengang_kz=".$db->db_add_param($_POST['stg'])." WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT).";"; if($db->db_query($qry)) echo '<b>Studiengang geändert!</b><br>'; else @@ -398,7 +398,7 @@ if(isset($_POST['savedummystg']) && isset($_POST['stg'])) } $name=''; $dummystg=''; -$qry = "SELECT studiengang_kz, vorname, nachname FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) WHERE prestudent_id='13478'"; +$qry = "SELECT studiengang_kz, vorname, nachname FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result))