mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 08:34:29 +00:00
Neues Testtool - Run Script system/testtool_aktualisierung.php
This commit is contained in:
@@ -530,8 +530,8 @@ else
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<script language="Javascript">
|
||||
function addUser(student_uid)
|
||||
|
||||
@@ -35,9 +35,9 @@ require_once('../../../../include/datum.class.php');
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Benotungstool</title>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
function MM_jumpMenu(targ, selObj, restore)
|
||||
@@ -102,7 +102,7 @@ $uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
|
||||
echo '<table class="tabcontent">';
|
||||
echo ' <tr>';
|
||||
echo '<td class="tdwidth10"> </td>';
|
||||
echo '<td class="ContentHeader"><font class="ContentHeader"> Benotungsool';
|
||||
echo '<td class="ContentHeader"><font class="ContentHeader"> Benotungstool';
|
||||
echo '</font></td><td class="ContentHeader" align="right">'."\n";
|
||||
|
||||
//Studiensemester laden
|
||||
|
||||
@@ -38,8 +38,8 @@ require_once('../../../../include/legesamtnote.class.php');
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
|
||||
@@ -45,8 +45,8 @@ require_once('../../../../include/mail.class.php');
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<STYLE TYPE="text/css">
|
||||
|
||||
|
||||
@@ -99,8 +99,8 @@ $text .= "Updated: ".$upgedated."<br>";
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Benotungstool</title>
|
||||
<?php
|
||||
echo $text;
|
||||
|
||||
@@ -35,8 +35,8 @@ require_once('../../../../include/datum.class.php');
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
|
||||
@@ -122,8 +122,8 @@ if (isset($_GET["download"])){
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
|
||||
@@ -164,9 +164,9 @@ else
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Benotungstool</title>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
function MM_jumpMenu(targ, selObj, restore)
|
||||
@@ -194,7 +194,7 @@ else
|
||||
echo '<table class="tabcontent" height="100%">';
|
||||
echo ' <tr>';
|
||||
echo '<td class="tdwidth10"> </td>';
|
||||
echo '<td class="ContentHeader"><font class="ContentHeader"> Benotungsool';
|
||||
echo '<td class="ContentHeader"><font class="ContentHeader"> Benotungstool';
|
||||
echo '</font></td><td class="ContentHeader" align="right">'."\n";
|
||||
|
||||
//Studiensemester laden
|
||||
|
||||
@@ -41,8 +41,8 @@ $time = microtime_float();
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
|
||||
@@ -76,8 +76,8 @@ if (isset($_GET["download"])){
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
/* Copyright (C) 2009 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
|
||||
@@ -16,13 +16,14 @@
|
||||
* 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> and
|
||||
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
|
||||
function sortByField($multArray,$sortField,$desc=true)
|
||||
{
|
||||
@@ -67,6 +68,7 @@ if (!$conn = pg_connect(CONN_STRING))
|
||||
die("Es konnte keine Verbindung zum Server aufgebaut werden.");
|
||||
|
||||
$ergebnis='';
|
||||
$gebiet=array();
|
||||
$kategorie=array();
|
||||
$erg_kat=array();
|
||||
|
||||
@@ -90,7 +92,10 @@ while ($row=pg_fetch_object($result))
|
||||
if (isset($_POST['reihungstest']))
|
||||
{
|
||||
// Vorkommende Gebiete laden
|
||||
$sql_query="SELECT DISTINCT gebiet_id, gebiet FROM testtool.vw_auswertung";
|
||||
$sql_query="SELECT DISTINCT gebiet_id, gebiet FROM testtool.vw_auswertung WHERE reihungstest_id='".addslashes($_POST['reihungstest'])."'";
|
||||
if(isset($_POST['studiengang']) && $_POST['studiengang']!='')
|
||||
$sql_query.=" AND tbl_prestudent.studiengang_kz='".addslashes($_POST['studiengang'])."'";
|
||||
|
||||
//echo $sql_query;
|
||||
if(!($result=pg_query($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
@@ -100,12 +105,15 @@ if (isset($_POST['reihungstest']))
|
||||
$gebiet[$row->gebiet_id]->gebiet_id=$row->gebiet_id;
|
||||
}
|
||||
|
||||
// Ergebnisse laden
|
||||
$sql_query="SELECT vw_auswertung.* FROM testtool.vw_auswertung";
|
||||
if (isset($_POST['reihungstest']))
|
||||
$sql_query.=' JOIN public.tbl_prestudent USING (prestudent_id) WHERE reihungstest_id='.$_POST['reihungstest'];
|
||||
// Alle Personen des Reihungstests laden
|
||||
$sql_query="SELECT
|
||||
*
|
||||
FROM
|
||||
testtool.vw_auswertung
|
||||
WHERE
|
||||
reihungstest_id='".addslashes($_POST['reihungstest'])."'";
|
||||
if(isset($_POST['studiengang']) && $_POST['studiengang']!='')
|
||||
$sql_query.=" AND tbl_prestudent.studiengang_kz='".$_POST['studiengang']."'";
|
||||
$sql_query.=" AND tbl_prestudent.studiengang_kz='".addslashes($_POST['studiengang'])."'";
|
||||
|
||||
//echo $sql_query;
|
||||
if(!($result=pg_query($conn, $sql_query)))
|
||||
@@ -122,49 +130,62 @@ if (isset($_POST['reihungstest']))
|
||||
$ergebnis[$row->pruefling_id]->registriert=$row->registriert;
|
||||
$ergebnis[$row->pruefling_id]->stg_kurzbz=$row->stg_kurzbz;
|
||||
$ergebnis[$row->pruefling_id]->stg_bez=$row->stg_bez;
|
||||
$ergebnis[$row->pruefling_id]->gruppe=$row->gruppe_kurzbz;
|
||||
$ergebnis[$row->pruefling_id]->semester=$row->semester;
|
||||
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->name=$row->gebiet;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->anz_fragen=$row->anz_fragen;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->abzug=$row->abzug;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->anz_richtig=$row->anz_richtig;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->anz_antworten=$row->anz_antworten;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->anz_falsch=$row->anz_falsch;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->punkte=$row->punkte;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->prozent=$row->prozent;
|
||||
if (isset($ergebnis[$row->pruefling_id]->gesamt))
|
||||
$ergebnis[$row->pruefling_id]->gesamt+=$row->prozent;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->punkte=(($row->punkte>=$row->maxpunkte)?$row->maxpunkte:$row->punkte);
|
||||
//wenn maxpunkte ueberschritten wurde -> 100%
|
||||
if($row->punkte>=$row->maxpunkte)
|
||||
$prozent=100;
|
||||
else
|
||||
$ergebnis[$row->pruefling_id]->gesamt=$row->prozent;
|
||||
$prozent = ($row->punkte/$row->maxpunkte)*100;
|
||||
$ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->prozent=$prozent;
|
||||
|
||||
if (isset($ergebnis[$row->pruefling_id]->gesamt))
|
||||
$ergebnis[$row->pruefling_id]->gesamt+=$prozent*$row->gewicht;
|
||||
else
|
||||
$ergebnis[$row->pruefling_id]->gesamt=$prozent*$row->gewicht;
|
||||
}
|
||||
|
||||
$ergb=sortByField($ergebnis,'gesamt');
|
||||
|
||||
// Vorkommende Kategorien laden
|
||||
$sql_query="SELECT DISTINCT kategorie_kurzbz FROM testtool.vw_auswertung_kategorie";
|
||||
if (isset($_POST['reihungstest']))
|
||||
$sql_query.=' JOIN public.tbl_prestudent USING (prestudent_id) WHERE reihungstest_id='.$_POST['reihungstest'];
|
||||
$sql_query="SELECT
|
||||
DISTINCT kategorie_kurzbz,
|
||||
(SELECT sum(punkte) FROM testtool.tbl_vorschlag JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE tbl_frage.kategorie_kurzbz=vw_auswertung_kategorie.kategorie_kurzbz) as gesamtpunkte
|
||||
FROM testtool.vw_auswertung_kategorie
|
||||
WHERE reihungstest_id='".addslashes($_POST['reihungstest'])."'";
|
||||
|
||||
if(isset($_POST['studiengang']) && $_POST['studiengang']!='')
|
||||
$sql_query.=" AND tbl_prestudent.studiengang_kz='".$_POST['studiengang']."'";
|
||||
|
||||
//echo $sql_query;
|
||||
if(!($result=pg_query($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$gesamtpunkte=array();
|
||||
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$gesamtpunkte[$row->kategorie_kurzbz]=$row->gesamtpunkte;
|
||||
$kategorie[$row->kategorie_kurzbz]->name=$row->kategorie_kurzbz;
|
||||
}
|
||||
|
||||
// Ergebnisse laden
|
||||
$sql_query="SELECT vw_auswertung_kategorie.*, tbl_kriterien.typ
|
||||
FROM (testtool.vw_auswertung_kategorie JOIN testtool.tbl_kriterien USING (kategorie_kurzbz))";
|
||||
if (isset($_POST['reihungstest']))
|
||||
$sql_query.=' JOIN public.tbl_prestudent USING (prestudent_id)';
|
||||
$sql_query.=" WHERE vw_auswertung_kategorie.gebiet_id=tbl_kriterien.gebiet_id AND tbl_kriterien.punkte=vw_auswertung_kategorie.richtig";
|
||||
if (isset($_POST['reihungstest']))
|
||||
$sql_query.=' AND reihungstest_id='.$_POST['reihungstest'];
|
||||
$sql_query="
|
||||
SELECT
|
||||
vw_auswertung_kategorie.*,
|
||||
(SELECT typ FROM testtool.tbl_kriterien
|
||||
WHERE gebiet_id=vw_auswertung_kategorie.gebiet_id AND punkte=vw_auswertung_kategorie.punkte
|
||||
AND kategorie_kurzbz=vw_auswertung_kategorie.kategorie_kurzbz) as typ
|
||||
FROM testtool.vw_auswertung_kategorie
|
||||
WHERE reihungstest_id='".addslashes($_POST['reihungstest'])."'";
|
||||
if(isset($_POST['studiengang']) && $_POST['studiengang']!='')
|
||||
$sql_query.=" AND tbl_prestudent.studiengang_kz='".$_POST['studiengang']."'";
|
||||
$sql_query.=" AND studiengang_kz='".$_POST['studiengang']."'";
|
||||
|
||||
$sql_query.=" ORDER BY pruefling_id, kategorie_kurzbz";
|
||||
$sql_query.=" ORDER BY nachname, vorname";
|
||||
//echo $sql_query;
|
||||
|
||||
if(!($result=pg_query($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
|
||||
@@ -179,13 +200,9 @@ if (isset($_POST['reihungstest']))
|
||||
$erg_kat[$row->pruefling_id]->registriert=$row->registriert;
|
||||
$erg_kat[$row->pruefling_id]->stg_kurzbz=$row->stg_kurzbz;
|
||||
$erg_kat[$row->pruefling_id]->stg_bez=$row->stg_bez;
|
||||
$erg_kat[$row->pruefling_id]->gruppe=$row->gruppe_kurzbz;
|
||||
$erg_kat[$row->pruefling_id]->kategorie[$row->kategorie_kurzbz]->name=$row->kategorie_kurzbz;
|
||||
$erg_kat[$row->pruefling_id]->kategorie[$row->kategorie_kurzbz]->richtig=$row->richtig;
|
||||
$erg_kat[$row->pruefling_id]->kategorie[$row->kategorie_kurzbz]->falsch=$row->falsch;
|
||||
$erg_kat[$row->pruefling_id]->kategorie[$row->kategorie_kurzbz]->gesamt=$row->gesamt;
|
||||
$erg_kat[$row->pruefling_id]->kategorie[$row->kategorie_kurzbz]->typ=$row->typ;
|
||||
$erg_kat[$row->pruefling_id]->kategorie[$row->kategorie_kurzbz]->punkte=$row->richtig.'/'.$row->gesamt;
|
||||
$erg_kat[$row->pruefling_id]->kategorie[$row->kategorie_kurzbz]->punkte=number_format($row->punkte,2).'/'.number_format($gesamtpunkte[$row->kategorie_kurzbz],2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,8 +220,8 @@ foreach($stg_obj->result as $row)
|
||||
|
||||
<head>
|
||||
<title>Testtool - Auswertung</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<link rel="stylesheet" href="../../skin/cis.css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -221,7 +238,7 @@ Reihungstest wählen:
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
echo '<OPTION value="'.$rt->reihungstest_id.'" '.$selected.'>'.(isset($stg_arr[$rt->studiengang_kz])?$stg_arr[$rt->studiengang_kz]:'').' '.$rt->ort_kurzbz.' '.$rt->anmerkung.' '.$rt->datum.' '.$prestd->rt."</OPTION>\n";
|
||||
echo '<OPTION value="'.$rt->reihungstest_id.'" '.$selected.'>'.(isset($stg_arr[$rt->studiengang_kz])?$stg_arr[$rt->studiengang_kz]:'').' '.$rt->ort_kurzbz.' '.$rt->anmerkung.' '.$rt->datum."</OPTION>\n";
|
||||
}
|
||||
?>
|
||||
</SELECT>
|
||||
@@ -231,7 +248,7 @@ Studiengang:
|
||||
<?php
|
||||
foreach ($stg_arr as $kz=>$kurzbz)
|
||||
{
|
||||
if(isset($_POST['studiengang']) && $_POST['studiengang']==$kz)
|
||||
if(isset($_POST['studiengang']) && $_POST['studiengang']==$kz && $_POST['studiengang']!='')
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
@@ -252,9 +269,9 @@ if (isset($_POST['reihungstest']))
|
||||
<table id="zeitsperren">
|
||||
<tr>
|
||||
<th rowspan="2">ID</th><th rowspan="2">Nachname</th><th rowspan="2">Vornamen</th>
|
||||
<th rowspan="2">GebDatum</th><th rowspan="2">G</th><th rowspan="2">IdNachweis</th>
|
||||
<th rowspan="2">GebDatum</th><th rowspan="2">G</th>
|
||||
<!--<th rowspan="2">IdNachweis</th>-->
|
||||
<th rowspan="2">Registriert</th><th rowspan="2">STG</th><th rowspan="2">Studiengang</th>
|
||||
<th rowspan="2">Grp</th>
|
||||
<?php
|
||||
foreach ($gebiet AS $gbt)
|
||||
echo "<th colspan='2'>$gbt->name</th>";
|
||||
@@ -274,7 +291,8 @@ if (isset($_POST['reihungstest']))
|
||||
foreach ($ergb AS $erg)
|
||||
{
|
||||
echo "<tr><td>$erg->pruefling_id</td><td>$erg->nachname</td><td>$erg->vorname</td><td>$erg->gebdatum</td><td>$erg->geschlecht</td>
|
||||
<td>$erg->idnachweis</td><td>$erg->registriert</td><td>$erg->stg_kurzbz</td><td>$erg->stg_bez</td><td>$erg->gruppe</td>";
|
||||
<td>$erg->registriert</td><td>$erg->stg_kurzbz</td><td>$erg->stg_bez</td>";
|
||||
//<td>$erg->idnachweis</td>
|
||||
foreach ($gebiet AS $gbt)
|
||||
if (isset($erg->gebiet[$gbt->gebiet_id]))
|
||||
echo '<td>'.number_format($erg->gebiet[$gbt->gebiet_id]->punkte,2,',',' ').'</td><td nowrap>'.number_format($erg->gebiet[$gbt->gebiet_id]->prozent,2,',',' ').' %</td>';
|
||||
@@ -292,9 +310,9 @@ if (isset($_POST['reihungstest']))
|
||||
<table id="zeitsperren">
|
||||
<tr>
|
||||
<th rowspan="2">ID</th><th rowspan="2">Nachname</th><th rowspan="2">Vornamen</th>
|
||||
<th rowspan="2">GebDatum</th><th rowspan="2">G</th><th rowspan="2">IdNachweis</th>
|
||||
<th rowspan="2">GebDatum</th><th rowspan="2">G</th>
|
||||
<!--<th rowspan="2">IdNachweis</th>-->
|
||||
<th rowspan="2">Registriert</th><th rowspan="2">STG</th><th rowspan="2">Studiengang</th>
|
||||
<th rowspan="2">Grp</th>
|
||||
<?php
|
||||
foreach ($kategorie AS $gbt)
|
||||
echo "<th colspan='2'>$gbt->name</th>";
|
||||
@@ -310,7 +328,8 @@ if (isset($_POST['reihungstest']))
|
||||
foreach ($erg_kat AS $erg)
|
||||
{
|
||||
echo "<tr><td>$erg->pruefling_id</td><td>$erg->nachname</td><td>$erg->vorname</td><td>$erg->gebdatum</td><td>$erg->geschlecht</td>
|
||||
<td>$erg->idnachweis</td><td>$erg->registriert</td><td>$erg->stg_kurzbz</td><td>$erg->stg_bez</td><td>$erg->gruppe</td>";
|
||||
<td>$erg->registriert</td><td>$erg->stg_kurzbz</td><td>$erg->stg_bez</td>";
|
||||
//<td>$erg->idnachweis</td>
|
||||
foreach ($kategorie AS $gbt)
|
||||
echo '<td>'.$erg->kategorie[$gbt->name]->punkte.'</td><td>'.$erg->kategorie[$gbt->name]->typ.'</td>';
|
||||
echo '</tr>';
|
||||
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009 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 <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]>,
|
||||
* Rudolf Hangl <[email protected]> and
|
||||
* Gerald Simane-Sequens <[email protected]>
|
||||
*/
|
||||
/**
|
||||
* Seite zum Editieren von Testtool-Gebieten
|
||||
*/
|
||||
|
||||
require_once('../../config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/gebiet.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if(!$conn = pg_pconnect(CONN_STRING))
|
||||
die('Fehler beim Connecten zur DB');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung($conn);
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
echo '
|
||||
<!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=iso-8859-15">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
';
|
||||
|
||||
if(isset($_GET['gebiet_id']))
|
||||
$gebiet_id=$_GET['gebiet_id'];
|
||||
else
|
||||
$gebiet_id='';
|
||||
|
||||
|
||||
echo '<h1> Gebiet bearbeiten</h1>';
|
||||
|
||||
if(!$rechte->isBerechtigt('admin'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
$gebiet = new gebiet($conn);
|
||||
$gebiet->getAll();
|
||||
|
||||
echo '<a href="index.php?gebiet_id='.$gebiet_id.'" class="Item">Zurück zur Admin Seite</a><br /><br />';
|
||||
|
||||
//Liste der Gebiete anzeigen
|
||||
echo '<form id="gebiet_form" action="'.$_SERVER['PHP_SELF'].'" method="GET">';
|
||||
echo 'Gebiet: <SELECT name="gebiet_id" onchange="document.getElementById(\'gebiet_form\').submit();">';
|
||||
|
||||
foreach ($gebiet->result as $row)
|
||||
{
|
||||
if($gebiet_id=='')
|
||||
$gebiet_id=$row->gebiet_id;
|
||||
|
||||
if($gebiet_id==$row->gebiet_id)
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
echo '<OPTION value="'.$row->gebiet_id.'" '.$selected.'>'.$row->bezeichnung.'</OPTION>';
|
||||
}
|
||||
echo '</SELECT>
|
||||
<input type="submit" value="Bearbeiten">
|
||||
</form>';
|
||||
|
||||
echo '<br /><br />';
|
||||
|
||||
//Speichern der Daten
|
||||
if(isset($_POST['speichern']))
|
||||
{
|
||||
$gebiet = new gebiet($conn);
|
||||
if($gebiet->load($gebiet_id))
|
||||
{
|
||||
$gebiet->kurzbz = $_POST['kurzbz'];
|
||||
$gebiet->bezeichnung = $_POST['bezeichnung'];
|
||||
$gebiet->beschreibung = $_POST['beschreibung'];
|
||||
$gebiet->zeit = $_POST['zeit'];
|
||||
$gebiet->multipleresponse = isset($_POST['multipleresponse']);
|
||||
$gebiet->kategorien = isset($_POST['kategorien']);
|
||||
$gebiet->zufallfrage = isset($_POST['zufallfrage']);
|
||||
$gebiet->zufallvorschlag = isset($_POST['zufallvorschlag']);
|
||||
$gebiet->levelgleichverteilung = isset($_POST['levelgleichverteilung']);
|
||||
$gebiet->maxpunkte = $_POST['maxpunkte'];
|
||||
$gebiet->maxfragen = $_POST['maxfragen'];
|
||||
$gebiet->level_start = $_POST['level_start'];
|
||||
$gebiet->level_sprung_auf = $_POST['level_sprung_auf'];
|
||||
$gebiet->level_sprung_ab = $_POST['level_sprung_ab'];
|
||||
$gebiet->updateamum = date('Y-m-d H:i:s');
|
||||
$gebiet->updatevon = $user;
|
||||
|
||||
if($gebiet->save(false))
|
||||
{
|
||||
echo 'Daten erfolgreich gespeichert';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">Fehler beim Speichern: '.$gebiet->errormsg.'</span>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">Fehler beim Laden des Gebiets</span>';
|
||||
}
|
||||
}
|
||||
|
||||
if($gebiet_id!='')
|
||||
{
|
||||
$gebiet = new gebiet($conn, $gebiet_id);
|
||||
|
||||
echo "<hr />";
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'?gebiet_id='.$gebiet_id.'" method="POST">';
|
||||
echo '<table>';
|
||||
|
||||
echo '<tr>';
|
||||
//Kurzbz
|
||||
echo '<td>Kurzbz</td><td><input type="text" maxlength="10" size="10" name="kurzbz" value="'.htmlentities($gebiet->kurzbz).'"></td>';
|
||||
echo '</tr><tr>';
|
||||
//Bezeichnung
|
||||
echo '<td>Bezeichnung</td><td><input type="text" maxlength="50" name="bezeichnung" value="'.htmlentities($gebiet->bezeichnung).'"></td>';
|
||||
echo '</tr><tr>';
|
||||
//Beschreibung
|
||||
echo '<td>Beschreibung</td><td><textarea name="beschreibung">'.htmlentities($gebiet->beschreibung).'</textarea></td>';
|
||||
echo '</tr><tr>';
|
||||
//Zeit
|
||||
echo '<td>Zeit</td><td><input type="text" name="zeit" size="8" maxlength="8" value="'.htmlentities($gebiet->zeit).'"> hh:mm:ss</td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Multiple Response</td><td><input type="checkbox" name="multipleresponse" '.($gebiet->multipleresponse?'checked="checked"':'').'></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Kategorien</td><td><input type="checkbox" name="kategorien" '.($gebiet->kategorien?'checked="checked"':'').'></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Zufällige Fragereihenfolge</td><td><input type="checkbox" name="zufallfrage" '.($gebiet->zufallfrage?'checked="checked"':'').'></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Zufällige Vorschlagreihenfolge</td><td><input type="checkbox" name="zufallvorschlag" '.($gebiet->zufallvorschlag?'checked="checked"':'').'></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Levelgleichverteilung</td><td><input type="checkbox" name="levelgleichverteilung" '.($gebiet->levelgleichverteilung?'checked="checked"':'').'></td>';
|
||||
echo '</tr><tr>';
|
||||
// empfohlene maximalpunkte berechnen und anzeigen
|
||||
$maximalpunkte = $gebiet->berechneMaximalpunkte($gebiet_id);
|
||||
if($gebiet->maxpunkte!=$maximalpunkte)
|
||||
$hinweis = '<span class="error">empfohlene Maximalpunkteanzahl: '.$maximalpunkte.'</span>';
|
||||
else
|
||||
$hinweis ='';
|
||||
echo '<td>Maximale Punkteanzahl</td><td><input type="text" size="5" maxlength="5" name="maxpunkte" value="'.htmlentities($gebiet->maxpunkte).'">'.$hinweis.'</td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Maximale Fragenanzahl</td><td><input type="text" size="5" maxlength="5" name="maxfragen" value="'.htmlentities($gebiet->maxfragen).'"></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Start Level</td><td><input type="text" size="5" maxlength="5" name="level_start" value="'.htmlentities($gebiet->level_start).'"></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Richtige Fragen bis Levelaufstieg</td><td><input type="text" size="5" maxlength="5" name="level_sprung_auf" value="'.htmlentities($gebiet->level_sprung_auf).'"></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Falsche Fragen bis Levelabstieg</td><td><input type="text" size="5" maxlength="5" name="level_sprung_ab" value="'.htmlentities($gebiet->level_sprung_ab).'"></td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td></td><td><input type="submit" name="speichern" value="Speichern"></td>';
|
||||
echo '</tr></table>';
|
||||
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
echo '</body></html>';
|
||||
?>
|
||||
+320
-85
@@ -19,22 +19,26 @@
|
||||
* Andreas Oesterreicher <[email protected]> and
|
||||
* Rudolf Hangl <[email protected]>.
|
||||
*/
|
||||
/**
|
||||
* Administrationsseite fuer das Testtool
|
||||
*/
|
||||
|
||||
header("Content-type: application/xhtml+xml");
|
||||
header('Content-type: application/xhtml+xml');
|
||||
|
||||
// Oberflaeche zur Aenderung von Beispielen und Upload von Bildern
|
||||
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');
|
||||
|
||||
$PHP_SELF=$_SERVER["PHP_SELF"];
|
||||
$PHP_SELF=$_SERVER['PHP_SELF'];
|
||||
|
||||
session_start();
|
||||
|
||||
//wandelt einen String in HEX-Werte um
|
||||
function strhex($string)
|
||||
{
|
||||
$hex="";
|
||||
$hex='';
|
||||
for ($i=0;$i<strlen($string);$i++)
|
||||
$hex.=(strlen(dechex(ord($string[$i])))<2)? "0".dechex(ord($string[$i])): dechex(ord($string[$i]));
|
||||
return $hex;
|
||||
@@ -42,13 +46,13 @@ function strhex($string)
|
||||
|
||||
//Connection Herstellen
|
||||
if(!$conn = pg_pconnect(CONN_STRING))
|
||||
die('Fehler beim oeffnen der Datenbankverbindung');
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
//$user=get_uid();
|
||||
//$rechte = new benutzerberechtigung($conn);
|
||||
//$rechte->getBerechtigungen($user);
|
||||
//if(!$rechte->isBerechtigt('admin'))
|
||||
// die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
$user=get_uid();
|
||||
$rechte = new benutzerberechtigung($conn);
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('admin'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
if(isset($_GET['gebiet_id']))
|
||||
$gebiet_id = $_GET['gebiet_id'];
|
||||
@@ -60,11 +64,6 @@ if(isset($_GET['nummer']))
|
||||
else
|
||||
$nummer = '';
|
||||
|
||||
if(isset($_GET['gruppe_kurzbz']))
|
||||
$gruppe_kurzbz = $_GET['gruppe_kurzbz'];
|
||||
else
|
||||
$gruppe_kurzbz = '';
|
||||
|
||||
if(isset($_GET['frage_id']))
|
||||
$frage_id = $_GET['frage_id'];
|
||||
else
|
||||
@@ -77,13 +76,14 @@ else
|
||||
|
||||
$save_vorschlag_error=false;
|
||||
?>
|
||||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/mathml.xsl"?>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1" />
|
||||
<link href="../../../skin/cis.css" rel="stylesheet" type="text/css" />
|
||||
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8" />
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css" />
|
||||
<script language="Javascript">
|
||||
//Vorschau anzeigen
|
||||
function preview()
|
||||
@@ -91,11 +91,33 @@ function preview()
|
||||
document.getElementById('vorschau').innerHTML = document.getElementById('text').value;
|
||||
}
|
||||
</script>
|
||||
<style type="text/css">
|
||||
|
||||
textarea {
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Admin - Fragen bearbeiten</h1>
|
||||
<h1>
|
||||
<div style="float:left">Testtool - Administrationsseite</div>
|
||||
<div style="text-align:right"><a href="auswertung.php" class="Item">Auswertung</a></div>
|
||||
</h1>
|
||||
<?php
|
||||
|
||||
// aendern der Sprache
|
||||
if(isset($_GET['type']) && $_GET['type']=='changesprache')
|
||||
{
|
||||
$_SESSION['sprache']=$_GET['sprache'];
|
||||
}
|
||||
|
||||
if(!isset($_SESSION['sprache']))
|
||||
$_SESSION['sprache']='German';
|
||||
|
||||
$sprache = $_SESSION['sprache'];
|
||||
|
||||
//Bei Upload des Bildes
|
||||
if(isset($_POST['submitbild']))
|
||||
{
|
||||
@@ -108,10 +130,6 @@ if(isset($_POST['submitbild']))
|
||||
//--check that it's a jpeg or gif or png
|
||||
if ($ext=='gif' || $ext=='png' || $ext=='jpg' || $ext=='jpeg')
|
||||
{
|
||||
//Funktioniert nur mit Mozilla
|
||||
//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');
|
||||
@@ -122,12 +140,12 @@ if(isset($_POST['submitbild']))
|
||||
$content = strhex($content);
|
||||
|
||||
$frage = new frage($conn);
|
||||
if($frage->load($_GET['frage_id']))
|
||||
if($frage->getFrageSprache($_GET['frage_id'], $sprache))
|
||||
{
|
||||
//HEX Wert in die Datenbank speichern
|
||||
$frage->bild = $content;
|
||||
$frage->new = false;
|
||||
if($frage->save())
|
||||
if($frage->save_fragesprache())
|
||||
echo "<b>Bild gespeichert</b><br />";
|
||||
else
|
||||
echo '<b>'.$frage->errormsg.'</b><br />';
|
||||
@@ -139,6 +157,45 @@ if(isset($_POST['submitbild']))
|
||||
echo "<b>File ist kein gueltiges Bild</b><br />";
|
||||
}
|
||||
}
|
||||
//Bei Upload eines Audiofiles
|
||||
if(isset($_POST['submitaudio']))
|
||||
{
|
||||
if(isset($_FILES['audio']['tmp_name']))
|
||||
{
|
||||
//Extension herausfiltern
|
||||
$ext = explode('.',$_FILES['audio']['name']);
|
||||
$ext = strtolower($ext[count($ext)-1]);
|
||||
|
||||
//--check that it's a mp3
|
||||
if ($ext=='mp3' || $ext=='ogg')
|
||||
{
|
||||
$filename = $_FILES['audio']['tmp_name'];
|
||||
//File oeffnen
|
||||
$fp = fopen($filename,'r');
|
||||
//auslesen
|
||||
$content = fread($fp, filesize($filename));
|
||||
fclose($fp);
|
||||
//in HEX-Werte umrechnen
|
||||
$content = strhex($content);
|
||||
|
||||
$frage = new frage($conn);
|
||||
if($frage->getFrageSprache($_GET['frage_id'], $sprache))
|
||||
{
|
||||
//HEX Wert in die Datenbank speichern
|
||||
$frage->audio = $content;
|
||||
$frage->new = false;
|
||||
if($frage->save_fragesprache())
|
||||
echo "<b>Audio gespeichert</b><br />";
|
||||
else
|
||||
echo '<b>'.$frage->errormsg.'</b><br />';
|
||||
}
|
||||
else
|
||||
echo '<b>'.$frage->errormsg.'</b><br />';
|
||||
}
|
||||
else
|
||||
echo "<b>Es duerfen nur mp3 Dateien hochgeladen werden</b><br />";
|
||||
}
|
||||
}
|
||||
|
||||
//Speichern der Frage-Daten
|
||||
if(isset($_POST['submitdata']))
|
||||
@@ -146,13 +203,28 @@ if(isset($_POST['submitdata']))
|
||||
$frage = new frage($conn);
|
||||
if($frage->load($_GET['frage_id']))
|
||||
{
|
||||
$frage->text = $_POST['text'];
|
||||
$frage->demo = (isset($_POST['demo'])?true:false);
|
||||
$frage->loesung = $_POST['loesung'];
|
||||
$frage->demo = isset($_POST['demo']);
|
||||
$frage->nummer = $_POST['nummer'];
|
||||
$frage->level = $_POST['level'];
|
||||
$frage->new = false;
|
||||
|
||||
if($frage->save())
|
||||
{
|
||||
echo "<b>Daten gespeichert</b><br />";
|
||||
if(!$frage->getFrageSprache($frage->frage_id, $sprache))
|
||||
{
|
||||
$frage->new=true;
|
||||
}
|
||||
|
||||
$frage->text = $_POST['text'];
|
||||
$frage->sprache = $sprache;
|
||||
|
||||
if($frage->save_fragesprache())
|
||||
{
|
||||
echo "<b>Daten gespeichert</b><br />";
|
||||
$nummer = $frage->nummer;
|
||||
}
|
||||
else
|
||||
echo '<b>Fehler:'.$frage->errormsg.'</b><br />';
|
||||
}
|
||||
else
|
||||
echo '<b>'.$frage->errormsg.'</b><br />';
|
||||
@@ -164,8 +236,8 @@ if(isset($_POST['submitdata']))
|
||||
//Speichern eines Vorschlages
|
||||
if(isset($_POST['submitvorschlag']))
|
||||
{
|
||||
$content='';
|
||||
if(isset($_FILES['bild']['tmp_name']))
|
||||
$bildcontent='';
|
||||
if(isset($_FILES['bild']['tmp_name']) && is_uploaded_file($_FILES['bild']['tmp_name']))
|
||||
{
|
||||
//Extension herausfiltern
|
||||
$ext = explode('.',$_FILES['bild']['name']);
|
||||
@@ -178,19 +250,37 @@ if(isset($_POST['submitvorschlag']))
|
||||
//File oeffnen
|
||||
$fp = fopen($filename,'r');
|
||||
//auslesen
|
||||
$content = fread($fp, filesize($filename));
|
||||
$bildcontent = fread($fp, filesize($filename));
|
||||
fclose($fp);
|
||||
//in HEX-Werte umrechnen
|
||||
$content = strhex($content);
|
||||
$bildcontent = strhex($bildcontent);
|
||||
}
|
||||
else
|
||||
echo "<b>Datei ist kein Bild!</b><br />";
|
||||
}
|
||||
else
|
||||
|
||||
$audiocontent='';
|
||||
if(isset($_FILES['audio']['tmp_name']) && is_uploaded_file($_FILES['audio']['tmp_name']))
|
||||
{
|
||||
echo "kein Bild";
|
||||
}
|
||||
//Extension herausfiltern
|
||||
$ext = explode('.',$_FILES['audio']['name']);
|
||||
$ext = strtolower($ext[count($ext)-1]);
|
||||
|
||||
//--check that it's a jpeg or gif or png
|
||||
if ($ext=='mp3')
|
||||
{
|
||||
$filename = $_FILES['audio']['tmp_name'];
|
||||
//File oeffnen
|
||||
$fp = fopen($filename,'r');
|
||||
//auslesen
|
||||
$audiocontent = fread($fp, filesize($filename));
|
||||
fclose($fp);
|
||||
//in HEX-Werte umrechnen
|
||||
$audiocontent = strhex($audiocontent);
|
||||
}
|
||||
else
|
||||
echo "<b>Datei ist kein Bild!</b><br />";
|
||||
}
|
||||
$vorschlag = new vorschlag($conn);
|
||||
$error=false;
|
||||
|
||||
@@ -208,7 +298,11 @@ if(isset($_POST['submitvorschlag']))
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vorschlag->new = true;
|
||||
$vorschlag->insertamum = date('Y-m-d H:i:s');
|
||||
$vorschlag->insertvon = $user;
|
||||
}
|
||||
if($_POST['nummer']=='' || !is_numeric($_POST['nummer']))
|
||||
{
|
||||
$error = true;
|
||||
@@ -217,14 +311,28 @@ if(isset($_POST['submitvorschlag']))
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$vorschlag->bild = $content;
|
||||
$vorschlag->bild = $bildcontent;
|
||||
$vorschlag->audio = $audiocontent;
|
||||
$vorschlag->frage_id = $_GET['frage_id'];
|
||||
$vorschlag->nummer = $_POST['nummer'];
|
||||
$vorschlag->antwort = strtoupper($_POST['antwort']);
|
||||
$vorschlag->punkte = $_POST['punkte'];
|
||||
$vorschlag->text = $_POST['text'];
|
||||
|
||||
$vorschlag->sprache = $sprache;
|
||||
$vorschlag->updateamum = date('Y-m-d H:i:s');
|
||||
$vorschlag->updatevon = $user;
|
||||
|
||||
if($vorschlag->save())
|
||||
echo "<b>Vorschlag gespeichert</b><br />";
|
||||
{
|
||||
if($vorschlag->save_vorschlagsprache())
|
||||
{
|
||||
echo "<b>Vorschlag gespeichert</b><br />";
|
||||
}
|
||||
else
|
||||
{
|
||||
$save_vorschlag_error=true;
|
||||
echo "Fehler beim Speichern von Vorschlagsprache: $vorschlag->errormsg<br />";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$save_vorschlag_error=true;
|
||||
@@ -242,87 +350,201 @@ if(isset($_GET['type']) && $_GET['type']=='delete' && isset($_GET['vorschlag_id'
|
||||
echo '<b>'.$vs->errormsg.'</b><br />';
|
||||
$vorschlag_id='';
|
||||
}
|
||||
|
||||
// anlegen einer neuen Frage
|
||||
if(isset($_GET['type']) && $_GET['type']=='neuefrage')
|
||||
{
|
||||
$frage_obj = new frage($conn);
|
||||
|
||||
$frage_obj->gebiet_id = $_GET['gebiet_id'];
|
||||
$frage_obj->nummer=999;
|
||||
$frage_obj->demo=false;
|
||||
$frage_obj->insertamum = date('Y-m-d H:i:s');
|
||||
$frage_obj->insertvon = $user;
|
||||
$frage_obj->sprache = $sprache;
|
||||
$frage_obj->new = true;
|
||||
if($frage_obj->save())
|
||||
{
|
||||
if($frage_obj->save_fragesprache())
|
||||
{
|
||||
echo 'Frage wurde erfolgreich angelegt';
|
||||
$nummer=999;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">Fehler beim Speichern der FrageSprache: '.$frage_obj->errormsg.'</span>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">Fehler beim Speichern der Frage: '.$frage_obj->errormsg.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
//Gebiet pruefen
|
||||
if(isset($_GET['type']) && $_GET['type']=='gebietpruefen' && isset($_GET['gebiet_id']))
|
||||
{
|
||||
$gebiet = new gebiet($conn, $gebiet_id);
|
||||
|
||||
if($gebiet->check_gebiet($gebiet_id))
|
||||
{
|
||||
echo "<b>Das Gebiet $gebiet->bezeichnung wurde erfolgreich ueberprueft</b>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<b>Bei der Ueberpruefung des Gebiets '$gebiet->bezeichnung' sind folgende Fehler aufgetreten:<br /></b>";
|
||||
echo nl2br($gebiet->errormsg);
|
||||
echo '<br /><br />';
|
||||
}
|
||||
|
||||
$maxpunkte = $gebiet->berechneMaximalpunkte($gebiet_id);
|
||||
if($gebiet->maxpunkte!=$maxpunkte)
|
||||
{
|
||||
echo '<br /><span class="error">die empfohlene Punkteanzahl betraegt '.$maxpunkte.' Punkte anstatt '.$gebiet->maxpunkte.' Punkte</span>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '<table width="100%"><tr><td>';
|
||||
|
||||
//Liste der Gebiete
|
||||
$qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung";
|
||||
$result = pg_query($conn, $qry);
|
||||
while($row = pg_fetch_object($result))
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if($gebiet_id=='')
|
||||
$gebiet_id = $row->gebiet_id;
|
||||
if($gebiet_id==$row->gebiet_id)
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$row->gebiet_id' class='Item'><u>$row->bezeichnung</u></a> -";
|
||||
else
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$row->gebiet_id' class='Item'>$row->bezeichnung</a> -";
|
||||
echo 'Gebiet: <select onchange="window.location.href=\''.$PHP_SELF.'?gebiet_id=\'+this.value;">';
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($gebiet_id=='')
|
||||
$gebiet_id = $row->gebiet_id;
|
||||
|
||||
if($gebiet_id==$row->gebiet_id)
|
||||
$selected='selected="selected"';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
echo '<option value="'.$row->gebiet_id.'" '.$selected.'>'.$row->bezeichnung.'</option>'."\n";
|
||||
}
|
||||
echo '</select>';
|
||||
}
|
||||
echo '<br /><br />';
|
||||
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&type=gebietpruefen' class='Item'>Pruefen</a> | ";
|
||||
echo " <a href='edit_gebiet.php?gebiet_id=$gebiet_id' class='Item'>Bearbeiten</a>";
|
||||
echo '</td><td align="right">';
|
||||
|
||||
//Liste der Sprachen
|
||||
|
||||
$qry = "SELECT sprache FROM public.tbl_sprache ORDER BY sprache DESC";
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($sprache=='')
|
||||
$sprache = $row->sprache;
|
||||
if($sprache==$row->sprache)
|
||||
$selected='style="border:1px solid black;"';
|
||||
else
|
||||
$selected='';
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&type=changesprache&sprache=$row->sprache' class='Item' $selected><img src='../bild.php?src=flag&sprache=$row->sprache' alt='$row->sprache' title='$row->sprache'/></a>";
|
||||
}
|
||||
}
|
||||
echo '</td></tr></table>';
|
||||
echo '<br />';
|
||||
|
||||
// Liste der Fragen
|
||||
$qry = "SELECT distinct nummer FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' ORDER BY nummer";
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
echo 'Nummer: ';
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($nummer=='')
|
||||
$nummer = $row->nummer;
|
||||
|
||||
if($nummer==$row->nummer)
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$row->nummer&gruppe_kurzbz=$gruppe_kurzbz' class='Item'><u>$row->nummer</u></a> -";
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$row->nummer' class='Item'><u>$row->nummer</u></a> -";
|
||||
else
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$row->nummer&gruppe_kurzbz=$gruppe_kurzbz' class='Item'>$row->nummer</a> -";
|
||||
}
|
||||
}
|
||||
|
||||
echo '<br /><br />';
|
||||
//Liste der Gruppen
|
||||
$qry = "SELECT gruppe_kurzbz FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND nummer='".addslashes($nummer)."' ORDER BY gruppe_kurzbz";
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($gruppe_kurzbz=='')
|
||||
$gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
if($gruppe_kurzbz==$row->gruppe_kurzbz)
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_kurzbz=$row->gruppe_kurzbz' class='Item'><u>$row->gruppe_kurzbz</u></a> -";
|
||||
else
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_kurzbz=$row->gruppe_kurzbz' class='Item'>$row->gruppe_kurzbz</a> -";
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$row->nummer' class='Item'>$row->nummer</a> -";
|
||||
}
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&type=neuefrage' class='Item'>neue Frage hinzufuegen</a>";
|
||||
}
|
||||
|
||||
echo "\n\n<br />";
|
||||
|
||||
//Fragen holen
|
||||
$frage = new frage($conn);
|
||||
$frage->getFrage($gebiet_id, $nummer, $gruppe_kurzbz);
|
||||
if($frage->frage_id!='')
|
||||
$frage->getFragen($gebiet_id, $nummer);
|
||||
|
||||
if(count($frage->result)==1)
|
||||
{
|
||||
$frage_id = $frage->result[0]->frage_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Wenn fuer diese Nummer mehrere Fragen vorhanden sind,
|
||||
//koennen diese extra ausgewaehlt werden
|
||||
echo 'FrageID: ';
|
||||
foreach ($frage->result as $row)
|
||||
{
|
||||
if($frage_id=='')
|
||||
$frage_id=$row->frage_id;
|
||||
|
||||
if($frage_id==$row->frage_id)
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$row->nummer&frage_id=$row->frage_id' class='Item'><u>$row->frage_id</u></a> -";
|
||||
else
|
||||
echo "<a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$row->nummer&frage_id=$row->frage_id' class='Item'>$row->frage_id</a> -";
|
||||
}
|
||||
}
|
||||
|
||||
if($frage_id!='')
|
||||
{
|
||||
$frage->load($frage_id);
|
||||
$frage->getFrageSprache($frage_id, $sprache);
|
||||
|
||||
echo "<table><tr><td>";
|
||||
//Fragen
|
||||
echo "<table>";
|
||||
echo "<tr>";
|
||||
//Upload Feld fuer Bild
|
||||
echo "<td valign='bottom'>
|
||||
<form method='POST' enctype='multipart/form-data' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_kurzbz=$gruppe_kurzbz&frage_id=$frage->frage_id'>
|
||||
<form method='POST' enctype='multipart/form-data' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&frage_id=$frage->frage_id'>
|
||||
Bild: <input type='file' name='bild' />
|
||||
<input type='submit' name='submitbild' value='Upload' />
|
||||
</form>
|
||||
</td></tr>";
|
||||
</td>
|
||||
<td>
|
||||
<form method='POST' enctype='multipart/form-data' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&frage_id=$frage->frage_id'>
|
||||
Audio: <input type='file' name='audio' />
|
||||
<input type='submit' name='submitaudio' value='Upload' />
|
||||
</form>
|
||||
</td>
|
||||
</tr>";
|
||||
//Wenn ein Bild vorhanden ist, dann anzeigen
|
||||
if($frage->bild!='')
|
||||
{
|
||||
echo "\n<tr><td width='400' height='300'><img src='../bild.php?src=frage&frage_id=$frage->frage_id' width='400' height='300' /></td>";
|
||||
echo "\n<tr><td width='400' height='300'><img src='../bild.php?src=frage&frage_id=$frage->frage_id&sprache=$sprache' width='400' height='300' />";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\n<tr><td align='center' width='400' height='300' style='background: #DDDDDD;'>Kein Bild vorhanden</td>\n";
|
||||
//echo "\n<tr><td align='center' width='400' height='300' style='background: #DDDDDD;'>Kein Bild vorhanden\n";
|
||||
echo "\n<tr><td align='center' width='400' height='300' style='background: #DDDDDD;'>\n";
|
||||
if($frage->audio=='')
|
||||
echo "Kein Bild vorhanden\n";
|
||||
}
|
||||
if($frage->audio!='')
|
||||
{
|
||||
echo '<br /><embed autostart="false" src="../sound.php?src=frage&frage_id='.$frage->frage_id.'&sprache='.$sprache.'" height="20" width="250"/>';
|
||||
}
|
||||
echo '</td>';
|
||||
//Zusaetzliche EingabeFelder anzeigen
|
||||
echo "<td>";
|
||||
echo "<form method='POST' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_kurzbz=$gruppe_kurzbz&frage_id=$frage->frage_id'>";
|
||||
echo "<form method='POST' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&frage_id=$frage_id'>";
|
||||
echo "<table>";
|
||||
//Bei Aenderungen im Textfeld werden diese sofort in der Vorschau angezeigt
|
||||
echo "<tr><td colspan='2'>\n<textarea name='text' id='text' cols='40' rows='20' oninput='preview()'><![CDATA[$frage->text]]></textarea>\n</td></tr>";
|
||||
echo "<tr><td>Demo <input type='checkbox' name='demo' ".($frage->demo?'checked="true"':'')." />
|
||||
Loesung <input type='text' name='loesung' value='$frage->loesung' size='1' /></td>
|
||||
Level <input type='text' name='level' value='$frage->level' size='1' />
|
||||
Nummer <input type='text' name='nummer' value='$frage->nummer' size='1' /></td>
|
||||
<td align='right'><input type='submit' value='Speichern' name='submitdata' /></td>";
|
||||
echo "</tr></table>";
|
||||
echo "</form>";
|
||||
@@ -335,49 +557,62 @@ if($frage->frage_id!='')
|
||||
$vorschlag = new vorschlag($conn);
|
||||
|
||||
if($vorschlag_id!='')
|
||||
if(!$vorschlag->load($vorschlag_id))
|
||||
if(!$vorschlag->load($vorschlag_id, $sprache))
|
||||
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->punkte = $_POST['punkte'];
|
||||
$vorschlag->text = $_POST['text'];
|
||||
$vorschlag->bild = '';
|
||||
}
|
||||
//Vorschlag
|
||||
echo '<b>Vorschlag'.($vorschlag_id!=''?' Edit':'').'</b><br /><br />';
|
||||
echo "<form method='POST' enctype='multipart/form-data' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_kurzbz=$gruppe_kurzbz&frage_id=$frage->frage_id'>";
|
||||
echo "<form method='POST' enctype='multipart/form-data' action='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&frage_id=$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 "<td>Punkte</td><td><input type='text' size='8' name='punkte' value='$vorschlag->punkte' /></td>";
|
||||
echo '</tr>';
|
||||
echo '<tr>';
|
||||
echo '<td>Text:</td><td><textarea name="text" id="text" rows="20" cols="40" oninput="preview()"><![CDATA['.$vorschlag->text."]]></textarea>\n</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>';
|
||||
echo '<tr>';
|
||||
//Upload Feld fuer Audio
|
||||
echo "<td>Audio:</td><td><input type='file' name='audio' /></td></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' />".($vorschlag_id!=''?"<input type='button' value='Abbrechen' onclick=\"document.location.href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&gruppe_kurzbz=$gruppe_kurzbz&frage_id=$frage->frage_id'\" />":'')."</td></tr>";
|
||||
echo "<tr><td colspan='2' align='right'><input type='submit' name='submitvorschlag' value='Speichern' />".($vorschlag_id!=''?"<input type='button' value='Abbrechen' onclick=\"document.location.href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&frage_id=$frage->frage_id'\" />":'')."</td></tr>";
|
||||
echo "</table>";
|
||||
echo "</form>";
|
||||
|
||||
echo '</td></tr></table>';
|
||||
|
||||
$vorschlag = new vorschlag($conn);
|
||||
$vorschlag->getVorschlag($frage->frage_id);
|
||||
$vorschlag->getVorschlag($frage_id, $sprache, false);
|
||||
$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>';
|
||||
echo '<table><tr class="liste"><th>Nummer</th><th>Punkte</th><th>Text</th><th>Bild</th><th>Audio</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_kurzbz=$gruppe_kurzbz&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_kurzbz=$gruppe_kurzbz&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 "<tr class='liste".($i%2)."'><td>$vs->nummer</td>
|
||||
<td align='right'>$vs->punkte</td>
|
||||
<td>$vs->text</td>
|
||||
<td><img src='../bild.php?src=vorschlag&vorschlag_id=$vs->vorschlag_id&sprache=$sprache' /></td>
|
||||
<td>";
|
||||
if($vs->audio!='')
|
||||
echo "<embed autostart='false' src='../sound.php?src=vorschlag&vorschlag_id=".$vs->vorschlag_id."&sprache=".$sprache."' height='20' width='150'/>";
|
||||
echo " </td>
|
||||
<td><a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&frage_id=$frage->frage_id&vorschlag_id=$vs->vorschlag_id'>edit</a></td>
|
||||
<td><a href='$PHP_SELF?gebiet_id=$gebiet_id&nummer=$nummer&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>';
|
||||
}
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Unbenanntes Dokument</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<link rel="stylesheet" href="style/stylesheet.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table width="90%" border="1" cellspacing="0" bordercolor="#CCCCCC">
|
||||
<tr>
|
||||
<td><table width="100%" border="0">
|
||||
<tr bgcolor="#CCCCCC">
|
||||
<td height="20" colspan="11" align="center"><strong>Auswertung</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td nowrap> </td>
|
||||
<td colspan="3" align="center" nowrap>vor Gefährdungen</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="1%" nowrap> </td>
|
||||
<td width="1%"> </td>
|
||||
<td align="center" width="1%"><strong>Punkte</strong></td>
|
||||
<td align="center" width="1%" nowrap><strong>Max-Punkte</strong></td>
|
||||
<td align="center" width="1%" nowrap><strong>Anzahl der Gefährdungen</strong></td>
|
||||
<td align="center" width="1%"> </td>
|
||||
<td align="center" width="1%"><strong>geschützt</strong></td>
|
||||
<td align="center" width="1%" nowrap ><strong>teilweise geschützt</strong></td>
|
||||
<td align="center" width="1%" nowrap><strong>nicht geschützt</strong></td>
|
||||
<td > </td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap>IT-Grundschutz</td>
|
||||
<td nowrap>IT-Sicherheitsmanagement </td>
|
||||
<td align="center">10</td>
|
||||
<td align="center">20</td>
|
||||
<td align="center">10</td>
|
||||
<td align="center"> </td>
|
||||
<td align="center">4</td>
|
||||
<td align="center">2</td>
|
||||
<td align="center">4</td>
|
||||
<td bgcolor="#FF0000"> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Organisation</td>
|
||||
<td align="center">38</td>
|
||||
<td align="center">40</td>
|
||||
<td align="center">20</td>
|
||||
<td align="center"> </td>
|
||||
<td align="center">18</td>
|
||||
<td align="center">2</td>
|
||||
<td align="center">0</td>
|
||||
<td bgcolor="#00FF00"> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Personal</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Notfallvorsorge-Konzept</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Datensicherungskonzept</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11"><hr></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gefährdungen</td>
|
||||
<td> </td>
|
||||
<td align="center"><strong>Punkte</strong></td>
|
||||
<td align="center" nowrap><strong>Max-Punkte</strong></td>
|
||||
<td align="center" nowrap><strong>Anzahl der Gefährdungen</strong></td>
|
||||
<td align="center"> </td>
|
||||
<td align="center"><strong>geschützt</strong></td>
|
||||
<td align="center" nowrap ><strong>teilweise geschützt</strong></td>
|
||||
<td align="center" nowrap><strong>nicht geschützt</strong></td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Feuer</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Wasser</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -41,12 +41,17 @@ if(!$conn = pg_pconnect(CONN_STRING))
|
||||
$qry = '';
|
||||
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'])."'";
|
||||
$qry = "SELECT bild FROM testtool.tbl_frage_sprache WHERE frage_id='".addslashes($_GET['frage_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
}
|
||||
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'])."'";
|
||||
$qry = "SELECT bild FROM testtool.tbl_vorschlag_sprache WHERE vorschlag_id='".addslashes($_GET['vorschlag_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
}
|
||||
elseif(isset($_GET['src']) && $_GET['src']=='flag' && isset($_GET['sprache']))
|
||||
{
|
||||
$qry = "SELECT flagge as bild FROM public.tbl_sprache WHERE sprache='".addslashes($_GET['sprache'])."'";
|
||||
}
|
||||
|
||||
else
|
||||
echo 'Unkown type';
|
||||
|
||||
|
||||
+220
-108
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
/* Copyright (C) 2009 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
|
||||
@@ -16,28 +16,30 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]> and
|
||||
* Rudolf Hangl <[email protected]>.
|
||||
* Andreas Oesterreicher <[email protected]>,
|
||||
* Rudolf Hangl <[email protected]> and
|
||||
* Gerald Simane-Sequens <[email protected]>
|
||||
*/
|
||||
/**
|
||||
* Formular zum Beantworten der Fragen
|
||||
*/
|
||||
|
||||
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');
|
||||
require_once('../../include/gebiet.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');
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
if(isset($_GET['gebiet_id']))
|
||||
$gebiet_id = $_GET['gebiet_id'];
|
||||
@@ -56,8 +58,8 @@ $MAX_VORSCHLAEGE_PRO_ZEILE=4;
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1" />
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css" />
|
||||
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-15" />
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css" />
|
||||
<script language="Javascript" type="text/javascript">
|
||||
//<![CDATA[
|
||||
function killChildNodes(an_element)
|
||||
@@ -135,75 +137,135 @@ $MAX_VORSCHLAEGE_PRO_ZEILE=4;
|
||||
if(!isset($_SESSION['pruefling_id']))
|
||||
die('Bitte zuerst anmelden!');
|
||||
|
||||
//Gruppe des Prueflings holen
|
||||
$qry = "SELECT * FROM testtool.tbl_pruefling WHERE pruefling_id='".addslashes($_SESSION['pruefling_id'])."'";
|
||||
$gebiet = new gebiet($conn, $gebiet_id);
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$gruppe = $row->gruppe_kurzbz;
|
||||
}
|
||||
else
|
||||
die('Pruefling wurde nicht gefunden');
|
||||
}
|
||||
else
|
||||
die('Pruefling wurde nicht gefunden');
|
||||
if($gebiet->level_start!='')
|
||||
$levelgebiet=true;
|
||||
else
|
||||
$levelgebiet=false;
|
||||
|
||||
list($stunde, $minute, $sekunde) = split(':',$gebiet->zeit);
|
||||
|
||||
//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())
|
||||
//Fragenpool generieren
|
||||
$frage = new frage($conn);
|
||||
if(!$frage->generateFragenpool($_SESSION['pruefling_id'], $gebiet_id))
|
||||
die('Fehler beim Generieren des Fragenpools:'.$frage->errormsg);
|
||||
|
||||
//Erste Frage des Pools holen
|
||||
if(!$frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id']))
|
||||
die('Es wurde keine Frage gefunden');
|
||||
|
||||
//Beginnzeit Speichern
|
||||
$prueflingfrage = new frage($conn);
|
||||
if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id))
|
||||
die('Fehler:'.$prueflingfrage->errormsg);
|
||||
|
||||
$prueflingfrage->begintime = date('Y-m-d H:i:s');
|
||||
if(!$prueflingfrage->save_prueflingfrage(false))
|
||||
die('Fehler beim Startvorgang');
|
||||
}
|
||||
|
||||
//Speichern einer Antwort
|
||||
if(isset($_POST['submitantwort']) && isset($_GET['frage_id']))
|
||||
{
|
||||
$antwort = new antwort($conn);
|
||||
if($_POST['antwort_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
|
||||
$error=false;
|
||||
|
||||
pg_query($conn, '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='".addslashes($_GET['frage_id'])."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."')";
|
||||
|
||||
pg_query($conn, $qry);
|
||||
|
||||
// Antwort nur Speichern wenn eine Antwort gewaehlt wurde
|
||||
if(isset($_POST['vorschlag_id']) && $_POST['vorschlag_id']!='')
|
||||
{
|
||||
if(!$antwort->load($_POST['antwort_id']))
|
||||
die('Antwort konnte nicht geladen werden');
|
||||
else
|
||||
$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
|
||||
$vorschlaege = $_POST['vorschlag_id'];
|
||||
|
||||
//alle Antworten Speichern
|
||||
foreach ($vorschlaege as $vorschlag_id)
|
||||
{
|
||||
$antwort->new = false;
|
||||
$antwort->antwort_id = $_POST['antwort_id'];
|
||||
if($vorschlag_id!='')
|
||||
{
|
||||
$antwort = new antwort($conn);
|
||||
|
||||
$antwort->new = true;
|
||||
$antwort->vorschlag_id = $vorschlag_id;
|
||||
$antwort->pruefling_id = $_SESSION['pruefling_id'];
|
||||
|
||||
if(!$antwort->save())
|
||||
{
|
||||
$errormsg = $antwort->errormsg;
|
||||
$error=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
//Endzeit der Frage eintragen
|
||||
$prueflingfrage = new frage($conn);
|
||||
if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id))
|
||||
{
|
||||
$errormsg = $antwort->errormsg;
|
||||
$error = true;
|
||||
}
|
||||
$prueflingfrage->endtime = date('Y-m-d H:i:s');
|
||||
|
||||
if(!$prueflingfrage->save_prueflingfrage(false))
|
||||
{
|
||||
$errormsg = $prueflingfrage->errormsg;
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
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
|
||||
|
||||
if($error)
|
||||
{
|
||||
$frage = new frage($conn);
|
||||
$frage_id = $frage->getNextFrage($gebiet_id, $gruppe, $frage_id);
|
||||
pg_query($conn, 'ROLLBACK;');
|
||||
die('Fehler:'.$errormsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($conn, 'COMMIT;');
|
||||
}
|
||||
|
||||
$frage = new frage($conn);
|
||||
|
||||
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 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)."'";
|
||||
$qry = "SELECT begintime
|
||||
FROM
|
||||
testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE pruefling_id='".addslashes($_SESSION['pruefling_id'])."' AND gebiet_id='".addslashes($gebiet_id)."'
|
||||
ORDER BY begintime ASC LIMIT 1";
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->anzahl>0)
|
||||
if($row->begintime!='')
|
||||
{
|
||||
//Hat bereits Fragen beantwortet -> Frage anzeigen
|
||||
$demo=false;
|
||||
@@ -215,31 +277,28 @@ if($result = pg_query($conn, $qry))
|
||||
}
|
||||
}
|
||||
else
|
||||
die('error');
|
||||
$demo=true;
|
||||
}
|
||||
else
|
||||
die('error');
|
||||
|
||||
$info='';
|
||||
$qry_pruefling = "SELECT vorname, nachname, stg_bez, gruppe_kurzbz FROM testtool.vw_pruefling WHERE pruefling_id='".$_SESSION['pruefling_id']."'";
|
||||
|
||||
//Name und Studiengang anzeigen
|
||||
$qry_pruefling = "SELECT vorname, nachname, stg_bez FROM testtool.vw_pruefling
|
||||
WHERE pruefling_id='".addslashes($_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";
|
||||
$info = "$row_pruefling->vorname $row_pruefling->nachname, $row_pruefling->stg_bez";
|
||||
}
|
||||
}
|
||||
|
||||
//Zeit des Gebietes holen
|
||||
echo '<table width="100%"><tr><td>'.$info.'</td><td align="right">';
|
||||
|
||||
$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
|
||||
@@ -249,7 +308,9 @@ if($demo)
|
||||
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'])."'";
|
||||
$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 = pg_query($conn, $qry);
|
||||
$row = pg_fetch_object($result);
|
||||
//Zeit in Sekunden umrechnen
|
||||
@@ -277,62 +338,103 @@ if($frage_id!='') //Frage wurde uebergeben
|
||||
}
|
||||
else
|
||||
{
|
||||
if($demo) //Demofrage wird angezeigt
|
||||
if($levelgebiet)
|
||||
{
|
||||
$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";
|
||||
// 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)
|
||||
WHERE gebiet_id='".addslashes($gebiet_id)."' AND pruefling_id='".addslashes($_SESSION['pruefling_id'])."'";
|
||||
$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);
|
||||
$row = pg_fetch_object($result);
|
||||
|
||||
if($row->anzahl>=$gebiet->maxfragen)
|
||||
{
|
||||
die("<script>document.location.href='gebietfertig.php';</script>");
|
||||
}
|
||||
}
|
||||
|
||||
$frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], null, $demo);
|
||||
$frage->load($frage_id);
|
||||
}
|
||||
|
||||
//Anzeigen der Frage
|
||||
if($frage->frage_id!='')
|
||||
{
|
||||
$frage_id = $frage->frage_id;
|
||||
$frage->getFrageSprache($frage_id, $_SESSION['sprache']);
|
||||
|
||||
if(!$demo)
|
||||
{
|
||||
//Nachschauen ob diese Frage bereits angesehen wurde
|
||||
$antwort = new antwort($conn);
|
||||
if(!$antwort->getAntwort($_SESSION['pruefling_id'],$frage_id))
|
||||
$antwort->getAntwort($_SESSION['pruefling_id'],$frage_id);
|
||||
if(count($antwort->result)==0)
|
||||
{
|
||||
//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';
|
||||
$prueflingfrage = new frage($conn);
|
||||
if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id))
|
||||
die('Diese Frage ist nicht fuer Sie bestimmt');
|
||||
|
||||
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 '<br/><br/><center>';
|
||||
//Bild und Text der Frage anzeigen
|
||||
if($frage->bild!='')
|
||||
echo "<img class='testtoolfrage' src='bild.php?src=frage&frage_id=$frage->frage_id' /><br/><br/>\n";
|
||||
echo "<img class='testtoolfrage' src='bild.php?src=frage&frage_id=$frage->frage_id&sprache=".$sprache."' /><br/><br/>\n";
|
||||
|
||||
//Sound einbinden
|
||||
if($frage->audio!='')
|
||||
echo '<embed autostart="false" src="sound.php?src=frage&frage_id='.$frage->frage_id.'&sprache='.$sprache.'" height="20" width="250"/><br />';
|
||||
echo "$frage->text<br/><br/>\n";
|
||||
|
||||
//Vorschlaege laden
|
||||
$vs = new vorschlag($conn);
|
||||
$vs->getVorschlag($frage->frage_id);
|
||||
$vs->getVorschlag($frage->frage_id, $_SESSION['sprache'], $gebiet->zufallvorschlag);
|
||||
echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$frage->frage_id\" method=\"POST\">";
|
||||
echo '<table cellspacing="30px">';
|
||||
echo '<tr>';
|
||||
$anzahl = 1;
|
||||
|
||||
//Antworten laden falls bereits vorhanden
|
||||
$antwort = new antwort($conn);
|
||||
$antwort->getAntwort($_SESSION['pruefling_id'],$frage->frage_id);
|
||||
|
||||
//Vorschlaege anzeigen
|
||||
foreach ($vs->result as $vorschlag)
|
||||
{
|
||||
echo "\n<td align='center'>";
|
||||
echo "$vorschlag->antwort<br/>";
|
||||
echo "\n<td align='center' valign='top'>";
|
||||
|
||||
//Bei multipleresponse checkboxen anzeigen ansonsten radiobuttons
|
||||
if($gebiet->multipleresponse)
|
||||
$type='checkbox';
|
||||
else
|
||||
$type='radio';
|
||||
|
||||
//Antworten markieren wenn die Frage bereits beantwortet wurde
|
||||
$checked=false;
|
||||
reset($antwort->result);
|
||||
foreach ($antwort->result as $answer)
|
||||
{
|
||||
if($vorschlag->vorschlag_id==$answer->vorschlag_id)
|
||||
{
|
||||
$checked='checked="checked"';
|
||||
}
|
||||
}
|
||||
|
||||
echo '<input type="'.$type.'" name="vorschlag_id[]" value="'.$vorschlag->vorschlag_id.'" '.$checked.'/>';
|
||||
|
||||
echo '<br/>';
|
||||
if($vorschlag->bild!='')
|
||||
echo "<img class='testtoolvorschlag' src='bild.php?src=vorschlag&vorschlag_id=$vorschlag->vorschlag_id' /><br/>";
|
||||
echo "<img class='testtoolvorschlag' src='bild.php?src=vorschlag&vorschlag_id=$vorschlag->vorschlag_id&sprache=$sprache' /><br/>";
|
||||
if($vorschlag->audio!='')
|
||||
echo '<embed autostart="false" src="sound.php?src=vorschlag&vorschlag_id='.$vorschlag->vorschlag_id.'&sprache='.$sprache.'" height="20" width="100"/><br />';
|
||||
if($vorschlag->text!='')
|
||||
echo $vorschlag->text.'<br/>';
|
||||
echo "</td>";
|
||||
@@ -344,22 +446,28 @@ if($frage->frage_id!='')
|
||||
$anzahl=1;
|
||||
}
|
||||
}
|
||||
|
||||
//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)
|
||||
{
|
||||
echo "<td align='center' valign='top'>";
|
||||
echo '<input type="radio" name="vorschlag_id[]" value="" /><br />keine Antwort</td>';
|
||||
}
|
||||
echo '</tr></table>';
|
||||
//Antwort laden falls bereits vorhanden
|
||||
$antwort = new antwort($conn);
|
||||
$antwort->getAntwort($_SESSION['pruefling_id'],$frage->frage_id);
|
||||
|
||||
if(!$demo)
|
||||
{
|
||||
echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$frage->frage_id\" method=\"POST\">";
|
||||
echo "<input type=\"hidden\" name=\"antwort_id\" value=\"$antwort->antwort_id\" />";
|
||||
echo "Antwort: <input type=\"text\" size=\"1\" id=\"antwort\" name=\"antwort\" value=\"".htmlentities(addslashes($antwort->antwort))."\" /> <input type=\"submit\" name=\"submitantwort\" onclick=\"return checkantwort()\" value=\"Speichern\" />";
|
||||
echo "</form>";
|
||||
echo "<input type=\"submit\" name=\"submitantwort\" value=\"Speichern\" />";
|
||||
}
|
||||
echo "</form>";
|
||||
echo '<br/><br/><br/>';
|
||||
//Fusszeile mit Weiter Button und Sprung direkt zu einer Frage
|
||||
if(!$demo)
|
||||
if(!$demo && !$levelgebiet)
|
||||
{
|
||||
$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";
|
||||
$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 = pg_query($conn, $qry);
|
||||
@@ -372,17 +480,21 @@ if($frage->frage_id!='')
|
||||
}
|
||||
}
|
||||
|
||||
//Naechste Frage holen und Weiter-Button anzeigen
|
||||
$frage = new frage($conn);
|
||||
$nextfrage = $frage->getNextFrage($gebiet_id, $gruppe, $frage_id, $demo);
|
||||
if($nextfrage)
|
||||
//Weiter Button nur bei nicht gelevelten Gebieten anzeigen
|
||||
if(!$levelgebiet)
|
||||
{
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$nextfrage' class='Item'>Weiter >></a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Wenns der letzte Eintrag ist, wieder zum ersten springen
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id' class='Item'>Weiter >></a>";
|
||||
//Naechste Frage holen und Weiter-Button anzeigen
|
||||
$frage = new frage($conn);
|
||||
$nextfrage = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo);
|
||||
if($nextfrage)
|
||||
{
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$nextfrage' class='Item'>Weiter >></a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Wenns der letzte Eintrag ist, wieder zum ersten springen
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id' class='Item'>Weiter >></a>";
|
||||
}
|
||||
}
|
||||
|
||||
echo '</center>';
|
||||
@@ -390,7 +502,7 @@ if($frage->frage_id!='')
|
||||
else
|
||||
{
|
||||
//Wenn kein Demo vorhanden ist
|
||||
echo "<br/><br/><br/><center><b>Start drücken um zu beginnen</b></center>";
|
||||
echo "<br/><br/><br/><center><b>Start druecken um zu beginnen</b></center>";
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>TestTool - FH Technikum Wien</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<frameset rows="77,*,1" cols="*" frameborder="NO" border="0" framespacing="0">
|
||||
|
||||
+108
-34
@@ -21,36 +21,57 @@
|
||||
*/
|
||||
|
||||
require_once('../config.inc.php');
|
||||
//require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/prestudent.class.php');
|
||||
require_once('../../include/pruefling.class.php');
|
||||
//require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
|
||||
session_start();
|
||||
$reload=false;
|
||||
$reload_parent=false;
|
||||
|
||||
if (isset($_POST['logout']))
|
||||
if (isset($_GET['logout']))
|
||||
{
|
||||
$reload = true;
|
||||
session_destroy();
|
||||
if(isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
$reload = true;
|
||||
session_destroy();
|
||||
}
|
||||
}
|
||||
|
||||
//Connection Herstellen
|
||||
if(!$db_conn = pg_pconnect(CONN_STRING))
|
||||
die('Fehler beim oeffnen der Datenbankverbindung');
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
if (isset($_POST['prestudent']) && isset($_POST['gebdatum']))
|
||||
{
|
||||
$ps=new prestudent($db_conn,$_POST['prestudent']);
|
||||
if ($_POST['gebdatum']==$ps->gebdatum)
|
||||
{
|
||||
$pruefling = new pruefling($db_conn);
|
||||
if($pruefling->getPruefling($ps->prestudent_id))
|
||||
{
|
||||
$studiengang = $pruefling->studiengang_kz;
|
||||
$semester = $pruefling->semester;
|
||||
}
|
||||
else
|
||||
{
|
||||
$studiengang = $ps->studiengang_kz;
|
||||
$ps->getLastStatus($ps->prestudent_id);
|
||||
$semester = $ps->ausbildungssemester;
|
||||
}
|
||||
if($semester=='')
|
||||
$semester=1;
|
||||
|
||||
$_SESSION['prestudent_id']=$_POST['prestudent'];
|
||||
$_SESSION['studiengang_kz']=$ps->studiengang_kz;
|
||||
$_SESSION['studiengang_kz']=$studiengang;
|
||||
$_SESSION['nachname']=$ps->nachname;
|
||||
$_SESSION['vorname']=$ps->vorname;
|
||||
$_SESSION['gebdatum']=$ps->gebdatum;
|
||||
$stg_obj = new studiengang($db_conn, $studiengang);
|
||||
$_SESSION['sprache']=$stg_obj->sprache;
|
||||
|
||||
$_SESSION['semester']=$semester;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,6 +87,33 @@ else
|
||||
$ps->getPrestudentRT($datum);
|
||||
}
|
||||
|
||||
if(isset($_GET['type']) && $_GET['type']=='sprachechange' && isset($_GET['sprache']))
|
||||
{
|
||||
$_SESSION['sprache']=$_GET['sprache'];
|
||||
}
|
||||
|
||||
if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))
|
||||
{
|
||||
$pruefling = new pruefling($db_conn);
|
||||
|
||||
if(!$pruefling->getPruefling($_SESSION['prestudent_id']))
|
||||
{
|
||||
$pruefling->new = true;
|
||||
|
||||
$pruefling->studiengang_kz = $_SESSION['studiengang_kz'];
|
||||
$pruefling->semester = $_SESSION['semester'];
|
||||
|
||||
$pruefling->idnachweis = '';
|
||||
$pruefling->registriert = date('Y-m-d H:i:s');
|
||||
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
|
||||
if($pruefling->save())
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
$reload_parent=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
$pruefling = new pruefling($db_conn);
|
||||
@@ -81,10 +129,11 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
$pruefling->idnachweis = $_POST['idnachweis'];
|
||||
$pruefling->registriert = date('Y-m-d H:i:s');
|
||||
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
|
||||
$pruefling->gruppe_kurzbz = $_POST['gruppe'];
|
||||
$pruefling->semester = $_POST['semester'];
|
||||
if($pruefling->save())
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
$_SESSION['semester']=$pruefling->semester;
|
||||
$reload_parent=true;
|
||||
}
|
||||
}
|
||||
@@ -92,8 +141,8 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<?php
|
||||
if($reload_parent)
|
||||
echo '<script language="Javascript">parent.menu.location.reload()</script>';
|
||||
@@ -107,41 +156,66 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
<?php
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
echo '<form method="post">';
|
||||
echo '<form method="GET">';
|
||||
echo '<br>Sie sind angemeldet als '.$_SESSION['vorname'].' '.$_SESSION['nachname'];
|
||||
echo ' ('.$_SESSION['gebdatum'].') ID: '.$_SESSION['prestudent_id'];
|
||||
echo ' <INPUT type="submit" value="Logout" name="logout" />';
|
||||
echo '</form>';
|
||||
echo '<br><br>';
|
||||
|
||||
$prestudent = new prestudent($db_conn, $prestudent_id);
|
||||
$stg_obj = new studiengang($db_conn, $prestudent->studiengang_kz);
|
||||
|
||||
$pruefling = new pruefling($db_conn);
|
||||
$pruefling->getPruefling($prestudent_id);
|
||||
if($pruefling->pruefling_id!='')
|
||||
if($pruefling->getPruefling($prestudent_id))
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
echo '<script language="Javascript">parent.menu.location.reload()</script>';
|
||||
}
|
||||
echo '<FORM METHOD="POST">';
|
||||
echo '<input type="hidden" name="pruefling_id" value="'.$pruefling->pruefling_id.'">';
|
||||
echo '<table>';
|
||||
echo '<tr><td>Gruppe:</td><td><SELECT name="gruppe">';
|
||||
$qry = "SELECT * FROM testtool.tbl_gruppe ORDER BY gruppe_kurzbz";
|
||||
if($result = pg_query($db_conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
|
||||
echo '<FORM METHOD="POST">';
|
||||
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="'.htmlentities($pruefling->semester).'"></td></tr>';
|
||||
echo '<tr><td>ID Nachweis:</td><td><INPUT type="text" maxsize="50" name="idnachweis" value="'.htmlentities($pruefling->idnachweis).'"></td></tr>';
|
||||
echo '<tr><td></td><td><input type="submit" name="save" value="OK"></td>';
|
||||
echo '</table>';
|
||||
echo '</FORM><br><br>';
|
||||
|
||||
//Wenn die Sprachwahl fuer diesen Studiengang aktiviert ist, dann die Sprachen anzeigen
|
||||
if($stg_obj->testtool_sprachwahl)
|
||||
{
|
||||
if($row->gruppe_kurzbz==$pruefling->gruppe_kurzbz)
|
||||
echo '<OPTION value="'.$row->gruppe_kurzbz.'" selected>'.$row->gruppe_kurzbz.'</OPTION>';
|
||||
else
|
||||
echo '<OPTION value="'.$row->gruppe_kurzbz.'" >'.$row->gruppe_kurzbz.'</OPTION>';
|
||||
//Liste der Sprachen
|
||||
$qry = "SELECT distinct sprache
|
||||
FROM
|
||||
testtool.tbl_pruefling
|
||||
JOIN testtool.tbl_ablauf USING(studiengang_kz)
|
||||
JOIN testtool.tbl_frage USING(gebiet_id)
|
||||
JOIN testtool.tbl_frage_sprache USING(frage_id)
|
||||
WHERE
|
||||
tbl_pruefling.pruefling_id='".addslashes($pruefling->pruefling_id)."'
|
||||
ORDER BY sprache DESC";
|
||||
echo 'Sprache:';
|
||||
if($result = pg_query($db_conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($_SESSION['sprache']==$row->sprache)
|
||||
$selected='style="border:1px solid black;"';
|
||||
else
|
||||
$selected='';
|
||||
echo " <a href='".$_SERVER['PHP_SELF']."?type=sprachechange&sprache=$row->sprache' class='Item' $selected><img src='bild.php?src=flag&sprache=$row->sprache' alt='$row->sprache' title='$row->sprache'/></a>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($pruefling->pruefling_id!='')
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
echo '<script language="Javascript">parent.menu.location.reload()</script>';
|
||||
}
|
||||
}
|
||||
echo '</SELECT></td></tr>';
|
||||
echo '<tr><td>ID Nachweis:</td><td><INPUT type="text" maxsize="50" name="idnachweis" value="'.htmlentities($pruefling->idnachweis).'"></td></tr>';
|
||||
echo '<tr><td></td><td><input type="submit" name="save" value="OK"></td>';
|
||||
echo '</table>';
|
||||
echo '</FORM>';
|
||||
|
||||
else
|
||||
{
|
||||
echo 'Kein Pueflingseintrag vorhanden';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+27
-9
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
|
||||
require_once('../config.inc.php');
|
||||
require_once('../../include/gebiet.class.php');
|
||||
|
||||
session_start();
|
||||
|
||||
@@ -32,8 +33,8 @@ if(!$db_conn = pg_pconnect(CONN_STRING))
|
||||
<!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=iso-8859-1">
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -50,16 +51,33 @@ if (isset($_SESSION['pruefling_id']))
|
||||
echo '<tr><td nowrap>';
|
||||
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" id="Gebiet" style="display: visible;">';
|
||||
|
||||
$qry = 'SELECT * FROM testtool.vw_ablauf WHERE studiengang_kz='.$_SESSION['studiengang_kz'].' ORDER BY reihung';
|
||||
$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 = pg_query($db_conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
echo '<tr>
|
||||
<td width="10" nowrap> </td>
|
||||
<td nowrap>
|
||||
<a class="Item" href="frage.php?gebiet_id='.$row->gebiet_id.'" target="content"><img src="../../skin/images/menu_item.gif" width="7" height="9"> '.$row->gebiet_bez.'</a>
|
||||
</td>
|
||||
</tr>';
|
||||
{
|
||||
$gebiet = new gebiet($db_conn);
|
||||
if($gebiet->check_gebiet($row->gebiet_id))
|
||||
{
|
||||
echo '<tr>
|
||||
<td width="10" nowrap> </td>
|
||||
<td nowrap>
|
||||
<a class="Item" href="frage.php?gebiet_id='.$row->gebiet_id.'" target="content"><img src="../../skin/images/menu_item.gif" width="7" height="9"> '.$row->gebiet_bez.'</a>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<tr>
|
||||
<td width="10" nowrap> </td>
|
||||
<td nowrap>
|
||||
<span class="error"><img src="../../skin/images/menu_item.gif" width="7" height="9"> '.$row->gebiet_bez.' (invalid)</span>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '</table>';
|
||||
echo '</td></tr></table>';
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
<?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: Christian Paminger <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]> and
|
||||
* Rudolf Hangl <[email protected]>.
|
||||
*/
|
||||
// Holt den Hexcode eines Bildes aus der DB wandelt es in Zeichen
|
||||
// um und gibt das ein Bild zurueck.
|
||||
// Aufruf mit <img src='bild.php?src=frage&frage_id=1
|
||||
require_once('../config.inc.php');
|
||||
|
||||
//Hexcode in String umwandeln
|
||||
function hexstr($hex)
|
||||
{
|
||||
$string="";
|
||||
for ($i=0;$i<strlen($hex)-1;$i+=2)
|
||||
$string.=chr(hexdec($hex[$i].$hex[$i+1]));
|
||||
return $string;
|
||||
}
|
||||
|
||||
//Connection Herstellen
|
||||
if(!$conn = pg_pconnect(CONN_STRING))
|
||||
die('Fehler beim oeffnen der Datenbankverbindung');
|
||||
|
||||
//Hex Dump aus der DB holen
|
||||
$qry = '';
|
||||
if(isset($_GET['src']) && $_GET['src']=='frage' && isset($_GET['frage_id']))
|
||||
{
|
||||
$qry = "SELECT audio FROM testtool.tbl_frage_sprache WHERE frage_id='".addslashes($_GET['frage_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
}
|
||||
elseif(isset($_GET['src']) && $_GET['src']=='vorschlag' && isset($_GET['vorschlag_id']))
|
||||
{
|
||||
$qry = "SELECT audio FROM testtool.tbl_vorschlag_sprache WHERE vorschlag_id='".addslashes($_GET['vorschlag_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
}
|
||||
else
|
||||
echo 'Unkown type';
|
||||
|
||||
if($qry!='')
|
||||
{
|
||||
//Header fuer Sound schicken
|
||||
header("Content-type: audio/mpeg");
|
||||
//header("Content-type: audio/wav");
|
||||
$result = pg_query($conn, $qry);
|
||||
$row = pg_fetch_object($result);
|
||||
//HEX Werte in Zeichen umwandeln und ausgeben
|
||||
echo hexstr($row->audio);
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
+4932
-4798
File diff suppressed because it is too large
Load Diff
+16
-4
@@ -78,8 +78,8 @@ unterteilen)<br>
|
||||
<tr>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>In den Details der Lehreinheit soll die Anzahl der
|
||||
teilnehmenden Studenten angezeigt werden</td>
|
||||
<td><br>
|
||||
</td>
|
||||
<td align="center"> <br>
|
||||
</td>
|
||||
<td align="center"> <br>
|
||||
@@ -120,8 +120,10 @@ Projektarbeit nicht nach dem Sponsionsdatum liegt</td>
|
||||
<tr>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>RT-Punkte in FAS übernehmen.(Button neben Eingabefeld)</td>
|
||||
<td align="center">med </td>
|
||||
<td><br>
|
||||
</td>
|
||||
<td align="center"> <br>
|
||||
</td>
|
||||
<td align="center"><br>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -465,6 +467,16 @@ nur eine am Zeugnis</td>
|
||||
<h2>Erledigte Anforderungen</h2>
|
||||
<br>
|
||||
<ul>
|
||||
<li>In den Details der Lehreinheit soll die Anzahl der
|
||||
teilnehmenden Studenten angezeigt werden<br>
|
||||
03.03.2009 oesi<br>
|
||||
<br>
|
||||
</li>
|
||||
<li>RT-Punkte ins FAS übernehmen - Symbol neben Punkte1 laedt
|
||||
die Reihungstestpunkte<br>
|
||||
03.2009 oesi<br>
|
||||
<br>
|
||||
</li>
|
||||
<li>Handbuch Projektarbeit<br>
|
||||
ruhan<br>
|
||||
<br>
|
||||
|
||||
@@ -78,7 +78,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</vbox>
|
||||
<hbox>
|
||||
<groupbox orientation="horizontal">
|
||||
<caption label="Details" />
|
||||
<caption id="lehrveranstaltung-detail-groupbox-caption" label="Details" />
|
||||
<!--Details-->
|
||||
<hbox>
|
||||
<grid datasources="rdf:null"
|
||||
|
||||
@@ -776,6 +776,7 @@ function LeAuswahl()
|
||||
anmerkung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
|
||||
studiensemester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
|
||||
lehrform=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrform_kurzbz" ));
|
||||
anzahl_studenten=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_studenten" ));
|
||||
|
||||
//Lehrfach drop down setzen
|
||||
|
||||
@@ -830,6 +831,7 @@ function LeAuswahl()
|
||||
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value=lehrform;
|
||||
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=false;
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value=lehreinheit_id;
|
||||
document.getElementById('lehrveranstaltung-detail-groupbox-caption').label='Details - Anzahl TeilnehmerInnen: '+anzahl_studenten;
|
||||
|
||||
//Lehreinheitmitarbeiter tree setzen
|
||||
url='<?php echo APP_ROOT;?>rdf/lehreinheitmitarbeiter.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
|
||||
|
||||
@@ -56,6 +56,7 @@ require_once('../../include/projektbetreuer.class.php');
|
||||
require_once('../../include/lehrverband.class.php');
|
||||
require_once('../../include/gruppe.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/pruefling.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
@@ -394,6 +395,8 @@ if(!$error)
|
||||
$prestudent->anmeldungreihungstest = $_POST['anmeldungreihungstest'];
|
||||
$prestudent->reihungstestangetreten = ($_POST['reihungstestangetreten']=='true'?true:false);
|
||||
$prestudent->punkte = str_replace(',','.',$_POST['punkte']);
|
||||
$prestudent->rt_punkte1 = str_replace(',','.',$_POST['punkte1']);
|
||||
$prestudent->rt_punkte2 = str_replace(',','.',$_POST['punkte2']);
|
||||
$prestudent->bismelden = ($_POST['bismelden']=='true'?true:false);
|
||||
$prestudent->dual = ($_POST['dual']=='true'?true:false);
|
||||
$prestudent->anmerkung = $_POST['anmerkung'];
|
||||
@@ -2969,6 +2972,16 @@ if(!$error)
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='getReihungstestPunkte')
|
||||
{
|
||||
//Liefert die Reihungstestpunkte eines Prestudenten
|
||||
if(isset($_POST['prestudent_id']))
|
||||
{
|
||||
$pruefling = new pruefling($conn);
|
||||
$data = $pruefling->getReihungstestErgebnis($_POST['prestudent_id']);
|
||||
$return = true;
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz')
|
||||
{
|
||||
if(isset($_POST['person_id']))
|
||||
|
||||
@@ -349,8 +349,17 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<row>
|
||||
<label value="Zum Reihungstest angetreten" control="student-prestudent-checkbox-reihungstestangetreten"/>
|
||||
<checkbox id="student-prestudent-checkbox-reihungstestangetreten" checked="true" disabled="true"/>
|
||||
<label value="Reihungstestpunkte" control="student-prestudent-textbox-punkte"/>
|
||||
<hbox><textbox id="student-prestudent-textbox-punkte" disabled="true" maxlength="9" size="9" onchange="StudentReihungstestPunkteChange();"/></hbox>
|
||||
<hbox>
|
||||
<label value="Punkte1" control="student-prestudent-textbox-punkte1" />
|
||||
<toolbarbutton id="student-prestudent-button-reihungstest-punktesync" image="../skin/images/transmit.png" tooltiptext="Reihungstest Ergebnis holen" onclick="StudentReihungstestPunkteTransmit()"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<textbox id="student-prestudent-textbox-punkte1" disabled="true" maxlength="9" size="9" onchange="StudentReihungstestPunkteChange();" oninput="StudentReihungstestPunkteSum();"/>
|
||||
<label value="Punkte2" control="student-prestudent-textbox-punkte2"/>
|
||||
<textbox id="student-prestudent-textbox-punkte2" disabled="true" maxlength="9" size="9" onchange="StudentReihungstestPunkteChange();" oninput="StudentReihungstestPunkteSum();"/>
|
||||
<label value="Gesamtpunkte" control="student-prestudent-textbox-punkte"/>
|
||||
<textbox id="student-prestudent-textbox-punkte" disabled="true" maxlength="9" size="9" onchange="StudentReihungstestPunkteChange();"/>
|
||||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
@@ -886,6 +886,8 @@ function StudentAuswahl()
|
||||
anmeldungreihungstest = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmeldungreihungstest" ));
|
||||
reihungstestangetreten = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#reihungstestangetreten" ));
|
||||
punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
|
||||
punkte1 = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte1" ));
|
||||
punkte2 = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte2" ));
|
||||
bismelden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bismelden" ));
|
||||
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkungpre" ));
|
||||
dual = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dual" ));
|
||||
@@ -911,6 +913,8 @@ function StudentAuswahl()
|
||||
else
|
||||
document.getElementById('student-prestudent-checkbox-reihungstestangetreten').checked=false;
|
||||
document.getElementById('student-prestudent-textbox-punkte').value=punkte;
|
||||
document.getElementById('student-prestudent-textbox-punkte1').value=punkte1;
|
||||
document.getElementById('student-prestudent-textbox-punkte2').value=punkte2;
|
||||
|
||||
if(bismelden=='true')
|
||||
document.getElementById('student-prestudent-checkbox-bismelden').checked=true;
|
||||
@@ -1334,6 +1338,8 @@ function StudentPrestudentDisableFields(val)
|
||||
document.getElementById('student-prestudent-textbox-anmeldungreihungstest').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-reihungstestangetreten').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-punkte').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-punkte1').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-punkte2').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-bismelden').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-dual').disabled=val;
|
||||
document.getElementById('student-prestudent-button-anmeldungreihungstest-heute').disabled=val;
|
||||
@@ -1381,6 +1387,8 @@ function StudentPrestudentSave()
|
||||
anmeldungreihungstest = document.getElementById('student-prestudent-textbox-anmeldungreihungstest').value;
|
||||
reihungstestangetreten = document.getElementById('student-prestudent-checkbox-reihungstestangetreten').checked;
|
||||
punkte = document.getElementById('student-prestudent-textbox-punkte').value;
|
||||
punkte1 = document.getElementById('student-prestudent-textbox-punkte1').value;
|
||||
punkte2 = document.getElementById('student-prestudent-textbox-punkte2').value;
|
||||
bismelden = document.getElementById('student-prestudent-checkbox-bismelden').checked;
|
||||
dual = document.getElementById('student-prestudent-checkbox-dual').checked;
|
||||
person_id = document.getElementById('student-prestudent-textbox-person_id').value;
|
||||
@@ -1431,6 +1439,8 @@ function StudentPrestudentSave()
|
||||
req.add('anmeldungreihungstest', ConvertDateToISO(anmeldungreihungstest));
|
||||
req.add('reihungstestangetreten', reihungstestangetreten);
|
||||
req.add('punkte', punkte);
|
||||
req.add('punkte1', punkte1);
|
||||
req.add('punkte2', punkte2);
|
||||
req.add('bismelden', bismelden);
|
||||
req.add('dual', dual);
|
||||
req.add('person_id', person_id);
|
||||
@@ -1605,11 +1615,53 @@ function StudentAnmeldungreihungstestHeute()
|
||||
// ****
|
||||
function StudentReihungstestPunkteChange()
|
||||
{
|
||||
if(document.getElementById('student-prestudent-textbox-punkte').value!=''
|
||||
if(document.getElementById('student-prestudent-textbox-punkte1').value!=''
|
||||
&& document.getElementById('student-prestudent-checkbox-reihungstestangetreten').checked==false)
|
||||
document.getElementById('student-prestudent-checkbox-reihungstestangetreten').checked=true;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Summiert die beiden Reihungstestpunkte
|
||||
// ****
|
||||
function StudentReihungstestPunkteSum()
|
||||
{
|
||||
punkte1 = document.getElementById('student-prestudent-textbox-punkte1').value;
|
||||
punkte2 = document.getElementById('student-prestudent-textbox-punkte2').value;
|
||||
|
||||
document.getElementById('student-prestudent-textbox-punkte').value=parseFloat(punkte1)+parseFloat(punkte2);
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Holt die Reihungstestpunkte des Prestudenten
|
||||
// ****
|
||||
function StudentReihungstestPunkteTransmit()
|
||||
{
|
||||
var prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value;
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'getReihungstestPunkte');
|
||||
|
||||
req.add('prestudent_id', prestudent_id);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
{
|
||||
if(val.dbdml_errormsg=='')
|
||||
alert(response)
|
||||
else
|
||||
alert(val.dbdml_errormsg)
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById('student-prestudent-textbox-punkte1').value = val.dbdml_data;
|
||||
StudentReihungstestPunkteSum();
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Einen Ab-/Unterbrecher wieder zum Studenten machen
|
||||
// ****
|
||||
|
||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 24 KiB |
+54
-32
@@ -24,11 +24,8 @@ class antwort
|
||||
{
|
||||
//Tabellenspalten
|
||||
var $antwort_id;
|
||||
var $frage_id;
|
||||
var $antwort;
|
||||
var $begintime;
|
||||
var $endtime;
|
||||
var $pruefling_id;
|
||||
var $vorschlag_id;
|
||||
|
||||
// ErgebnisArray
|
||||
var $result=array();
|
||||
@@ -75,11 +72,8 @@ class antwort
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->antwort_id = $row->antwort_id;
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->antwort = $row->antwort;
|
||||
$this->begintime = $row->begintime;
|
||||
$this->endtime = $row->endtime;
|
||||
$this->pruefling_id = $row->pruefling_id;
|
||||
$this->vorschlag_id = $row->vorschlag_id;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -90,7 +84,7 @@ class antwort
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim laden: $qry";
|
||||
$this->errormsg = "Fehler beim Laden der Antwort";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -130,19 +124,16 @@ class antwort
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'INSERT INTO testtool.tbl_antwort (frage_id, antwort, begintime, endtime, pruefling_id) VALUES('.
|
||||
"'".addslashes($this->frage_id)."',".
|
||||
$this->addslashes($this->antwort).",".
|
||||
$this->addslashes($this->begintime).",".
|
||||
$this->addslashes($this->endtime).",".
|
||||
$this->addslashes($this->pruefling_id).");";
|
||||
$qry = 'INSERT INTO testtool.tbl_antwort (pruefling_id, vorschlag_id) VALUES('.
|
||||
$this->addslashes($this->pruefling_id).",".
|
||||
$this->addslashes($this->vorschlag_id).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_antwort SET'.
|
||||
' antwort='.$this->addslashes($this->antwort).','.
|
||||
" endtime='".$this->endtime."'".
|
||||
" WHERE frage_id='".addslashes($this->frage_id)."' AND pruefling_id='".addslashes($this->pruefling_id)."'";
|
||||
' vorschlag_id='.$this->addslashes($this->vorschlag_id).','.
|
||||
" pruefling_id='".$this->pruefling_id."'".
|
||||
" WHERE antwort_id='".addslashes($this->antwort_id)."'";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
@@ -157,26 +148,57 @@ class antwort
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Eintrag aus der Tabelle tbl_antwort
|
||||
*
|
||||
* @param $antwort_id
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function delete($antwort_id)
|
||||
{
|
||||
if(!is_numeric($antwort_id) || $antwort_id=='')
|
||||
{
|
||||
$this->errormsg = 'Antwort_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "DELETE FROM testtool.tbl_antwort WHERE antwort_id='".addslashes($antwort_id)."'";
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen der Antwort';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getAntwort($pruefling_id, $frage_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_antwort WHERE pruefling_id='".addslashes($pruefling_id)."' AND frage_id='".addslashes($frage_id)."'";
|
||||
$qry = "SELECT * FROM testtool.tbl_antwort JOIN testtool.tbl_pruefling_frage USING(pruefling_id)
|
||||
JOIN testtool.tbl_vorschlag USING(vorschlag_id)
|
||||
WHERE
|
||||
tbl_vorschlag.frage_id=tbl_pruefling_frage.frage_id AND
|
||||
pruefling_id='".addslashes($pruefling_id)."' AND
|
||||
tbl_vorschlag.frage_id='".addslashes($frage_id)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->antwort_id = $row->antwort_id;
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->antwort = $row->antwort;
|
||||
$this->begintime = $row->begintime;
|
||||
$this->endtime = $row->endtime;
|
||||
$this->pruefling_id = $row->pruefling_id;
|
||||
return true;
|
||||
$obj = new antwort($this->conn, null, null);
|
||||
|
||||
$obj->antwort_id = $row->antwort_id;
|
||||
$obj->frage_id = $row->frage_id;
|
||||
$obj->vorschlag_id = $row->vorschlag_id;
|
||||
$obj->begintime = $row->begintime;
|
||||
$obj->endtime = $row->endtime;
|
||||
$obj->pruefling_id = $row->pruefling_id;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Antwort wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+595
-58
@@ -16,22 +16,40 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]> and
|
||||
* Rudolf Hangl <[email protected]>.
|
||||
* Andreas Oesterreicher <[email protected]>,
|
||||
* Rudolf Hangl <[email protected]> and
|
||||
* Gerald Simane-Sequens <[email protected]>
|
||||
*/
|
||||
/**
|
||||
* Klasse fuer die Fragen des Reihungstesttools
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/gebiet.class.php');
|
||||
require_once(dirname(__FILE__).'/pruefling.class.php');
|
||||
|
||||
class frage
|
||||
{
|
||||
//Tabellenspalten
|
||||
var $frage_id;
|
||||
var $gebiet_id;
|
||||
var $gruppe_kurzbz;
|
||||
var $loesung;
|
||||
var $nummer;
|
||||
var $demo;
|
||||
var $level;
|
||||
var $kategorie_kurzbz;
|
||||
|
||||
var $sprache;
|
||||
var $audio;
|
||||
var $text;
|
||||
var $bild;
|
||||
|
||||
var $pruefling_id;
|
||||
var $prueflingfrage_id;
|
||||
var $begintime;
|
||||
var $endtime;
|
||||
|
||||
var $insertamum;
|
||||
var $updateamum;
|
||||
var $insertvon;
|
||||
var $updatevon;
|
||||
|
||||
// ErgebnisArray
|
||||
var $result=array();
|
||||
var $num_rows=0;
|
||||
@@ -45,7 +63,7 @@ class frage
|
||||
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
|
||||
// * oder LATIN9 Codierung verarbeitet werden sollen
|
||||
// *************************************************************************
|
||||
function frage($conn, $frage_id=null, $unicode=false)
|
||||
public function frage($conn, $frage_id=null, $unicode=false)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
|
||||
@@ -68,8 +86,14 @@ class frage
|
||||
// * Laedt Frage mit der uebergebenen ID
|
||||
// * @param $frage_id ID der Frage die geladen werden soll
|
||||
// ***********************************************************
|
||||
function load($frage_id)
|
||||
{
|
||||
public function load($frage_id)
|
||||
{
|
||||
if(!is_numeric($frage_id) || $frage_id=='')
|
||||
{
|
||||
$this->errormsg = 'Frage_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM testtool.tbl_frage WHERE frage_id='".addslashes($frage_id)."'";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
@@ -78,12 +102,15 @@ class frage
|
||||
{
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->gebiet_id = $row->gebiet_id;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->loesung = $row->loesung;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->demo = ($row->demo=='t'?true:false);
|
||||
$this->text = $row->text;
|
||||
$this->bild = $row->bild;
|
||||
$this->kategorie_kurzbz = $row->kategorie_kurzbz;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->level = $row->level;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -94,7 +121,7 @@ class frage
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim laden: $qry";
|
||||
$this->errormsg = "Fehler beim Laden: $qry";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -105,7 +132,7 @@ class frage
|
||||
// * Zeichen mit Backslash versehen und das Ergbnis
|
||||
// * unter Hochkomma gesetzt.
|
||||
// ************************************************
|
||||
function addslashes($var)
|
||||
private function addslashes($var)
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
@@ -115,7 +142,7 @@ class frage
|
||||
// * auf Gueltigkeit.
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// *******************************************
|
||||
function validate()
|
||||
private function validate()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -126,7 +153,7 @@ class frage
|
||||
// * ansonsten der Datensatz mit $uid upgedated
|
||||
// * @return true wenn erfolgreich, false im Fehlerfall
|
||||
// ******************************************************************
|
||||
function save()
|
||||
public function save()
|
||||
{
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate())
|
||||
@@ -134,31 +161,101 @@ class frage
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'INSERT INTO testtool.tbl_frage (frage_id, gebiet_id, gruppe_kurzbz, loesung, nummer, demo, text, bild) VALUES('.
|
||||
"'".addslashes($this->frage_id)."',".
|
||||
$this->addslashes($this->gebiet_id).",'".
|
||||
$this->addslashes($this->gruppe_kurzbz).",'".
|
||||
$this->addslashes($this->loesung).",".
|
||||
$this->addslashes($this->nummer).",".
|
||||
($this->demo?'true':'false').",'".
|
||||
$this->text."',".
|
||||
$this->addslashes($this->bild).");";
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_frage (kategorie_kurzbz, gebiet_id, level, nummer, demo,
|
||||
insertamum, insertvon, updateamum, updatevon) VALUES('.
|
||||
$this->addslashes($this->kategorie_kurzbz).','.
|
||||
$this->addslashes($this->gebiet_id).','.
|
||||
$this->addslashes($this->level).','.
|
||||
$this->addslashes($this->nummer).','.
|
||||
($this->demo?'true':'false').','.
|
||||
$this->addslashes($this->insertamum).','.
|
||||
$this->addslashes($this->insertvon).','.
|
||||
'null,null);';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_frage SET'.
|
||||
' frage_id='.$this->addslashes($this->frage_id).','.
|
||||
' gebiet_id='.$this->addslashes($this->gebiet_id).','.
|
||||
" gruppe_kurzbz='".$this->gruppe_kurzbz."',".
|
||||
' loesung='.$this->addslashes($this->loesung).','.
|
||||
' kategorie_kurzbz='.$this->addslashes($this->kategorie_kurzbz).','.
|
||||
' level='.$this->addslashes($this->level).','.
|
||||
' nummer='.$this->addslashes($this->nummer).','.
|
||||
' demo='.($this->demo?'true':'false').','.
|
||||
" text='".$this->text."',".
|
||||
' bild='.$this->addslashes($this->bild).
|
||||
' updateamum='.$this->addslashes($this->updateamum).','.
|
||||
' updatevon='.$this->addslashes($this->updatevon).
|
||||
" WHERE frage_id='".addslashes($this->frage_id)."';";
|
||||
}
|
||||
//echo $qry;
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
if($this->new)
|
||||
{
|
||||
$qry = "SELECT currval('testtool.tbl_frage_frage_id_seq') as id";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->frage_id = $row->id;
|
||||
pg_query($this->conn,'COMMIT');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Frage:'.$qry;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die Frage in der angegebenen Sprache
|
||||
*
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function save_fragesprache()
|
||||
{
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'INSERT INTO testtool.tbl_frage_sprache (frage_id, sprache, text, bild, audio,
|
||||
insertamum, insertvon, updateamum, updatevon) VALUES('.
|
||||
$this->addslashes($this->frage_id).','.
|
||||
$this->addslashes($this->sprache).','.
|
||||
$this->addslashes($this->text).','.
|
||||
$this->addslashes($this->bild).','.
|
||||
$this->addslashes($this->audio).','.
|
||||
$this->addslashes($this->insertamum).','.
|
||||
$this->addslashes($this->insertvon).','.
|
||||
'null,null);';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_frage_sprache SET'.
|
||||
' text='.$this->addslashes($this->text).','.
|
||||
' bild='.$this->addslashes($this->bild).','.
|
||||
' audio='.$this->addslashes($this->audio).','.
|
||||
' updateamum='.$this->addslashes($this->updateamum).','.
|
||||
' updatevon='.$this->addslashes($this->updatevon).
|
||||
" WHERE frage_id='".addslashes($this->frage_id)."' AND sprache='".addslashes($this->sprache)."';";
|
||||
}
|
||||
//echo $qry;
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
return true;
|
||||
@@ -169,51 +266,70 @@ class frage
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getFrage($gebiet_id, $nummer, $gruppe_kurzbz)
|
||||
|
||||
public function getFragen($gebiet_id, $nummer)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_frage WHERE gebiet_id='$gebiet_id' AND nummer='$nummer' AND gruppe_kurzbz='$gruppe_kurzbz'";
|
||||
$qry = "SELECT * FROM testtool.tbl_frage
|
||||
WHERE gebiet_id='".addslashes($gebiet_id)."' AND nummer='".addslashes($nummer)."'";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->gebiet_id = $row->gebiet_id;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->loesung = $row->loesung;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->demo = ($row->demo=='t'?true:false);
|
||||
$this->text = $row->text;
|
||||
$this->bild = $row->bild;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden';
|
||||
return false;
|
||||
$obj = new frage($this->conn, null, null);
|
||||
|
||||
$obj->frage_id = $row->frage_id;
|
||||
$obj->kategorie_kurzbz = $row->kategorie_kurzbz;
|
||||
$obj->gebiet_id = $row->gebiet_id;
|
||||
$obj->level = $row->level;
|
||||
$obj->nummer = $row->nummer;
|
||||
$obj->demo = ($row->demo=='t'?true:false);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden der Daten';
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getNextFrage($gebiet_id, $gruppe_kurzbz, $frage_id, $demo=false)
|
||||
/**
|
||||
* Laedt die naechste Frage eines Gebiets
|
||||
*
|
||||
* @param $gebiet_id
|
||||
* @param $pruefling_id
|
||||
* @param $frage_id ID der vorherigen Frage. wenn Null dann wird die erste Frage geliefert
|
||||
* @param $demo
|
||||
* @return frage_id der naechsten Frage oder false wenn Fehler
|
||||
*/
|
||||
public function getNextFrage($gebiet_id, $pruefling_id, $frage_id=null, $demo=false)
|
||||
{
|
||||
$qry = "SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."' AND nummer".($demo?'<':'>')."(SELECT nummer FROM testtool.tbl_frage WHERE frage_id='".addslashes($frage_id)."') ";
|
||||
if($demo)
|
||||
{
|
||||
$qry.=" AND demo=true";
|
||||
$order = 'DESC';
|
||||
$qry = "SELECT frage_id FROM testtool.tbl_frage
|
||||
WHERE tbl_frage.gebiet_id='".addslashes($gebiet_id)."'
|
||||
AND demo ";
|
||||
if(!is_null($frage_id))
|
||||
$qry.=" AND nummer<(SELECT nummer FROM testtool.tbl_frage WHERE frage_id='".addslashes($frage_id)."')";
|
||||
$qry .= " ORDER BY nummer DESC LIMIT 1";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT frage_id FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE
|
||||
tbl_frage.gebiet_id='".addslashes($gebiet_id)."' AND
|
||||
tbl_pruefling_frage.pruefling_id='".addslashes($pruefling_id)."' AND
|
||||
NOT demo ";
|
||||
|
||||
if(!is_null($frage_id))
|
||||
$qry.=" AND tbl_pruefling_frage.nummer>(SELECT nummer FROM testtool.tbl_pruefling_frage WHERE pruefling_id='".addslashes($pruefling_id)."' AND frage_id='".addslashes($frage_id)."' LIMIT 1)";
|
||||
|
||||
$qry.="ORDER BY tbl_pruefling_frage.nummer ASC LIMIT 1";
|
||||
}
|
||||
else
|
||||
$order = 'ASC';
|
||||
|
||||
$qry.=" ORDER BY nummer $order LIMIT 1";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
@@ -225,5 +341,426 @@ class frage
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Frage in der angegebenen Sprache
|
||||
*
|
||||
* @param $frage_id
|
||||
* @param $sprache
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getFrageSprache($frage_id, $sprache)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_frage_sprache JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE frage_id='".addslashes($frage_id)."' AND sprache='".addslashes($sprache)."'";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->sprache = $row->sprache;
|
||||
$this->text = $row->text;
|
||||
$this->bild = $row->bild;
|
||||
$this->audio = $row->audio;
|
||||
$this->insertaum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
|
||||
$this->level = $row->level;
|
||||
$this->demo = ($row->demo=='t'?true:false);
|
||||
$this->nummer = $row->nummer;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Frage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Frage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das naechste Level zu dem noch Fragen fehlen
|
||||
*
|
||||
* @param $levelarr Array mit den Levels und der Anzahl der noch zu liefernden Fragen
|
||||
* @return naechstes level bzw null wenn keines mehr vorhanden
|
||||
*/
|
||||
private function getNextFrageLevel($levelarr)
|
||||
{
|
||||
foreach ($levelarr as $key=>$row)
|
||||
{
|
||||
if($row>0)
|
||||
return $key;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generiert den Fragenpool fuer den Pruefling bzw
|
||||
* die naechste Frage bei gelevelten Gebieten
|
||||
*
|
||||
* @param $pruefling_id
|
||||
* @param $gebiet_id
|
||||
*/
|
||||
public function generateFragenpool($pruefling_id, $gebiet_id)
|
||||
{
|
||||
$gebiet = new gebiet($this->conn, $gebiet_id);
|
||||
|
||||
//Bei Levelgesteuerten Fragen wird nur die erste Frage angelegt
|
||||
if($gebiet->level_start!='')
|
||||
{
|
||||
// Anzahl der bereits vorhandenen Fragen holen
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE gebiet_id='".addslashes($gebiet_id)."' AND pruefling_id='".addslashes($pruefling_id)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->anzahl>=$gebiet->maxfragen)
|
||||
{
|
||||
// maximale Fragenanzahl erreicht
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
$maxfragen=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$maxfragen = $gebiet->maxfragen;
|
||||
|
||||
// Wie viele Fragen gibt es in diesem Gebiet
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage WHERE NOT demo AND gebiet_id='".addslashes($gebiet_id)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$fragengesamt = $row->anzahl;
|
||||
}
|
||||
}
|
||||
|
||||
// Wenn im Gebiet keine Maximalzahl angegeben ist, dann kommen alle Fragen in den Pool
|
||||
if($maxfragen=='')
|
||||
{
|
||||
$maxfragen = $fragengesamt;
|
||||
}
|
||||
|
||||
$level = array();
|
||||
|
||||
// Bei Levelgleichverteilung die Anzahl der Fragen pro level ermitteln
|
||||
if($gebiet->levelgleichverteilung)
|
||||
{
|
||||
$qry = "SELECT level, count(*) as anzahl FROM testtool.tbl_frage
|
||||
WHERE NOT demo AND gebiet_id='".addslashes($gebiet_id)."'
|
||||
GROUP BY level
|
||||
ORDER BY level";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$level[$row->level]=round(($row->anzahl/$fragengesamt)*$maxfragen);
|
||||
}
|
||||
}
|
||||
|
||||
// Von jedem Gebiet muss mindestens eine Frage kommen
|
||||
foreach ($level as $key=>$row)
|
||||
{
|
||||
if($level[$key]==0)
|
||||
{
|
||||
$level[$key]=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pg_query($this->conn, 'BEGIN;');
|
||||
|
||||
while($maxfragen>0)
|
||||
{
|
||||
//Bei levelgleichverteilung das Level der naechsten Frage holen
|
||||
if($gebiet->levelgleichverteilung)
|
||||
{
|
||||
$nextlevel=$this->getNextFrageLevel($level);
|
||||
if(isset($level[$nextlevel]))
|
||||
$level[$nextlevel]=$level[$nextlevel]-1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$nextlevel=null;
|
||||
}
|
||||
|
||||
$this->frage_id=$this->getNewFrage($gebiet_id, $pruefling_id, $nextlevel);
|
||||
|
||||
$this->pruefling_id=$pruefling_id;
|
||||
|
||||
//hoechste Nummer holen
|
||||
$qry = "SELECT
|
||||
tbl_pruefling_frage.nummer
|
||||
FROM
|
||||
testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE
|
||||
tbl_frage.gebiet_id='".addslashes($gebiet_id)."' AND
|
||||
tbl_pruefling_frage.pruefling_id='".addslashes($pruefling_id)."'
|
||||
ORDER BY nummer DESC LIMIT 1;";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
$this->nummer = $row->nummer+1;
|
||||
else
|
||||
$this->nummer = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Generieren des Fragenpools'.$qry;
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->begintime='';
|
||||
$this->endtime='';
|
||||
|
||||
//PrueflingFrage speichern
|
||||
if(!$this->save_prueflingfrage(true))
|
||||
{
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
|
||||
$maxfragen--;
|
||||
}
|
||||
|
||||
pg_query($this->conn, 'COMMIT;');
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt eine Prueflingfrage
|
||||
*
|
||||
* @param $prueflingfrage_id
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load_prueflingfrage($prueflingfrage_id)
|
||||
{
|
||||
if(!is_numeric($prueflingfrage_id) || $prueflingfrage_id=='')
|
||||
{
|
||||
$this->errormsg = 'prueflingfrage_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM testtool.tbl_pruefling_frage WHERE prueflingfrage_id='".addslashes($prueflingfrage_id)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->prueflingfrage_id = $row->prueflingfrage_id;
|
||||
$this->pruefling_id = $row->pruefling_id;
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->begintime = $row->begintime;
|
||||
$this->endtime = $row->endtime;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es wurde keine PrueflingFrage mit der uebergebenen ID gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der PrueflingFrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt eine Prueflingfrage
|
||||
*
|
||||
* @param $pruefling_id
|
||||
* @param $frage_id
|
||||
* @return true wenn ok, false wenn Fehler oder kein Eintrag vorhanden
|
||||
*/
|
||||
public function getPrueflingfrage($pruefling_id, $frage_id)
|
||||
{
|
||||
if(!is_numeric($pruefling_id) || $pruefling_id=='')
|
||||
{
|
||||
$this->errormsg = 'Pruefling_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($frage_id) || $frage_id=='')
|
||||
{
|
||||
$this->errormsg = 'Frage_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM testtool.tbl_pruefling_frage WHERE pruefling_id='".addslashes($pruefling_id)."' AND frage_id='".addslashes($frage_id)."'";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->prueflingfrage_id = $row->prueflingfrage_id;
|
||||
$this->pruefling_id = $row->pruefling_id;
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->begintime = $row->begintime;
|
||||
$this->endtime = $row->endtime;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der PrueflingFrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Daten vor dem Speichern in die Tabelle tbl_pruefling_frage
|
||||
*
|
||||
*/
|
||||
private function validate_prueflingfrage()
|
||||
{
|
||||
if(!is_numeric($this->pruefling_id) || $this->pruefling_id=='')
|
||||
{
|
||||
$this->errormsg = 'Pruefling_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($this->frage_id) || $this->frage_id=='')
|
||||
{
|
||||
$this->errormsg = 'Frage_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($this->nummer))
|
||||
{
|
||||
$this->errormsg = 'Nummer ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert einen Eintrag in der Tabelle tbl_pruefling_frage
|
||||
*
|
||||
* @param $new
|
||||
*/
|
||||
public function save_prueflingfrage($new=null)
|
||||
{
|
||||
if(!$this->validate_prueflingfrage())
|
||||
return false;
|
||||
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO testtool.tbl_pruefling_frage(pruefling_id, frage_id, nummer, begintime, endtime) VALUES('.
|
||||
$this->addslashes($this->pruefling_id).','.
|
||||
$this->addslashes($this->frage_id).','.
|
||||
$this->addslashes($this->nummer).','.
|
||||
$this->addslashes($this->begintime).','.
|
||||
$this->addslashes($this->endtime).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_pruefling_frage SET'.
|
||||
' pruefling_id='.$this->addslashes($this->pruefling_id).','.
|
||||
' frage_id='.$this->addslashes($this->frage_id).','.
|
||||
' nummer='.$this->addslashes($this->nummer).','.
|
||||
' begintime='.$this->addslashes($this->begintime).','.
|
||||
' endtime='.$this->addslashes($this->endtime).
|
||||
" WHERE prueflingfrage_id='".addslashes($this->prueflingfrage_id)."'";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern in tbl_pruefling_frage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht eine neue Frage fuer einen Pruefling
|
||||
*
|
||||
* @param $gebiet_id
|
||||
* @param $pruefling_id
|
||||
* @param $level (nur bei Levelgleichverteilung)
|
||||
*/
|
||||
private function getNewFrage($gebiet_id, $pruefling_id, $level=null)
|
||||
{
|
||||
$gebiet = new gebiet($this->conn, $gebiet_id);
|
||||
$pruefling = new pruefling($this->conn);
|
||||
|
||||
|
||||
//Frage suchen die dem pruefling noch nicht zugeordnet ist
|
||||
$qry = "SELECT frage_id FROM testtool.tbl_frage
|
||||
WHERE gebiet_id='".addslashes($gebiet_id)."' AND
|
||||
frage_id NOT IN (SELECT frage_id FROM testtool.tbl_pruefling_frage
|
||||
WHERE pruefling_id='".addslashes($pruefling_id)."'
|
||||
)
|
||||
AND NOT demo";
|
||||
|
||||
// Wenn die Frage abhaengig vom level sein soll, dann den aktuellen Level ermitteln und dazuhaengen
|
||||
if($gebiet->level_start!='')
|
||||
{
|
||||
$level2 = $pruefling->getPrueflingLevel($pruefling_id, $gebiet_id);
|
||||
$qry.=" AND level='".addslashes($level2)."'";
|
||||
}
|
||||
|
||||
// Bei Levelgleichverteilung wird der Level mituebergeben
|
||||
if(!is_null($level))
|
||||
{
|
||||
$qry.=" AND level='".addslashes($level)."'";
|
||||
}
|
||||
|
||||
//Sortierung
|
||||
if($gebiet->zufallfrage)
|
||||
$qry .= " ORDER BY random()";
|
||||
else
|
||||
$qry .= " ORDER BY nummer ASC";
|
||||
|
||||
$qry .= " LIMIT 1";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
return $row->frage_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es gibt keine Fragen die den Kriterien entsprechen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Holen der Frage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,583 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009 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 <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]>,
|
||||
* Rudolf Hangl <[email protected]> and
|
||||
* Gerald Simane-Sequens <[email protected]>
|
||||
*/
|
||||
/**
|
||||
* Klasse fuer die Gebiete des Testtools (Reihungstesttool)
|
||||
*
|
||||
*/
|
||||
|
||||
class gebiet
|
||||
{
|
||||
//Tabellenspalten
|
||||
public $gebiet_id;
|
||||
public $kurzbz;
|
||||
public $bezeichnung;
|
||||
public $beschreibung;
|
||||
public $zeit;
|
||||
public $multipleresponse;
|
||||
public $kategorien;
|
||||
public $maxfragen;
|
||||
public $zufallfrage;
|
||||
public $zufallvorschlag;
|
||||
public $level_start;
|
||||
public $level_sprung_auf;
|
||||
public $level_sprung_ab;
|
||||
public $levelgleichverteilung;
|
||||
public $maxpunkte;
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
public $updateamum;
|
||||
public $updatevon;
|
||||
|
||||
// ErgebnisArray
|
||||
public $result=array();
|
||||
public $errormsg;
|
||||
public $new;
|
||||
|
||||
// *************************************************************************
|
||||
// * Konstruktor - Uebergibt die Connection und laedt optional ein Gebiet
|
||||
// * @param $conn Datenbank-Connection
|
||||
// * $gebiet_id Gebiet das geladen werden soll (default=null)
|
||||
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
|
||||
// * oder LATIN9 Codierung verarbeitet werden sollen
|
||||
// *************************************************************************
|
||||
public function gebiet($conn, $gebiet_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($gebiet_id != null)
|
||||
$this->load($gebiet_id);
|
||||
}
|
||||
|
||||
// ***********************************************************
|
||||
// * Laedt Gebiet mit der uebergebenen ID
|
||||
// * @param $gebiet_id ID des Gebiets das geladen werden soll
|
||||
// ***********************************************************
|
||||
public function load($gebiet_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_gebiet WHERE gebiet_id='".addslashes($gebiet_id)."'";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->gebiet_id = $row->gebiet_id;
|
||||
$this->kurzbz = $row->kurzbz;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->zeit = $row->zeit;
|
||||
$this->multipleresponse = ($row->multipleresponse=='t'?true:false);
|
||||
$this->kategorien = ($row->kategorien=='t'?true:false);
|
||||
$this->maxfragen = $row->maxfragen;
|
||||
$this->zufallfrage = ($row->zufallfrage=='t'?true:false);
|
||||
$this->zufallvorschlag = ($row->zufallvorschlag=='t'?true:false);
|
||||
$this->level_start = $row->level_start;
|
||||
$this->level_sprung_auf = $row->level_sprung_auf;
|
||||
$this->level_sprung_ab = $row->level_sprung_ab;
|
||||
$this->levelgleichverteilung = ($row->levelgleichverteilung=='t'?true:($row->levelgleichverteilung=='f'?false:null));
|
||||
$this->maxpunkte = $row->maxpunkte;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Eintrag gefunden fuer $gebiet_id";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Gebiets";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * wenn $var '' ist wird NULL zurueckgegeben
|
||||
// * wenn $var !='' ist werden Datenbankkritische
|
||||
// * Zeichen mit Backslash versehen und das Ergbnis
|
||||
// * unter Hochkomma gesetzt.
|
||||
// ************************************************
|
||||
private function addslashes($var)
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
|
||||
// *******************************************
|
||||
// * Prueft die Variablen vor dem Speichern
|
||||
// * auf Gueltigkeit.
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// *******************************************
|
||||
private function validate()
|
||||
{
|
||||
if(strlen($this->kurzbz)>10)
|
||||
{
|
||||
$this->errormsg = 'Kurzbz darf nicht laenger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->bezeichnung)>50)
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung darf nicht laenger als 50 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_bool($this->multipleresponse))
|
||||
{
|
||||
$this->errormsg = 'Multipleresponse muss ein boolscher Wert sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_bool($this->kategorien))
|
||||
{
|
||||
$this->errormsg = 'Kategorien muss ein boolscher Wert sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->maxfragen) && $this->maxfragen!='')
|
||||
{
|
||||
$this->errormsg = 'maxfragen muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_bool($this->zufallfrage))
|
||||
{
|
||||
$this->errormsg = 'Zufallfrage muss ein boolscher Wert sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_bool($this->zufallvorschlag))
|
||||
{
|
||||
$this->errormsg = 'Zufallvorschlag muss ein boolscher Wert sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_bool($this->levelgleichverteilung) && !is_null($this->levelgleichverteilung))
|
||||
{
|
||||
$this->errormsg = 'Levelgleichverteilung ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->maxpunkte) && $this->maxpunkte!='')
|
||||
{
|
||||
$this->errormsg = 'Maxpunkte muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * Speichert das Gebiet in die Datenbank
|
||||
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
// * ansonsten der Datensatz aktualisiert
|
||||
// * @return true wenn erfolgreich, false im Fehlerfall
|
||||
// ******************************************************************
|
||||
public function save($new=null)
|
||||
{
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_gebiet (kurzbz, bezeichnung, beschreibung, zeit, multipleresponse,
|
||||
kategorien, maxfragen, zufallfrage, zufallvorschlag, level_start, level_sprung_auf, level_sprung_ab,
|
||||
levelgleichverteilung, maxpunkte, insertamum, insertvon , updateamum, updatevon) VALUES('.
|
||||
$this->addslashes($this->kurzbz).",".
|
||||
$this->addslashes($this->bezeichnung).",'".
|
||||
$this->addslashes($this->beschreibung).",'".
|
||||
$this->addslashes($this->zeit).",".
|
||||
($this->multipleresponse?'true':'false').",".
|
||||
$this->addslashes($this->kategorien).",".
|
||||
$this->addslashes($this->maxfragen).",".
|
||||
($this->zufallfrage?'true':'false').",'".
|
||||
($this->zufallvorschlag?'true':'false').",'".
|
||||
$this->addslashes($this->level_start).",".
|
||||
$this->addslashes($this->level_sprung_auf).",".
|
||||
$this->addslashes($this->level_sprung_ab).",".
|
||||
($this->levelgleichverteilung?'true':($this->levelgleichverteilung==false?'false':'null')).",".
|
||||
$this->addslashes($this->maxpunkte).",".
|
||||
$this->addslashes($this->insertamum).",".
|
||||
$this->addslashes($this->insertvon).
|
||||
",null, null);";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_gebiet SET'.
|
||||
' kurzbz='.$this->addslashes($this->kurzbz).','.
|
||||
' bezeichnung='.$this->addslashes($this->bezeichnung).','.
|
||||
' beschreibung='.$this->addslashes($this->beschreibung).','.
|
||||
' zeit='.$this->addslashes($this->zeit).','.
|
||||
' multipleresponse='.($this->multipleresponse?'true':'false').','.
|
||||
' kategorien='.($this->kategorien?'true':'false').','.
|
||||
' maxfragen='.$this->addslashes($this->maxfragen).','.
|
||||
' zufallfrage='.($this->zufallfrage?'true':'false').','.
|
||||
' zufallvorschlag='.($this->zufallvorschlag?'true':'false').','.
|
||||
' level_start='.$this->addslashes($this->level_start).','.
|
||||
' level_sprung_auf='.$this->addslashes($this->level_sprung_auf).','.
|
||||
' level_sprung_ab='.$this->addslashes($this->level_sprung_ab).','.
|
||||
' levelgleichverteilung='.($this->levelgleichverteilung?'true':($this->levelgleichverteilung==false?'false':'null')).','.
|
||||
' maxpunkte='.$this->addslashes($this->maxpunkte).','.
|
||||
' updateamum='.$this->addslashes($this->updateamum).','.
|
||||
' updatevon='.$this->addslashes($this->updatevon).
|
||||
" WHERE gebiet_id='".addslashes($this->gebiet_id)."';";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//aktuelle ID aus der Sequence holen
|
||||
if($new)
|
||||
{
|
||||
$qry='SELECT currval("testtool.tbl_gebiet_gebiet_id_seq") as id;';
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->gebiet_id = $row->id;
|
||||
pg_query($this->conn, 'COMMIT');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
pg_query($this->conn, 'ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Frage:'.$qry;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* prueft das Gebiet auf Gueltigkeit
|
||||
* (diverse Plausichecks)
|
||||
*
|
||||
* @param $gebiet_id
|
||||
*/
|
||||
function check_gebiet($gebiet_id)
|
||||
{
|
||||
$this->errormsg = '';
|
||||
$this->load($gebiet_id);
|
||||
|
||||
//wenn levels verwendet werden muss maxfragen gesetzt sein
|
||||
if($this->level_start!='' && $this->maxfragen=='')
|
||||
{
|
||||
$this->errormsg .= "Wenn Levels verwendet werden, muss die maximale Fragenanzahl gesetzt sein.\n";
|
||||
}
|
||||
|
||||
//Levelgleichverteilung gibt es nur bei nicht geleveltem ablauf
|
||||
if($this->level_start!='' && $this->levelgleichverteilung)
|
||||
{
|
||||
$this->errormsg .= "Levelgleichverteilung ist nur dann erlaubt, wenn der Ablauf nicht gelevelt ist.\n";
|
||||
}
|
||||
|
||||
//Von jedem level muessen mindestens maxfragen vorhanden sein wenn levels aktiv ist
|
||||
if($this->level_start!='')
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl, level FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' GROUP BY level";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->anzahl<$this->maxfragen)
|
||||
{
|
||||
$this->errormsg .= "Es gibt nur $row->anzahl Fragen fuer das Level $row->level. Es muessen aber mindestens $this->maxfragen angelegt werden.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Pruefen ob jede Fragen mindestens 2 Vorschlaege hat
|
||||
$qry = "SELECT frage_id, nummer FROM testtool.tbl_frage
|
||||
WHERE (SELECT count(*) as anzahl FROM testtool.tbl_vorschlag WHERE frage_id=tbl_frage.frage_id)<2
|
||||
AND gebiet_id='".addslashes($gebiet_id)."' AND NOT demo;";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->errormsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) hat weniger als 2 Vorschlaege.\n";
|
||||
}
|
||||
}
|
||||
|
||||
//Wenn Levels verwendet werden, muessen mindestens 2 Verschiedene Level vorhanden sein
|
||||
if($this->level_start!='')
|
||||
{
|
||||
$qry = "SELECT level FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND level is not null GROUP by level";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)<2)
|
||||
{
|
||||
$this->errormsg .= "Wenn Levels verwendet werden, muessen mindestens 2 verschiedene Level vorhanden sein.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Wenn Levelgleichverteilung true ist, muss maxfragen mindestens so gross wie die Anzahl der level sein
|
||||
if($this->levelgleichverteilung)
|
||||
{
|
||||
if($this->maxfragen!='' && $this->maxfragen!=0)
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' AND not demo AND level is not null GROUP BY level";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->anzahl>$this->maxfragen)
|
||||
{
|
||||
$this->errormsg .= "Wenn Levelgleichverteilung gesetzt ist, muss maxfragen groesser als die Anzahl der verwendeten Levels sein\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Wenn zufallsfrage=true und level_start!='' oder levelgleichverteilung
|
||||
// dann darf die punkteanzahl pro level/Frage sich nicht unterscheiden
|
||||
if($this->zufallfrage && ($this->level_start!='' || $this->levelgleichverteilung))
|
||||
{
|
||||
$qry = "SELECT * FROM (
|
||||
SELECT level, count(*) as anzahl FROM (
|
||||
SELECT level, punkte, count(*) as anzahl FROM (
|
||||
SELECT level, sum(punkte) as punkte
|
||||
FROM testtool.tbl_frage JOIN testtool.tbl_vorschlag USING(frage_id)
|
||||
WHERE punkte>0 AND not demo AND gebiet_id='".addslashes($gebiet_id)."'
|
||||
GROUP BY frage_id, level) as a
|
||||
GROUP BY level, punkte ) as b
|
||||
GROUP BY level) as c
|
||||
WHERE c.anzahl>1";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->errormsg .= "Pro Level/Frage darf die positive Punkteanzahl nicht unterschiedlich sein wenn Zufallsfragen und Levels/Levelgleichverteilung verwendet wird. (Unterschiede in Level $row->level)\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// kein Multipleresponse bei gelevelten Gebieten
|
||||
if($this->level_start!='' && $this->level_start!=0 && $this->multipleresponse)
|
||||
{
|
||||
$this->errormsg .= "Bei gelevelten Gebieten ist Multipleresponse nicht erlaubt\n";
|
||||
}
|
||||
|
||||
// maxpunkte muss eingetragen sein
|
||||
if($this->maxpunkte=='' || $this->maxpunkte==0)
|
||||
{
|
||||
$this->errormsg = "Es wurden keine Maximalpunkte fuer dieses Gebiet eingetragen\n";
|
||||
}
|
||||
|
||||
if($this->errormsg=='')
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle Gebiete aus der DB
|
||||
*
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = 'SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung';
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$obj = new gebiet($this->conn, null, null);
|
||||
|
||||
$obj->gebiet_id = $row->gebiet_id;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->zeit = $row->zeit;
|
||||
$obj->multipleresponse = ($row->multipleresponse=='t'?true:false);
|
||||
$obj->kategorien = ($row->kategorien=='t'?true:false);
|
||||
$obj->maxfragen = $row->maxfragen;
|
||||
$obj->zufallfrage = ($row->zufallfrage=='t'?true:false);
|
||||
$obj->zufallvorschlag = ($row->zufallvorschlag=='t'?true:false);
|
||||
$obj->levelgleichverteilung = ($row->levelgleichverteilung=='t'?true:false);
|
||||
$obj->maxpunkte = $row->maxpunkte;
|
||||
$obj->level_start = $row->level_start;
|
||||
$obj->level_sprung_ab = $row->level_sprung_ab;
|
||||
$obj->level_sprung_auf = $row->level_sprung_auf;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler in Fkt getAll()';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Berechnet die maxpunkte fuer das Gebiet
|
||||
*
|
||||
* @param $gebiet_id
|
||||
*/
|
||||
public function berechneMaximalpunkte($gebiet_id)
|
||||
{
|
||||
if(!$this->load($gebiet_id))
|
||||
return false;
|
||||
|
||||
if(!$this->levelgleichverteilung && ($this->level_start=='' || $this->level_start==0))
|
||||
{
|
||||
$qry = "SELECT sum(punkte) as max
|
||||
FROM testtool.tbl_vorschlag JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE gebiet_id='".addslashes($gebiet_id)."' AND punkte>0 AND NOT demo";
|
||||
if($this->maxfragen!='' && $this->maxfragen>0)
|
||||
$qry.=" LIMIT $maxfragen";
|
||||
}
|
||||
elseif($this->levelgleichverteilung && !$this->multipleresponse)
|
||||
{
|
||||
//Levelgleichverteilung mit singleresponse
|
||||
$qry = "SELECT sum(punkteprolevel) as max FROM
|
||||
(
|
||||
SELECT round((anz::decimal/fragengesamt::decimal)*$this->maxfragen*punkte) as punkteprolevel
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
level, punkte, count(*) as anz,
|
||||
(SELECT count(*) FROM testtool.tbl_frage
|
||||
WHERE gebiet_id='".addslashes($gebiet_id)."') as fragengesamt
|
||||
FROM
|
||||
testtool.tbl_frage
|
||||
JOIN testtool.tbl_vorschlag USING(frage_id)
|
||||
WHERE
|
||||
gebiet_id='".addslashes($gebiet_id)."'
|
||||
AND NOT demo
|
||||
GROUP BY level, punkte
|
||||
) a
|
||||
) b";
|
||||
}
|
||||
elseif($this->levelgleichverteilung && $this->multipleresponse)
|
||||
{
|
||||
//Levelgleichverteilung mit multipleresponse
|
||||
$qry = "SELECT sum(punkteprolevel) as max FROM
|
||||
(
|
||||
SELECT round((anz::decimal/fragengesamt::decimal)*$this->maxfragen*punkte) as punkteprolevel
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
level, punkte, count(*) as anz,
|
||||
(SELECT count(*) FROM testtool.tbl_frage
|
||||
WHERE gebiet_id='".addslashes($gebiet_id)."') as fragengesamt
|
||||
FROM
|
||||
testtool.tbl_frage
|
||||
JOIN testtool.tbl_vorschlag USING(frage_id)
|
||||
WHERE
|
||||
gebiet_id='".addslashes($gebiet_id)."'
|
||||
AND NOT demo
|
||||
GROUP BY level, punkte
|
||||
) a
|
||||
) b";
|
||||
}
|
||||
elseif($this->level_start!='')
|
||||
{
|
||||
//Maximalpunkte fuer geleveltes Gebiet ermitteln
|
||||
|
||||
//Punkte pro Level holen
|
||||
$qry = "
|
||||
SELECT level, punkte
|
||||
FROM
|
||||
(
|
||||
SELECT level, frage_id, sum(punkte) as punkte
|
||||
FROM testtool.tbl_frage JOIN testtool.tbl_vorschlag USING(frage_id)
|
||||
WHERE gebiet_id=22 AND punkte>0 AND level>=2 AND NOT demo
|
||||
GROUP BY level, frage_id
|
||||
) as a
|
||||
GROUP by level, punkte";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
$maxfragen = $this->maxfragen;
|
||||
$maxpunkte = 0;
|
||||
$lastpunkte=0;
|
||||
//Punkte mit der Anzahl der Mindestfragen fuer dieses Level multiplizieren
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($maxfragen>0)
|
||||
{
|
||||
$maxpunkte += $row->punkte*$this->level_sprung_auf;
|
||||
$lastpunkte = $row->punkte;
|
||||
$maxfragen -=$this->level_sprung_auf;
|
||||
}
|
||||
}
|
||||
// zuletzt die verbleibenden Fragen mit der Punkteanzahl der letzten (schwersten) Fragen multiplizieren
|
||||
$maxpunkte += $lastpunkte*$maxfragen;
|
||||
return $maxpunkte;
|
||||
}
|
||||
}
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
return $row->max;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Maximalpunkte';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Maximalpunkte';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -39,7 +39,9 @@ class prestudent extends person
|
||||
var $anmeldungreihungstest;
|
||||
var $reihungstestangetreten;
|
||||
var $reihungstest_id;
|
||||
var $punkte;
|
||||
var $punkte; //rt_gesamtpunkte
|
||||
var $rt_punkte1;
|
||||
var $rt_punkte2;
|
||||
var $bismelden;
|
||||
var $anmerkung;
|
||||
var $ext_id_prestudent;
|
||||
@@ -118,7 +120,9 @@ class prestudent extends person
|
||||
$this->anmeldungreihungstest = $row->anmeldungreihungstest;
|
||||
$this->reihungstestangetreten = ($row->reihungstestangetreten=='t'?true:false);
|
||||
$this->reihungstest_id = $row->reihungstest_id;
|
||||
$this->punkte = $row->punkte;
|
||||
$this->punkte = $row->rt_gesamtpunkte;
|
||||
$this->rt_punkte1 = $row->rt_punkte1;
|
||||
$this->rt_punkte2 = $row->rt_punkte2;
|
||||
$this->bismelden = ($row->bismelden=='t'?true:false);
|
||||
$this->person_id = $row->person_id;
|
||||
$this->anmerkung = $row->anmerkung;
|
||||
@@ -150,6 +154,21 @@ class prestudent extends person
|
||||
// *******************************************
|
||||
function validate()
|
||||
{
|
||||
if($this->punkte>9999.9999)
|
||||
{
|
||||
$this->errormsg = 'Reihungstestgesamtpunkte darf nicht groesser als 9999.9999 sein';
|
||||
return false;
|
||||
}
|
||||
if($this->rt_punkte1>9999.9999)
|
||||
{
|
||||
$this->errormsg = 'Reihungstestpunkte1 darf nicht groesser als 9999.9999 sein';
|
||||
return false;
|
||||
}
|
||||
if($this->rt_punkte2>9999.9999)
|
||||
{
|
||||
$this->errormsg = 'Reihungstestpunkte2 darf nicht groesser als 9999.9999 sein';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -171,7 +190,7 @@ class prestudent extends person
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO public.tbl_prestudent (aufmerksamdurch_kurzbz, person_id, studiengang_kz, berufstaetigkeit_code, ausbildungcode, zgv_code, zgvort, zgvdatum, zgvmas_code, zgvmaort, zgvmadatum, aufnahmeschluessel, facheinschlberuf, reihungstest_id, anmeldungreihungstest, reihungstestangetreten, punkte, bismelden, insertamum, insertvon, updateamum, updatevon, ext_id, anmerkung, dual) VALUES('.
|
||||
$qry = 'BEGIN;INSERT INTO public.tbl_prestudent (aufmerksamdurch_kurzbz, person_id, studiengang_kz, berufstaetigkeit_code, ausbildungcode, zgv_code, zgvort, zgvdatum, zgvmas_code, zgvmaort, zgvmadatum, aufnahmeschluessel, facheinschlberuf, reihungstest_id, anmeldungreihungstest, reihungstestangetreten, rt_gesamtpunkte, rt_punkte1, rt_punkte2, bismelden, insertamum, insertvon, updateamum, updatevon, ext_id, anmerkung, dual) VALUES('.
|
||||
$this->addslashes($this->aufmerksamdurch_kurzbz).",".
|
||||
$this->addslashes($this->person_id).",".
|
||||
$this->addslashes($this->studiengang_kz).",".
|
||||
@@ -189,6 +208,8 @@ class prestudent extends person
|
||||
$this->addslashes($this->anmeldungreihungstest).",".
|
||||
($this->reihungstestangetreten?'true':'false').",".
|
||||
$this->addslashes($this->punkte).",".
|
||||
$this->addslashes($this->rt_punkte1).",".
|
||||
$this->addslashes($this->rt_punkte2).",".
|
||||
($this->bismelden?'true':'false').",".
|
||||
$this->addslashes($this->insertamum).",".
|
||||
$this->addslashes($this->insertvon).",".
|
||||
@@ -217,7 +238,9 @@ class prestudent extends person
|
||||
' reihungstest_id='.$this->addslashes($this->reihungstest_id).",".
|
||||
' anmeldungreihungstest='.$this->addslashes($this->anmeldungreihungstest).",".
|
||||
' reihungstestangetreten='.($this->reihungstestangetreten?'true':'false').",".
|
||||
' punkte='.$this->addslashes($this->punkte).",".
|
||||
' rt_gesamtpunkte='.$this->addslashes($this->punkte).",".
|
||||
' rt_punkte1='.$this->addslashes($this->rt_punkte1).",".
|
||||
' rt_punkte2='.$this->addslashes($this->rt_punkte2).",".
|
||||
' bismelden='.($this->bismelden?'true':'false').",".
|
||||
' updateamum='.$this->addslashes($this->updateamum).",".
|
||||
' updatevon='.$this->addslashes($this->updatevon).",".
|
||||
@@ -329,6 +352,8 @@ class prestudent extends person
|
||||
$ps->anmeldungreihungstest = $row->anmeldungreihungstest;
|
||||
$ps->reihungstestangetreten = $row->reihungstestangetreten;
|
||||
$ps->punkte = $row->punkte;
|
||||
$ps->rt_punkte1 = $row->rt_punkte1;
|
||||
$ps->rt_punkte2 = $row->rt_punkte2;
|
||||
$ps->bismelden = $row->bismelden;
|
||||
$ps->rt_studiengang_kz = $row->rt_studiengang_kz;
|
||||
$ps->rt_ort = $row->rt_ort;
|
||||
@@ -551,7 +576,9 @@ class prestudent extends person
|
||||
$ps->anmeldungreihungstest = $row->anmeldungreihungstest;
|
||||
$ps->reihungstestangetreten = ($row->reihungstestangetreten=='t'?true:false);
|
||||
$ps->reihungstest_id = $row->reihungstest_id;
|
||||
$ps->punkte = $row->punkte;
|
||||
$ps->punkte = $row->rt_gesamtpunkte;
|
||||
$ps->rt_punkte1 = $row->rt_punkte1;
|
||||
$ps->rt_punkte2 = $row->rt_punkte2;
|
||||
$ps->bismelden = ($row->bismelden=='t'?true:false);
|
||||
$ps->anmerkung = $row->anmerkung;
|
||||
$ps->dual = ($row->dual=='t'?true:false);
|
||||
@@ -835,7 +862,9 @@ class prestudent extends person
|
||||
$obj->anmeldungreihungstest = $row->anmeldungreihungstest;
|
||||
$obj->reihungstestangetreten = ($row->reihungstestangetreten=='t'?true:false);
|
||||
$obj->reihungstest_id = $row->reihungstest_id;
|
||||
$obj->punkte = $row->punkte;
|
||||
$obj->punkte = $row->rt_gesamtpunkte;
|
||||
$obj->rt_punkte1 = $row->rt_punkte1;
|
||||
$obj->rt_punkte2 = $row->rt_punkte2;
|
||||
$obj->bismelden = ($row->bismelden=='t'?true:false);
|
||||
$obj->person_id = $row->person_id;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
|
||||
+141
-10
@@ -28,8 +28,8 @@ class pruefling
|
||||
var $idnachweis;
|
||||
var $registriert;
|
||||
var $prestudent_id;
|
||||
var $gruppe_kurzbz;
|
||||
|
||||
var $semester;
|
||||
|
||||
// ErgebnisArray
|
||||
var $result=array();
|
||||
var $num_rows=0;
|
||||
@@ -79,7 +79,7 @@ class pruefling
|
||||
$this->idnachweis = $row->idnachweis;
|
||||
$this->registriert = $row->registriert;
|
||||
$this->prestudent_id = $row->prestudent_id;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->semester = $row->semester;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -130,12 +130,12 @@ class pruefling
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, gruppe_kurzbz) VALUES('.
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES('.
|
||||
$this->addslashes($this->studiengang_kz).",".
|
||||
$this->addslashes($this->idnachweis).",".
|
||||
$this->addslashes($this->registriert).",".
|
||||
$this->addslashes($this->prestudent_id).",".
|
||||
$this->addslashes($this->gruppe_kurzbz).");";
|
||||
$this->addslashes($this->semester).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -143,8 +143,8 @@ class pruefling
|
||||
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
|
||||
' idnachweis='.$this->addslashes($this->idnachweis).','.
|
||||
' registriert='.$this->addslashes($this->registriert).','.
|
||||
' prestudent_id='.$this->addslashes($this->prestudent_id).','.
|
||||
' gruppe_kurzbz='.$this->addslashes($this->gruppe_kurzbz).
|
||||
' semester='.$this->addslashes($this->semester).','.
|
||||
' prestudent_id='.$this->addslashes($this->prestudent_id).
|
||||
" WHERE pruefling_id='".addslashes($this->pruefling_id)."';";
|
||||
}
|
||||
|
||||
@@ -164,14 +164,14 @@ class pruefling
|
||||
else
|
||||
{
|
||||
pg_query($this->conn, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim lesen der Sequence';
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim lesen der Sequence';
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -200,7 +200,7 @@ class pruefling
|
||||
$this->idnachweis = $row->idnachweis;
|
||||
$this->registriert = $row->registriert;
|
||||
$this->prestudent_id = $row->prestudent_id;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->semester = $row->semester;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -215,5 +215,136 @@ class pruefling
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ermittelt den aktuellen Level (schwierigkeitsgrad der Frage)
|
||||
* des Prueflings fuer das uebergebene Gebiet
|
||||
*
|
||||
* @param $pruefling_id
|
||||
* @param $gebiet_id
|
||||
*/
|
||||
function getPrueflingLevel($pruefling_id, $gebiet_id)
|
||||
{
|
||||
$gebiet = new gebiet($this->conn, $gebiet_id);
|
||||
|
||||
//wenn Levelsystem fuer dieses Gebiet aktiviert ist
|
||||
if($gebiet->level_start!='')
|
||||
{
|
||||
//Maximal und Minimal Level fuer dieses Gebiet ermitteln
|
||||
$max_level = 0;
|
||||
$min_level = 0;
|
||||
|
||||
$qry = "SELECT max(level) as max, min(level) as min FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."'";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$max_level = $row->max;
|
||||
$min_level = $row->min;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'unbekannter Fehler in getPrueflingLevel';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln des Pruefling-Levels';
|
||||
return false;
|
||||
}
|
||||
|
||||
//alle bisherigen Antworten fuer dieses Gebiet holen
|
||||
$qry = "SELECT
|
||||
tbl_vorschlag.punkte
|
||||
FROM
|
||||
testtool.tbl_pruefling_frage
|
||||
JOIN testtool.tbl_vorschlag USING(frage_id)
|
||||
JOIN testtool.tbl_antwort USING(vorschlag_id)
|
||||
JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE
|
||||
tbl_frage.gebiet_id='".addslashes($gebiet_id)."' AND
|
||||
tbl_pruefling_frage.pruefling_id='".addslashes($pruefling_id)."' AND
|
||||
tbl_antwort.pruefling_id = tbl_pruefling_frage.pruefling_id
|
||||
ORDER BY tbl_pruefling_frage.nummer ASC";
|
||||
|
||||
$aktueller_level=$gebiet->level_start;
|
||||
$anzahl_richtig=0;
|
||||
$anzahl_falsch=0;
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->punkte>0)
|
||||
{
|
||||
//wenn die Frage richtig beantwortet wurde dann richtig-zaehler erhoehen
|
||||
$anzahl_richtig++;
|
||||
$anzahl_falsch=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
//wenn die Frage falsch beantwortet wurde dann falsch-zaehler erhoehen
|
||||
$anzahl_richtig=0;
|
||||
$anzahl_falsch++;
|
||||
}
|
||||
|
||||
//wenn einer der Zaehler das Sprunglevel erreicht hat, dann
|
||||
//in ein anderes Level springen
|
||||
if($anzahl_richtig==$gebiet->level_sprung_auf)
|
||||
{
|
||||
$aktueller_level++;
|
||||
$anzahl_richtig=0;
|
||||
$anzahl_falsch=0;
|
||||
}
|
||||
elseif($anzahl_falsch==$gebiet->level_sprung_ab)
|
||||
{
|
||||
$aktueller_level--;
|
||||
$anzahl_richtig=0;
|
||||
$anzahl_falsch=0;
|
||||
}
|
||||
|
||||
//aktueller level darf nicht kleiner/groesser als der minimal/maximal Level sein
|
||||
if($aktueller_level<$min_level)
|
||||
$aktueller_level=$min_level;
|
||||
if($aktueller_level>$max_level)
|
||||
$aktueller_level=$max_level;
|
||||
}
|
||||
|
||||
return $aktueller_level;
|
||||
}
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Berechnet das Reihungstestergebnis fuer einen Prestudenten
|
||||
*
|
||||
* @param $prestudent_id
|
||||
* @return Endpunkte des Reihungstests
|
||||
*/
|
||||
function getReihungstestErgebnis($prestudent_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.vw_auswertung
|
||||
WHERE prestudent_id='".addslashes($prestudent_id)."'";
|
||||
|
||||
$ergebnis=0;
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
//wenn maxpunkte ueberschritten wurde -> 100%
|
||||
if($row->punkte>=$row->maxpunkte)
|
||||
$prozent=100;
|
||||
else
|
||||
$prozent = ($row->punkte/$row->maxpunkte)*100;
|
||||
|
||||
$ergebnis+=$prozent*$row->gewicht;
|
||||
}
|
||||
return $ergebnis;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -49,6 +49,8 @@ class studiengang
|
||||
var $ext_id; // bigint
|
||||
var $orgform_kurzbz;
|
||||
var $zusatzinfo_html;
|
||||
var $sprache;
|
||||
var $testtool_sprachwahl;
|
||||
|
||||
var $kuerzel; // = typ + kurzbz (Bsp: BBE)
|
||||
|
||||
@@ -126,6 +128,8 @@ class studiengang
|
||||
$this->kuerzel = strtoupper($row->typ.$row->kurzbz);
|
||||
$this->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$this->zusatzinfo_html = $row->zusatzinfo_html;
|
||||
$this->sprache = $row->sprache;
|
||||
$this->testtool_sprachwahl = $row->testtool_sprachwahl;
|
||||
|
||||
$this->telefon=$row->telefon;
|
||||
$this->titelbescheidvom=$row->titelbescheidvom;
|
||||
@@ -185,6 +189,8 @@ class studiengang
|
||||
$stg_obj->kuerzel = strtoupper($row->typ.$row->kurzbz);
|
||||
$stg_obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$stg_obj->zusatzinfo_html = $row->zusatzinfo_html;
|
||||
$stg_obj->sprache = $row->sprache;
|
||||
$stg_obj->testtool_sprachwahl = $row->testtool_sprachwahl;
|
||||
|
||||
$stg_obj->telefon=$row->telefon;
|
||||
$stg_obj->titelbescheidvom=$row->titelbescheidvom;
|
||||
|
||||
+161
-26
@@ -26,10 +26,17 @@ class vorschlag
|
||||
var $vorschlag_id;
|
||||
var $frage_id;
|
||||
var $nummer;
|
||||
var $antwort;
|
||||
var $punkte;
|
||||
|
||||
var $text;
|
||||
var $bild;
|
||||
|
||||
var $audio;
|
||||
|
||||
var $insertamum;
|
||||
var $insertvon;
|
||||
var $updateamum;
|
||||
var $updatevon;
|
||||
|
||||
// ErgebnisArray
|
||||
var $result=array();
|
||||
var $num_rows=0;
|
||||
@@ -66,7 +73,7 @@ class vorschlag
|
||||
// * Laedt Vorschlag mit der uebergebenen ID
|
||||
// * @param $vorschlag_id ID des Vorschlages der geladen werden soll
|
||||
// ***********************************************************
|
||||
function load($vorschlag_id)
|
||||
function load($vorschlag_id, $sprache='German')
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'";
|
||||
|
||||
@@ -76,24 +83,38 @@ class vorschlag
|
||||
{
|
||||
$this->vorschlag_id = $row->vorschlag_id;
|
||||
$this->frage_id = $row->frage_id;
|
||||
$this->antwort = $row->antwort;
|
||||
$this->punkte = $row->punkte;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->text = $row->text;
|
||||
$this->bild = $row->bild;
|
||||
$this->loadVorschlagSprache($vorschlag_id, $sprache);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Eintrag gefunden fuer $vorschlag_id";
|
||||
$this->errormsg = "Kein Eintrag gefunden fuer $vorschlag_id $sprache";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim laden: $qry";
|
||||
$this->errormsg = "Fehler beim Laden: $qry";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function loadVorschlagSprache($vorschlag_id, $sprache)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag_sprache
|
||||
WHERE vorschlag_id='".addslashes($vorschlag_id)."' AND sprache='".addslashes($sprache)."'";
|
||||
if($result_sprache = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row_sprache = pg_fetch_object($result_sprache))
|
||||
{
|
||||
$this->text = $row_sprache->text;
|
||||
$this->bild = $row_sprache->bild;
|
||||
$this->audio = $row_sprache->audio;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * wenn $var '' ist wird NULL zurueckgegeben
|
||||
@@ -130,29 +151,57 @@ class vorschlag
|
||||
|
||||
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->text."',".
|
||||
$this->addslashes($this->bild).");";
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_vorschlag (frage_id, nummer, punkte, insertamum, insertvon, updateamum, updatevon) VALUES('.
|
||||
$this->addslashes($this->frage_id).','.
|
||||
$this->addslashes($this->nummer).','.
|
||||
$this->addslashes($this->punkte).','.
|
||||
$this->addslashes($this->insertamum).','.
|
||||
$this->addslashes($this->insertvon).','.
|
||||
$this->addslashes($this->updateamum).','.
|
||||
$this->addslashes($this->updatevon).');';
|
||||
}
|
||||
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->text."'";
|
||||
if($this->bild!='')
|
||||
$qry.=' , bild='.$this->addslashes($this->bild);
|
||||
$qry.=" WHERE vorschlag_id='".addslashes($this->vorschlag_id)."';";
|
||||
' punkte='.$this->addslashes($this->punkte).','.
|
||||
' updateamum='.$this->addslashes($this->updateamum).','.
|
||||
' updatevon='.$this->addslashes($this->updatevon).
|
||||
" WHERE vorschlag_id='".addslashes($this->vorschlag_id)."';";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
return true;
|
||||
if($this->new)
|
||||
{
|
||||
$qry = "SELECT currval('testtool.tbl_vorschlag_vorschlag_id_seq') as id";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->vorschlag_id = $row->id;
|
||||
pg_query($this->conn, 'COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -161,9 +210,84 @@ class vorschlag
|
||||
}
|
||||
}
|
||||
|
||||
function getVorschlag($frage_id)
|
||||
/**
|
||||
* Pueft die Daten vor dem Speichern
|
||||
*
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
function validate_vorschlagsprache()
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag WHERE frage_id='".addslashes($frage_id)."' ORDER BY nummer";
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert einen Eintrag in tbl_vorschlag_sprache
|
||||
*
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
function save_vorschlagsprache()
|
||||
{
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate_vorschlagsprache())
|
||||
return false;
|
||||
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag_sprache
|
||||
WHERE vorschlag_id='".addslashes($this->vorschlag_id)."' AND
|
||||
sprache='".addslashes($this->sprache)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
$this->new=false;
|
||||
else
|
||||
$this->new=true;
|
||||
}
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'INSERT INTO testtool.tbl_vorschlag_sprache (vorschlag_id, sprache, text, bild, audio,
|
||||
insertamum, insertvon, updateamum, updatevon) VALUES('.
|
||||
$this->addslashes($this->vorschlag_id).','.
|
||||
$this->addslashes($this->sprache).','.
|
||||
$this->addslashes($this->text).','.
|
||||
$this->addslashes($this->bild).','.
|
||||
$this->addslashes($this->audio).','.
|
||||
$this->addslashes($this->insertamum).','.
|
||||
$this->addslashes($this->insertvon).','.
|
||||
$this->addslashes($this->updateamum).','.
|
||||
$this->addslashes($this->updatevon).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_vorschlag_sprache SET'.
|
||||
' text='.$this->addslashes($this->text).',';
|
||||
if($this->bild!='')
|
||||
$qry.=' bild='.$this->addslashes($this->bild).',';
|
||||
if($this->audio!='')
|
||||
$qry.=' audio='.$this->addslashes($this->audio).',';
|
||||
|
||||
$qry.= ' updateamum='.$this->addslashes($this->updateamum).','.
|
||||
' updatevon='.$this->addslashes($this->updatevon).
|
||||
" WHERE vorschlag_id='".addslashes($this->vorschlag_id)."' AND sprache='".addslashes($this->sprache)."';";
|
||||
}
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getVorschlag($frage_id, $sprache, $random)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag WHERE frage_id='".addslashes($frage_id)."'";
|
||||
if($random)
|
||||
$qry.=" ORDER BY random()";
|
||||
else
|
||||
$qry.=" ORDER BY nummer";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
@@ -173,9 +297,19 @@ class vorschlag
|
||||
$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;
|
||||
$vs->punkte = $row->punkte;
|
||||
|
||||
$qry = "SELECT * FROM testtool.tbl_vorschlag_sprache
|
||||
WHERE vorschlag_id='".addslashes($row->vorschlag_id)."' AND sprache='".addslashes($sprache)."'";
|
||||
if($result_sprache = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row_sprache = pg_fetch_object($result_sprache))
|
||||
{
|
||||
$vs->text = $row_sprache->text;
|
||||
$vs->bild = $row_sprache->bild;
|
||||
$vs->audio = $row_sprache->audio;
|
||||
}
|
||||
}
|
||||
|
||||
$this->result[] = $vs;
|
||||
|
||||
@@ -188,6 +322,7 @@ class vorschlag
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function delete($vorschlag_id)
|
||||
{
|
||||
$qry = "DELETE FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'";
|
||||
|
||||
@@ -126,6 +126,12 @@ function draw_row($row)
|
||||
}
|
||||
$mitarbeiter = '('.$mitarbeiter.')';
|
||||
|
||||
$anzahl_studenten=0;
|
||||
$qry = "SELECT count(*) as anz FROM campus.vw_student_lehrveranstaltung WHERE lehreinheit_id='".addslashes($row->lehreinheit_id)."'";
|
||||
if($result_std = pg_query($conn, $qry))
|
||||
if($row_std = pg_fetch_object($result_std))
|
||||
$anzahl_studenten = $row_std->anz;
|
||||
|
||||
$lehrfach = new lehrfach($conn, null, true);
|
||||
$lehrfach->load($row->lehrfach_id);
|
||||
|
||||
@@ -148,6 +154,7 @@ function draw_row($row)
|
||||
<LEHREINHEIT:unr><![CDATA['.$row->unr.']]></LEHREINHEIT:unr>
|
||||
<LEHREINHEIT:lvnr><![CDATA['.$row->lvnr.']]></LEHREINHEIT:lvnr>
|
||||
<LEHREINHEIT:bezeichnung><![CDATA['.$lehrfach->kurzbz.'-'.$row->lehrform_kurzbz.' '.$lehrfach->bezeichnung.' '.$grp.' '.$mitarbeiter.']]></LEHREINHEIT:bezeichnung>
|
||||
<LEHREINHEIT:anzahl_studenten><![CDATA['.$anzahl_studenten.']]></LEHREINHEIT:anzahl_studenten>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
';
|
||||
|
||||
@@ -250,7 +250,7 @@ if(!$result = pg_query($conn, $qry))
|
||||
if($result_fb = pg_query($conn, $qry))
|
||||
if($row_fb = pg_fetch_object($result_fb))
|
||||
$fachbereich = $row_fb->bezeichnung;
|
||||
|
||||
|
||||
echo "
|
||||
<RDF:Description id=\"".$row_le->lehreinheit_id."\" about=\"".$rdf_url.'/'.$row_lva->lehrveranstaltung_id."/$row_le->lehreinheit_id\" >
|
||||
<LVA:lehrveranstaltung_id>".$row_lva->lehrveranstaltung_id."</LVA:lehrveranstaltung_id>
|
||||
|
||||
+3
-1
@@ -279,6 +279,8 @@ function draw_prestudent($row)
|
||||
<STUDENT:anmeldungreihungstest_iso><![CDATA['.$row->anmeldungreihungstest.']]></STUDENT:anmeldungreihungstest_iso>
|
||||
<STUDENT:reihungstestangetreten><![CDATA['.($row->reihungstestangetreten?'true':'false').']]></STUDENT:reihungstestangetreten>
|
||||
<STUDENT:punkte><![CDATA['.$row->punkte.']]></STUDENT:punkte>
|
||||
<STUDENT:punkte1><![CDATA['.$row->rt_punkte1.']]></STUDENT:punkte1>
|
||||
<STUDENT:punkte2><![CDATA['.$row->rt_punkte2.']]></STUDENT:punkte2>
|
||||
<STUDENT:bismelden><![CDATA['.($row->bismelden?'true':'false').']]></STUDENT:bismelden>
|
||||
<STUDENT:dual><![CDATA['.($row->dual?'true':'false').']]></STUDENT:dual>
|
||||
<STUDENT:dual_bezeichnung><![CDATA['.($row->dual?'Ja':'Nein').']]></STUDENT:dual_bezeichnung>
|
||||
@@ -400,7 +402,7 @@ if($xmlformat=='rdf')
|
||||
LIMIT 1
|
||||
)
|
||||
AS email_privat,
|
||||
(SELECT punkte FROM public.tbl_prestudent WHERE prestudent_id=tbl_student.prestudent_id) as punkte, tbl_prestudent.dual as dual
|
||||
(SELECT rt_gesamtpunkte as punkte FROM public.tbl_prestudent WHERE prestudent_id=tbl_student.prestudent_id) as punkte, tbl_prestudent.dual as dual
|
||||
FROM public.tbl_student
|
||||
JOIN public.tbl_benutzer ON (student_uid=uid) JOIN public.tbl_person p USING (person_id) JOIN public.tbl_prestudent USING(prestudent_id) ";
|
||||
if($gruppe_kurzbz!=null)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 749 B |
+62
-2
@@ -31,9 +31,10 @@ hr
|
||||
color:#CCCCCC;
|
||||
height:1px;
|
||||
}
|
||||
@media screen {
|
||||
#menue
|
||||
{
|
||||
top:80px;
|
||||
top:8%;
|
||||
width:19%;
|
||||
height:80%;
|
||||
z-index:1000;
|
||||
@@ -55,7 +56,40 @@ html>body #content
|
||||
{
|
||||
position:absolute;
|
||||
}
|
||||
}
|
||||
|
||||
/* Druckausgabe */
|
||||
|
||||
|
||||
@media print {
|
||||
|
||||
.home_logo
|
||||
{
|
||||
display:none;
|
||||
}
|
||||
.header_line
|
||||
{
|
||||
display:none;
|
||||
}
|
||||
|
||||
#menue
|
||||
{
|
||||
display:none;
|
||||
}
|
||||
#GlobalMenu
|
||||
{
|
||||
display:none;
|
||||
}
|
||||
|
||||
#content
|
||||
{
|
||||
width:800px;
|
||||
height:900px;
|
||||
left:0px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
}
|
||||
input.TextBox
|
||||
{
|
||||
background-color: White;
|
||||
@@ -421,8 +455,9 @@ font.ContentHeader
|
||||
#news .news .titel
|
||||
{
|
||||
font-weight: bold;
|
||||
/*font-size: normal;*/
|
||||
font-size: normal;
|
||||
padding: 0px 10px 0px 10px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#news .news .text
|
||||
{
|
||||
@@ -486,6 +521,31 @@ img#layout
|
||||
}
|
||||
|
||||
|
||||
.studentnote
|
||||
{
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.benotungstool_tabs
|
||||
{
|
||||
border-top: 1px solid gray;
|
||||
border-left: 1px solid gray;
|
||||
border-right: 1px solid gray;
|
||||
text-align: center;
|
||||
}
|
||||
.benotungstool_tabs_active
|
||||
{
|
||||
border-top: 2px solid gray;
|
||||
border-left: 2px solid gray;
|
||||
border-right: 2px solid gray;
|
||||
background-color: #eeeeee;
|
||||
text-align: center;
|
||||
}
|
||||
.benotungstool_subtab
|
||||
{
|
||||
border-top: 1px solid gray;
|
||||
border-bottom: 1px solid gray;
|
||||
}
|
||||
|
||||
/*aussortiert*/
|
||||
|
||||
|
||||
@@ -144,6 +144,7 @@ if($result = pg_query($conn, $qry))
|
||||
Grant select on vw_studiensemester to group "admin";
|
||||
Grant select on public.vw_benutzerfunktion to group "admin";
|
||||
Grant select on public.vw_prestudent to group "admin";
|
||||
GRANT SELECT ON public.vw_prestudent to group web;
|
||||
GRANT SELECT ON lehre.vw_stundenplandev_student_unr TO GROUP web;
|
||||
GRANT SELECT ON lehre.vw_stundenplandev_student_unr TO GROUP admin;
|
||||
';
|
||||
|
||||
+49
-11
@@ -34,6 +34,36 @@ if (!$conn = pg_pconnect(CONN_STRING))
|
||||
|
||||
echo '<H1>Systemcheck!</H1>';
|
||||
echo '<H2>DB-Updates!</H2>';
|
||||
|
||||
// **************** public.tbl_sprache.flagge *******************************
|
||||
if(!$result = @pg_query($conn, "SELECT flagge FROM public.tbl_sprache LIMIT 1;"))
|
||||
{
|
||||
$qry = "ALTER TABLE public.tbl_sprache ADD COLUMN locale varchar(5);
|
||||
ALTER TABLE public.tbl_sprache ADD COLUMN flagge text;";
|
||||
|
||||
if(!pg_query($conn, $qry))
|
||||
echo '<strong>public.tbl_sprache: '.pg_last_error($conn).' </strong><br>';
|
||||
else
|
||||
echo ' public.tbl_sprache: spalte locale und flagge hinzugefuegt!<br>';
|
||||
}
|
||||
|
||||
// **************** lehre.tbl_projektarbeit.titel *******************************
|
||||
if($result = pg_query($conn, "SELECT atttypmod FROM pg_class JOIN pg_attribute ON(pg_class.oid=pg_attribute.attrelid) WHERE relname='tbl_projektarbeit' AND attname='titel'"))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->atttypmod=='260')
|
||||
{
|
||||
$qry = "ALTER TABLE lehre.tbl_projektarbeit ALTER COLUMN titel TYPE varchar(1024);
|
||||
ALTER TABLE lehre.tbl_projektarbeit ALTER COLUMN titel_english TYPE varchar(1024);";
|
||||
|
||||
if(!@pg_query($conn, $qry))
|
||||
echo '<strong>lehre.tbl_projektarbeit: '.pg_last_error($conn).' </strong><br>';
|
||||
else
|
||||
echo ' lehre.tbl_projektarbeit: spalte titel und titel_english wurde auf 1024 Zeichen verbreitert!<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
// ************** campus.tbl_paabgabetyp **************************************************
|
||||
if(!@pg_query($conn, 'SELECT * FROM campus.tbl_paabgabetyp LIMIT 1;'))
|
||||
{
|
||||
@@ -90,6 +120,9 @@ if(!@pg_query($conn, 'SELECT * FROM campus.tbl_paabgabetyp LIMIT 1;'))
|
||||
Grant delete on campus.tbl_paabgabetyp to group admin;
|
||||
Grant insert on campus.tbl_paabgabetyp to group admin;
|
||||
Grant select on campus.tbl_paabgabetyp to group web;
|
||||
|
||||
GRANT SELECT ON campus.tbl_paabgabe_paabgabe_id_seq TO GROUP web;
|
||||
GRANT UPDATE ON campus.tbl_paabgabe_paabgabe_id_seq TO GROUP web;
|
||||
";
|
||||
|
||||
if(!@pg_query($conn, $sql))
|
||||
@@ -885,6 +918,8 @@ $tabellen=array(
|
||||
"campus.tbl_newssprache" => array("sprache","news_id","betreff","text","updateamum","updatevon","insertamum","insertvon"),
|
||||
"campus.tbl_notenschluessel" => array("lehreinheit_id","note","punkte"),
|
||||
"campus.tbl_notenschluesseluebung" => array("uebung_id","note","punkte"),
|
||||
"campus.tbl_paabgabetyp" => array("paabgabetyp_kurzbz","bezeichnung"),
|
||||
"campus.tbl_paabgabe" => array("paabgabe_id","projektarbeit_id","paabgabetyp_kurzbz","fixtermin","datum","kurzbz","abgabedatum", "insertvon","insertamum","updatevon","updateamum"),
|
||||
"campus.tbl_reservierung" => array("reservierung_id","ort_kurzbz","studiengang_kz","uid","stunde","datum","titel","beschreibung","semester","verband","gruppe","gruppe_kurzbz","veranstaltung_id"),
|
||||
"campus.tbl_resturlaub" => array("mitarbeiter_uid","resturlaubstage","mehrarbeitsstunden","updateamum","updatevon","insertamum","insertvon","urlaubstageprojahr"),
|
||||
"campus.tbl_studentbeispiel" => array("student_uid","beispiel_id","vorbereitet","probleme","updateamum","updatevon","insertamum","insertvon"),
|
||||
@@ -919,7 +954,8 @@ $tabellen=array(
|
||||
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz"),
|
||||
"lehre.tbl_moodle" => array("lehrveranstaltung_id","lehreinheit_id","moodle_id","mdl_course_id","studiensemester_kurzbz","gruppen","insertamum","insertvon"),
|
||||
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe"),
|
||||
"lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english"),
|
||||
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe"),
|
||||
"lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en"),
|
||||
"lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"),
|
||||
"lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id"),
|
||||
@@ -966,31 +1002,33 @@ $tabellen=array(
|
||||
"public.tbl_personfunktionfirma" => array("personfunktionfirma_id","funktion_kurzbz","person_id","firma_id","position","anrede"),
|
||||
"public.tbl_preinteressent" => array("preinteressent_id","person_id","studiensemester_kurzbz","firma_id","erfassungsdatum","einverstaendnis","absagedatum","anmerkung","maturajahr","infozusendung","aufmerksamdurch_kurzbz","kontaktmedium_kurzbz","insertamum","insertvon","updateamum","updatevon"),
|
||||
"public.tbl_preinteressentstudiengang" => array("studiengang_kz","preinteressent_id","freigabedatum","uebernahmedatum","prioritaet","insertamum","insertvon","updateamum","updatevon"),
|
||||
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","punkte","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id"),
|
||||
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id"),
|
||||
"public.tbl_prestudentrolle" => array("prestudent_id","rolle_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id"),
|
||||
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung"),
|
||||
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"public.tbl_rolle" => array("rolle_kurzbz","beschreibung","anmerkung","ext_id"),
|
||||
"public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"),
|
||||
"public.tbl_sprache" => array("sprache"),
|
||||
"public.tbl_sprache" => array("sprache","locale","flagge"),
|
||||
"public.tbl_standort" => array("standort_kurzbz","adresse_id"),
|
||||
"public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","organisationsform","moodle"),
|
||||
"public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","organisationsform","moodle","sprache","testtool_sprachwahl"),
|
||||
"public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","ext_id"),
|
||||
"public.tbl_variable" => array("name","uid","wert"),
|
||||
"public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung"),
|
||||
"public.tbl_vorlagestudiengang" => array("vorlage_kurzbz","studiengang_kz","version","text"),
|
||||
"sync.tbl_zutrittskarte" => array("key","name","firstname","groupe","logaswnumber","physaswnumber","validstart","validend","text1","text2","text3","text4","text5","text6","pin"),
|
||||
"testtool.tbl_ablauf" => array("gebiet_id","studiengang_kz","reihung","gewicht"),
|
||||
"testtool.tbl_antwort" => array("antwort_id","frage_id","pruefling_id","antwort","begintime","endtime"),
|
||||
"testtool.tbl_frage" => array("frage_id","kategorie_kurzbz","gebiet_id","gruppe_kurzbz","loesung","nummer","demo","text","bild"),
|
||||
"testtool.tbl_gebiet" => array("gebiet_id","kurzbz","bezeichnung","beschreibung","zeit","abzug","kategorien"),
|
||||
"testtool.tbl_gruppe" => array("gruppe_kurzbz"),
|
||||
"testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "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"),
|
||||
"testtool.tbl_kategorie" => array("kategorie_kurzbz","gebiet_id"),
|
||||
"testtool.tbl_kriterien" => array("gebiet_id","kategorie_kurzbz","punkte","typ"),
|
||||
"testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert","gruppe_kurzbz"),
|
||||
"testtool.tbl_vorschlag" => array("vorschlag_id","frage_id","nummer","antwort","text","bild")
|
||||
"testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert"),
|
||||
"testtool.tbl_vorschlag" => array("vorschlag_id","frage_id","nummer","punkte","insertamum","insertvon","updateamum","updatevon"),
|
||||
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"),
|
||||
"testtool.tbl_frage_sprache" => array("frage_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
|
||||
"testtool.tbl_vorschlag_sprache" => array("vorschlag_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
|
||||
);
|
||||
|
||||
$tabs=array_keys($tabellen);
|
||||
|
||||
@@ -97,7 +97,8 @@ echo '<hr><br><a href="'.$_SERVER['PHP_SELF'].'?action=deletedummyanswers" oncli
|
||||
|
||||
if(isset($_GET['action']) && $_GET['action']=='deletedummyanswers')
|
||||
{
|
||||
$qry = "DELETE FROM testtool.tbl_antwort WHERE pruefling_id=841";
|
||||
$qry = "DELETE FROM testtool.tbl_antwort WHERE pruefling_id=841;
|
||||
DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=841;";
|
||||
if(pg_query($conn, $qry))
|
||||
echo ' <b>Antworten wurden gelöscht</b>';
|
||||
else
|
||||
@@ -154,7 +155,9 @@ if(isset($_POST['deleteteilgebiet']))
|
||||
|
||||
$qry = "DELETE FROM testtool.tbl_antwort
|
||||
WHERE pruefling_id='$pruefling->pruefling_id' AND
|
||||
frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".$_POST['gebiet']."')";
|
||||
frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".$_POST['gebiet']."');
|
||||
DELETE FROM testtool.tbl_pruefling_frage where pruefling_id='$pruefling->pruefling_id' AND
|
||||
frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".$_POST['gebiet']."');";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
echo '<b>'.pg_affected_rows($result).' Antworten wurden gelöscht</b>';
|
||||
@@ -169,8 +172,9 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
|
||||
{
|
||||
if(is_numeric($_POST['prestudent_id']) && $_POST['prestudent_id']!='')
|
||||
{
|
||||
$qry="SELECT nachname,vorname,tbl_frage.gruppe_kurzbz,person_id,prestudent_id,pruefling_id,kurzbz,nummer,antwort,loesung
|
||||
$qry="SELECT nachname,vorname,person_id,prestudent_id,pruefling_id,kurzbz,tbl_frage.nummer, tbl_vorschlag.nummer as antwortnummer, tbl_vorschlag.punkte
|
||||
FROM testtool.tbl_antwort
|
||||
JOIN testtool.tbl_vorschlag USING(vorschlag_id)
|
||||
JOIN testtool.tbl_frage USING (frage_id)
|
||||
JOIN testtool.tbl_gebiet USING (gebiet_id)
|
||||
JOIN testtool.tbl_pruefling USING (pruefling_id)
|
||||
@@ -185,14 +189,13 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
|
||||
<tr>
|
||||
<th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>Gruppe</th>
|
||||
<th>PersonID</th>
|
||||
<th>PrestudentID</th>
|
||||
<th>PrueflingID</th>
|
||||
<th>Kurzbz</th>
|
||||
<th>Nummer</th>
|
||||
<th>Antwort</th>
|
||||
<th>Lösung</th>
|
||||
<th>Frage Nummer</th>
|
||||
<th>Antwort Nummer</th>
|
||||
<th>Punkte</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
@@ -201,14 +204,13 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
|
||||
echo '<tr>';
|
||||
echo "<td>$row->nachname</td>";
|
||||
echo "<td>$row->vorname</td>";
|
||||
echo "<td>$row->gruppe_kurzbz</td>";
|
||||
echo "<td>$row->person_id</td>";
|
||||
echo "<td>$row->prestudent_id</td>";
|
||||
echo "<td>$row->pruefling_id</td>";
|
||||
echo "<td>$row->kurzbz</td>";
|
||||
echo "<td>$row->nummer</td>";
|
||||
echo "<td>$row->antwort</td>";
|
||||
echo "<td>$row->loesung</td>";
|
||||
echo "<td>$row->antwortnummer</td>";
|
||||
echo "<td>$row->punkte</td>";
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
|
||||
@@ -27,6 +27,9 @@
|
||||
require_once('../../include/ort.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/pruefling.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/prestudent.class.php');
|
||||
|
||||
require_once('../../include/Excel/excel.php');
|
||||
|
||||
@@ -37,6 +40,8 @@
|
||||
$datum_obj = new datum();
|
||||
$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1');
|
||||
$reihungstest_id = (isset($_GET['reihungstest_id'])?$_GET['reihungstest_id']:'');
|
||||
$prestudent_id = (isset($_GET['prestudent_id'])?$_GET['prestudent_id']:'');
|
||||
$rtpunkte = (isset($_GET['rtpunkte'])?$_GET['rtpunkte']:'');
|
||||
$neu = (isset($_GET['neu'])?true:false);
|
||||
$stg_arr = array();
|
||||
$error = false;
|
||||
@@ -218,6 +223,63 @@
|
||||
}
|
||||
$neu=false;
|
||||
}
|
||||
|
||||
// Uebertraegt die Punkte eines Prestudenten ins FAS
|
||||
if(isset($_GET['type']) && $_GET['type']=='savertpunkte')
|
||||
{
|
||||
$prestudent = new prestudent($conn);
|
||||
$prestudent->load($prestudent_id);
|
||||
|
||||
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid'))
|
||||
{
|
||||
$prestudent->rt_punkte1 = $rtpunkte;
|
||||
$prestudent->punkte = $prestudent->rt_punkte1 + $prestudent->rt_punkte2;
|
||||
|
||||
$prestudent->save(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="input_error"><br>Sie haben keine Berechtigung zur Uebernahme der Punkte fuer '.$row->nachname.' '.$row->vorname.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
// Uebertraegt alle Punkte eines Reihungstests ins FAS
|
||||
if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte')
|
||||
{
|
||||
$errormsg='';
|
||||
$qry = "SELECT prestudent_id, studiengang_kz, nachname, vorname
|
||||
FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id)
|
||||
WHERE reihungstest_id='".addslashes($reihungstest_id)."'";
|
||||
// AND (rt_punkte1='' OR rt_punkte1 is null)";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid'))
|
||||
{
|
||||
$prestudent = new prestudent($conn);
|
||||
$prestudent->load($row->prestudent_id);
|
||||
|
||||
$pruefling = new pruefling($conn);
|
||||
$rtpunkte = $pruefling->getReihungstestErgebnis($row->prestudent_id);
|
||||
|
||||
$prestudent->rt_punkte1 = $rtpunkte;
|
||||
$prestudent->punkte = $prestudent->rt_punkte1 + $prestudent->rt_punkte2;
|
||||
|
||||
$prestudent->save(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg .= "<br>Sie haben keine Berechtigung zur Uebernahme der Punkte fuer $row->nachname $row->vorname";
|
||||
}
|
||||
}
|
||||
if($errormsg!='')
|
||||
{
|
||||
echo '<span class="input_error">'.$errormsg.'</span>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '<br><table width="100%"><tr><td>';
|
||||
|
||||
//Studiengang DropDown
|
||||
@@ -354,17 +416,36 @@
|
||||
|
||||
if($reihungstest_id!='')
|
||||
{
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?reihungstest_id=$reihungstest_id&excel=true'>Excel Export</a><br><br>";
|
||||
echo '<table width="100%"><tr><td>';
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?reihungstest_id=$reihungstest_id&excel=true'>Excel Export</a>";
|
||||
echo '</td><td align="right">';
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?reihungstest_id=$reihungstest_id&type=saveallrtpunkte'>alle Punkte ins FAS übertragen</a>";
|
||||
echo '</td></tr></table>';
|
||||
|
||||
//Liste der Interessenten die zum Reihungstest angemeldet sind
|
||||
$qry = "SELECT *, (SELECT kontakt FROM tbl_kontakt WHERE kontakttyp='email' AND person_id=tbl_prestudent.person_id ORDER BY zustellung desc, insertamum desc LIMIT 1) as email FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) WHERE reihungstest_id='$reihungstest_id' ORDER BY nachname, vorname";
|
||||
$mailto = '';
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
echo 'Anzahl: '.pg_num_rows($result);
|
||||
$pruefling = new pruefling($conn);
|
||||
|
||||
echo "<table class='liste table-autosort:2 table-stripeclass:alternate table-autostripe'><thead><tr class='liste'><th class='table-sortable:default'>Vorname</th><th class='table-sortable:default'>Nachname</th><th class='table-sortable:default'>Studiengang</th><th class='table-sortable:default'>Geburtsdatum</th><th>EMail</th></tr></thead><tbody>";
|
||||
echo "<table class='liste table-autosort:2 table-stripeclass:alternate table-autostripe'>
|
||||
<thead>
|
||||
<tr class='liste'>
|
||||
<th class='table-sortable:default'>Vorname</th>
|
||||
<th class='table-sortable:default'>Nachname</th>
|
||||
<th class='table-sortable:default'>Studiengang</th>
|
||||
<th class='table-sortable:default'>Geburtsdatum</th>
|
||||
<th class='table-sortable:default'>EMail</th>
|
||||
<th class='table-sortable:default'>Ergebnis</th>
|
||||
<th class='table-sortable:default'>FAS</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>";
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id);
|
||||
echo "
|
||||
<tr>
|
||||
<td>$row->vorname</td>
|
||||
@@ -372,6 +453,8 @@
|
||||
<td>".$stg_arr[$row->studiengang_kz]."</td>
|
||||
<td>".$datum_obj->convertISODate($row->gebdatum)."</td>
|
||||
<td><a href='mailto:$row->email'>$row->email</a></td>
|
||||
<td align='right'>".number_format($rtergebnis,2,'.','')."</td>
|
||||
<td align='right'>".($rtergebnis>0 && $row->rt_punkte1==''?'<a href="'.$_SERVER['PHP_SELF'].'?reihungstest_id='.$reihungstest_id.'&stg_kz='.$stg_kz.'&type=savertpunkte&prestudent_id='.$row->prestudent_id.'&rtpunkte='.$rtergebnis.'" >übertragen</a>':$row->rt_punkte1)."</td>
|
||||
</tr>";
|
||||
|
||||
$mailto.= ($mailto!=''?',':'').$row->email;
|
||||
|
||||
Reference in New Issue
Block a user