Studiengangsfilter bei Fragenübersicht

This commit is contained in:
Manfred
2023-01-20 10:46:22 +01:00
parent 194d141539
commit c8fb2080da
+338 -262
View File
@@ -1,263 +1,339 @@
<?php <?php
/* Copyright (C) 2009 Technikum-Wien /* Copyright (C) 2009 Technikum-Wien
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as * it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the * published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* Authors: Karl Burkhart <burkhart@technikum-wien.at>, * Authors: Karl Burkhart <burkhart@technikum-wien.at>,
*/ */
require_once("../../../config/cis.config.inc.php"); require_once("../../../config/cis.config.inc.php");
require_once('../../../include/basis_db.class.php'); require_once('../../../include/basis_db.class.php');
require_once("../../../include/gebiet.class.php"); require_once("../../../include/gebiet.class.php");
require_once("../../../include/frage.class.php"); require_once("../../../include/frage.class.php");
require_once("../../../include/vorschlag.class.php"); require_once("../../../include/vorschlag.class.php");
require_once('../../../include/functions.inc.php'); require_once('../../../include/functions.inc.php');
require_once("../../../include/benutzerberechtigung.class.php"); require_once("../../../include/benutzerberechtigung.class.php");
require_once('../../../include/studiengang.class.php');
if (!$db = new basis_db()) require_once('../../../include/ablauf.class.php');
die('Fehler beim Oeffnen der Datenbankverbindung');
?> if (!$db = new basis_db())
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> die('Fehler beim Oeffnen der Datenbankverbindung');
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> ?>
<head> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<title>Testool Fragen Übersicht</title> <head>
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head> <title>Testool Fragen Übersicht</title>
<body style="padding: 10px"> <link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<?php </head>
$user = get_uid(); <body style="padding: 10px">
$rechte = new benutzerberechtigung(); <?php
$rechte->getBerechtigungen($user); $user = get_uid();
$rechte = new benutzerberechtigung();
if(!$rechte->isBerechtigt('basis/testtool', null, 's')) $rechte->getBerechtigungen($user);
die('<span class="error">Sie haben keine Berechtigung für diese Seite</span>');
if(!$rechte->isBerechtigt('basis/testtool', null, 's'))
$gebiet = new gebiet(); die('<span class="error">Sie haben keine Berechtigung für diese Seite</span>');
$gebiet->getAll();
$sprache = (isset($_REQUEST['Sprache'])?$_REQUEST['Sprache']:'German'); $gebiet = new gebiet();
$Auswahlgebiet = (isset($_REQUEST['AuswahlGebiet'])?$_REQUEST['AuswahlGebiet']:''); $gebiet->getAll();
$loesungen = (isset($_REQUEST['loesungen']) && $_REQUEST['loesungen'] != '' ? true:false); $sprache = (isset($_REQUEST['Sprache'])?$_REQUEST['Sprache']:'German');
$Auswahlgebiet = (isset($_REQUEST['AuswahlGebiet'])?$_REQUEST['AuswahlGebiet']:'');
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" name="TesttoolUebersicht"> $loesungen = (isset($_REQUEST['loesungen']) && $_REQUEST['loesungen'] != '' ? true:false);
<table>
<tr> $studiengang = new studiengang();
<td>Gebiet:</td> $studiengang->getAll('typ, kurzbz', false);
<td><select name="AuswahlGebiet"><option value="auswahl"> - Bitte Auswählen - </option>'; $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1');
foreach ($gebiet->result as $gebietResult) $gebiet_id = (isset($_GET['gebiet_id'])?$_GET['gebiet_id']:'');
{
$selected =''; echo '<form action="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'" method="post" name="TesttoolUebersicht">
if($Auswahlgebiet == $gebietResult->gebiet_id) <table>
$selected = 'selected'; <tr>
echo '<option value="'.$gebietResult->gebiet_id.'" '.$selected.'>'.$gebietResult->gebiet_id.' - '.$gebietResult->bezeichnung.' - '.$gebietResult->kurzbz.'</option>'; <td>Studiengang:</td><td>';
} //Liste der Studiengänge
echo '</select></td></tr> echo '<select onchange="window.location.href=this.value">';
<tr> echo '<option value="'.$_SERVER['PHP_SELF'].'?" >Alle Studiengänge</option>';
<td>Sprache: </td> foreach ($studiengang->result as $row)
<td><select name="Sprache">'; {
if($sprache == 'German') $stg_arr[$row->studiengang_kz] = $row->kuerzel;
echo '<option selected value="German">Deutsch</option>'; if ($stg_kz == '')
else $stg_kz = $row->studiengang_kz;
echo '<option value="German">Deutsch</option>'; if ($row->studiengang_kz == $stg_kz)
if($sprache == 'English') $selected = 'selected="selected"';
echo '<option selected value="English">Englisch</option>'; else
else $selected = '';
echo '<option value="English">Englisch</option>';
echo '<option value="'.$_SERVER['PHP_SELF'].'?stg_kz='.$row->studiengang_kz.'" '.$selected.'>'.$db->convert_html_chars($row->kuerzel).' - '.$db->convert_html_chars($row->bezeichnung).'</option>'."\n";
echo'</select> }
</td> echo '</select>';
</tr> echo '</td>
<tr> </tr>
<td> <tr>
Mit Lösungen <td>Gebiet:</td><td>';
</td> //Liste der Gebiete
<td><input type="checkbox" name="loesungen" '.($loesungen ? 'checked':'').'></td> $qry = "SELECT * FROM testtool.tbl_ablauf WHERE studiengang_kz=".$db->db_add_param($stg_kz);
</tr> $anzahl = $db->db_num_rows($db->db_query($qry));
<tr>
<td colspan="2"><input type="submit" value="Anzeigen"></td></tr> if ($stg_kz !== "-1" && $anzahl !== 0)
</table><br>'; {
$qry = "SELECT * FROM testtool.tbl_gebiet LEFT JOIN testtool.tbl_ablauf USING (gebiet_id)
WHERE studiengang_kz=".$db->db_add_param($stg_kz)." ORDER BY semester,reihung";
if(isset($_REQUEST['AuswahlGebiet'])) }
{ else
$gebiet_id = $_REQUEST['AuswahlGebiet']; $qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung";
$gebietdetails = new gebiet(); if (($anzahl !== 0) || ($stg_kz == '-1') && ($stg_kz !== ''))
$gebietdetails->load($gebiet_id); {
if ($result = $db->db_query($qry))
$qry = "SELECT DISTINCT UPPER(typ||kurzbz) AS studiengang {
FROM testtool.tbl_ablauf JOIN public.tbl_studiengang USING (studiengang_kz) echo ' <select name="AuswahlGebiet">';
WHERE gebiet_id=".$db->db_add_param($gebiet_id)." echo '<option value="auswahl"> - Bitte Auswählen - </option>';
ORDER BY studiengang";
$result = $db->db_query($qry); while ($row = $db->db_fetch_object($result))
{
if ($gebietdetails) if ($Auswahlgebiet == $row->gebiet_id)
{ {
echo ' $selected = 'selected="selected"';
<table> }
<tr> else
<td align="right">Gebiet:</td> {
<td>'.$gebietdetails->bezeichnung.'</td> $selected = '';
</tr> }
<tr>
<td valign="top">Verwendet in den Studiengängen:</td> if ($stg_kz == "-1")
<td>'; {
$i=1; echo '<option value="'.$row->gebiet_id.'" '.$selected.'>'.$row->bezeichnung.' - '.$row->kurzbz.' - ID:'.$row->gebiet_id.'</option>'."\n";
while ($row = $db->db_fetch_object($result)) }
{ else
echo $row->studiengang.($db->db_num_rows($result)>1 && $db->db_num_rows($result)>$i?', ':''); {
$i++; echo '<option value="'.$row->gebiet_id.'" '.$selected.'>('.$row->semester.') - '.$row->bezeichnung.' - '.$row->kurzbz.' - ID:'.$row->gebiet_id.'</option>'."\n";
if ($i % 10 == 0) }
echo '<br>';
} }
echo '</td> echo '</select>';
</tr> }
<tr> }
<td>&nbsp;</td> elseif (($anzahl == 0))
<td>&nbsp;</td> {
</tr> echo 'Keine Gebiete für diesen Studiengang';
<tr> }
<td align="right">Beschreibung:</td> echo '</td>';
<td>'.($gebietdetails->beschreibung!=''?$gebietdetails->beschreibung:'-').'</td> /*echo '<td><select name="AuswahlGebiet"><option value="auswahl"> - Bitte Auswählen - </option>';
</tr> foreach ($gebiet->result as $gebietResult)
<tr> {
<td align="right">Zeit:</td> $selected ='';
<td>'.$gebietdetails->zeit.'</td> if($Auswahlgebiet == $gebietResult->gebiet_id)
</tr> $selected = 'selected';
<tr> echo '<option value="'.$gebietResult->gebiet_id.'" '.$selected.'>'.$gebietResult->gebiet_id.' - '.$gebietResult->bezeichnung.' - '.$gebietResult->kurzbz.'</option>';
<td align="right">Multipleresponse:</td> }
<td>'.($gebietdetails->multipleresponse==true?'Ja':'Nein').'</td> echo '</select></td>';*/
</tr> echo '</tr>
<tr> <tr>
<td align="right">Gestellte Fragen:</td> <td>Sprache: </td>
<td>'.$gebietdetails->maxfragen.'</td> <td><select name="Sprache">';
</tr> if($sprache == 'German')
<tr> echo '<option selected value="German">Deutsch</option>';
<td align="right">Zufallsfrage:</td> else
<td>'.($gebietdetails->zufallfrage==true?'Ja':'Nein').'</td> echo '<option value="German">Deutsch</option>';
</tr> if($sprache == 'English')
<tr> echo '<option selected value="English">Englisch</option>';
<td align="right">Zufallsvorschlag:</td> else
<td>'.($gebietdetails->zufallvorschlag==true?'Ja':'Nein').'</td> echo '<option value="English">Englisch</option>';
</tr>
<tr> echo'</select>
<td align="right">Startlevel:</td> </td>
<td>'.($gebietdetails->level_start!=''?$gebietdetails->level_start:'Keines').'</td> </tr>
</tr> <tr>
<tr> <td>
<td align="right">Höheres Level nach:</td> Mit Lösungen
<td>'.($gebietdetails->level_sprung_auf!=''?$gebietdetails->level_sprung_auf.' richtigen Antwort(en)':'-').'</td> </td>
</tr> <td><input type="checkbox" name="loesungen" '.($loesungen ? 'checked':'').'></td>
<tr> </tr>
<td align="right">Niedrigeres Level nach:</td> <tr>
<td>'.($gebietdetails->level_sprung_ab!=''?$gebietdetails->level_sprung_ab.' falschen Antwort(en)':'-').'</td> <td colspan="2"><input type="submit" value="Anzeigen"></td></tr>
</tr> </table><br>';
<tr>
<td align="right">Levelgleichverteilung:</td>
<td>'.($gebietdetails->levelgleichverteilung==true?'Ja':'Nein').'</td> if(isset($_REQUEST['AuswahlGebiet']))
</tr> {
<tr> $gebiet_id = $_REQUEST['AuswahlGebiet'];
<td align="right">Maximalpunkte:</td>
<td>'.$gebietdetails->maxpunkte.'</td> $gebietdetails = new gebiet();
</tr> $gebietdetails->load($gebiet_id);
<tr>
<td align="right">Antworten pro Zeile:</td> $qry = "SELECT DISTINCT UPPER(typ||kurzbz) AS studiengang
<td>'.$gebietdetails->antwortenprozeile.'</td> FROM testtool.tbl_ablauf JOIN public.tbl_studiengang USING (studiengang_kz)
</tr> WHERE gebiet_id=".$db->db_add_param($gebiet_id)."
ORDER BY studiengang";
$result = $db->db_query($qry);
</table><br><hr>';
} if ($gebietdetails)
{
$frage = new frage(); echo '
$frage->getFragenGebiet($gebiet_id); <table>
<tr>
foreach($frage->result as $fragen) <td align="right">Gebiet:</td>
{ <td>'.$gebietdetails->bezeichnung.'</td>
$sprachevorschlag = new vorschlag(); </tr>
$spracheFrage = new frage(); <tr>
$spracheFrage->getFrageSprache($fragen->frage_id, $sprache); <td valign="top">Verwendet in den Studiengängen:</td>
<td>';
echo "<b>&lt;NR:".$fragen->nummer.($fragen->level!=""?"&nbsp;&nbsp;Level: ".$fragen->level."":"").($fragen->demo=="t"?"&nbsp;&nbsp;Demo":"")."&gt;</b><br> "; $i=1;
//Sound einbinden while ($row = $db->db_fetch_object($result))
if($spracheFrage->audio!='') {
{ echo $row->studiengang.($db->db_num_rows($result)>1 && $db->db_num_rows($result)>$i?', ':'');
echo ' <audio src="../sound.php?src=frage&amp;frage_id='.$spracheFrage->frage_id.'&amp;sprache='.$sprache.'" controls="controls"> $i++;
<div> if ($i % 10 == 0)
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p> echo '<br>';
</div> }
</audio>'; echo '</td>
} </tr>
// FRAGE anzeigen <tr>
echo "$spracheFrage->text<br/><br/>\n"; <td>&nbsp;</td>
<td>&nbsp;</td>
// Bild einbinden wenn vorhanden </tr>
if($spracheFrage->bild!='') <tr>
echo "<img class='testtoolfrage' src='../bild.php?src=frage&amp;frage_id=$spracheFrage->frage_id&amp;sprache=".$sprache."' /><br/><br/>\n"; <td align="right">Beschreibung:</td>
<td>'.($gebietdetails->beschreibung!=''?$gebietdetails->beschreibung:'-').'</td>
echo"<br><table>"; </tr>
<tr>
// ANTWORTEN anzeigen <td align="right">Zeit:</td>
$sprachevorschlag->getVorschlag($fragen->frage_id, $sprache, $random=false); <td>'.$gebietdetails->zeit.'</td>
$anzahlBild = 0; </tr>
foreach($sprachevorschlag->result as $vor) <tr>
{ <td align="right">Multipleresponse:</td>
$vorschlag = new vorschlag(); <td>'.($gebietdetails->multipleresponse==true?'Ja':'Nein').'</td>
$vorschlag->loadVorschlagSprache($vor->vorschlag_id, $sprache); </tr>
<tr>
if($vorschlag->bild == '') <td align="right">Gestellte Fragen:</td>
{ <td>'.$gebietdetails->maxfragen.'</td>
if ($loesungen) </tr>
{ <tr>
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td></td><td align="right"><b>'.$vor->punkte.'</b></td><td style="border-left:1px solid;">&nbsp;'.$vorschlag->text.'</td></tr>'; <td align="right">Zufallsfrage:</td>
} <td>'.($gebietdetails->zufallfrage==true?'Ja':'Nein').'</td>
else </tr>
{ <tr>
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td><td>&nbsp;'.$vorschlag->text.'</td></tr>'; <td align="right">Zufallsvorschlag:</td>
} <td>'.($gebietdetails->zufallvorschlag==true?'Ja':'Nein').'</td>
} </tr>
if($vorschlag->bild!='') <tr>
{ <td align="right">Startlevel:</td>
// zeilenumbruch nach 4 bilder <td>'.($gebietdetails->level_start!=''?$gebietdetails->level_start:'Keines').'</td>
if($anzahlBild%4==0) </tr>
echo "</tr>"; <tr>
echo "<td>"; <td align="right">Höheres Level nach:</td>
echo "<img class='testtoolvorschlag' src='../bild.php?src=vorschlag&amp;vorschlag_id=$vor->vorschlag_id&amp;sprache=".$sprache."' /><br/>"; <td>'.($gebietdetails->level_sprung_auf!=''?$gebietdetails->level_sprung_auf.' richtigen Antwort(en)':'-').'</td>
if ($loesungen) </tr>
{ <tr>
echo "<br>".$vor->punkte."</td>"; <td align="right">Niedrigeres Level nach:</td>
} <td>'.($gebietdetails->level_sprung_ab!=''?$gebietdetails->level_sprung_ab.' falschen Antwort(en)':'-').'</td>
else </tr>
{ <tr>
echo "</td>"; <td align="right">Levelgleichverteilung:</td>
} <td>'.($gebietdetails->levelgleichverteilung==true?'Ja':'Nein').'</td>
</tr>
$anzahlBild++; <tr>
} <td align="right">Maximalpunkte:</td>
if($vorschlag->audio!='') <td>'.$gebietdetails->maxpunkte.'</td>
{ </tr>
echo ' <audio src="../sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;sprache='.$sprache.'" controls="controls"> <tr>
<div> <td align="right">Antworten pro Zeile:</td>
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p> <td>'.$gebietdetails->antwortenprozeile.'</td>
</div> </tr>
</audio>';
}
</table><br><hr>';
} }
echo "</table><br><hr>";
} $frage = new frage();
} $frage->getFragenGebiet($gebiet_id);
?>
foreach($frage->result as $fragen)
{
$sprachevorschlag = new vorschlag();
$spracheFrage = new frage();
$spracheFrage->getFrageSprache($fragen->frage_id, $sprache);
echo "<b>&lt;NR:".$fragen->nummer.($fragen->level!=""?"&nbsp;&nbsp;Level: ".$fragen->level."":"").($fragen->demo=="t"?"&nbsp;&nbsp;Demo":"")."&gt;</b><br> ";
//Sound einbinden
if($spracheFrage->audio!='')
{
echo ' <audio src="../sound.php?src=frage&amp;frage_id='.$spracheFrage->frage_id.'&amp;sprache='.$sprache.'" controls="controls">
<div>
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
</div>
</audio>';
}
// FRAGE anzeigen
echo "$spracheFrage->text<br/><br/>\n";
// Bild einbinden wenn vorhanden
if($spracheFrage->bild!='')
echo "<img class='testtoolfrage' src='../bild.php?src=frage&amp;frage_id=$spracheFrage->frage_id&amp;sprache=".$sprache."' /><br/><br/>\n";
echo"<br><table>";
// ANTWORTEN anzeigen
$sprachevorschlag->getVorschlag($fragen->frage_id, $sprache, $random=false);
$anzahlBild = 0;
foreach($sprachevorschlag->result as $vor)
{
$vorschlag = new vorschlag();
$vorschlag->loadVorschlagSprache($vor->vorschlag_id, $sprache);
if($vorschlag->bild == '')
{
if ($loesungen)
{
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td></td><td align="right"><b>'.$vor->punkte.'</b></td><td style="border-left:1px solid;">&nbsp;'.$vorschlag->text.'</td></tr>';
}
else
{
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td><td>&nbsp;'.$vorschlag->text.'</td></tr>';
}
}
if($vorschlag->bild!='')
{
// zeilenumbruch nach 4 bilder
if($anzahlBild%4==0)
echo "</tr>";
echo "<td>";
echo "<img class='testtoolvorschlag' src='../bild.php?src=vorschlag&amp;vorschlag_id=$vor->vorschlag_id&amp;sprache=".$sprache."' /><br/>";
if ($loesungen)
{
echo "<br>".$vor->punkte."</td>";
}
else
{
echo "</td>";
}
$anzahlBild++;
}
if($vorschlag->audio!='')
{
echo ' <audio src="../sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;sprache='.$sprache.'" controls="controls">
<div>
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
</div>
</audio>';
}
}
echo "</table><br><hr>";
}
}
?>
</body> </body>