Files
FHC-Core/cis/testtool/admin/edit_gebiet.php
T

355 lines
13 KiB
PHP

<?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 <christian.paminger@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>
*/
/**
* Seite zum Editieren von Testtool-Gebieten
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/gebiet.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/sprache.class.php');
if (!$user = get_uid())
die('Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
$sprache = new sprache();
$sprache->getAll(true, 'index');
$sprache_user = getSprache();
if (isset($_GET['gebiet_id']))
$gebiet_id = $_GET['gebiet_id'];
else
$gebiet_id = '';
$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1');
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=UTF-8">
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<link href="../../../skin/tablesort.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[0,0],[1,0]],
widgets: ["zebra"]
});
});
function deleteZuordnung(ablauf_id)
{
if (confirm("Wollen Sie dieses Zuordnung wirklich entfernen?"))
{
$("#data").html(\'<form action="edit_gebiet.php?gebiet_id='.$gebiet_id.'" name="sendform" id="sendform" method="POST"><input type="hidden" name="action" value="deleteZuordnung" /><input type="hidden" name="ablauf_id" value="\'+ablauf_id+\'" /></form>\');
document.sendform.submit();
}
return false;
}
</script>
</head>
<body>
<div id="data"></div>
';
echo '<h1>&nbsp;Gebiet bearbeiten</h1>';
if (!$rechte->isBerechtigt('basis/testtool'))
die($rechte->errormsg);
$gebiet = new gebiet();
$gebiet->getAll();
echo '<a href="index.php?gebiet_id='.$gebiet_id.'&amp;stg_kz='.$stg_kz.'" class="Item">Zur&uuml;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.' - '.$row->kurzbz.' - '.$row->zeit.'</OPTION>';
}
echo '</SELECT>
<!--<input type="submit" value="Bearbeiten">-->
</form>';
echo '<br /><br />';
// Ablaufzuordnung entfernen
if (isset($_POST['action']) && $_POST['action'] == 'deleteZuordnung')
{
if (!isset($_POST['ablauf_id']) || !is_numeric($_POST['ablauf_id']))
die('ungueltige Parameteruebergabe');
$ablauf_id = $_POST['ablauf_id'];
$ablauf = new gebiet();
if ($ablauf->deleteAblaufZuordnung($ablauf_id))
echo '<span class="ok">Ablauf wurde entfernt</span>';
else
echo '<span class="error">Fehler beim Entfernen:'.$ablauf->errormsg.'</span>';
}
// Ablaufzuordnung hinzufügen
if (isset($_POST['action']) && $_POST['action'] == 'saveAblauf')
{
$ablauf_vorgaben_id = $_POST['ablauf_vorgaben_id'];
$studiengang_kz = $_POST['studiengang_kz'];
$reihung = $_POST['reihung'];
$gewicht = $_POST['gewicht'];
$semester = $_POST['semester'];
$ablauf = new gebiet();
$ablauf->ablauf_vorgaben_id = $ablauf_vorgaben_id;
$ablauf->studiengang_kz = $studiengang_kz;
$ablauf->reihung = $reihung;
$ablauf->gewicht = $gewicht;
$ablauf->semester = $semester;
$ablauf->new = true;
$ablauf->gebiet_id = $gebiet_id;
if ($ablauf->saveAblauf())
echo '<span class="ok">Ablauf gespeichert</span>';
else
echo '<span class="error">Fehler beim Speichern:'.$ablauf->errormsg.'</span>';
}
//Speichern der Daten
if (isset($_POST['speichern']))
{
if (!$rechte->isBerechtigt('basis/testtool', null, 'suid'))
die($rechte->errormsg);
$gebiet = new gebiet();
if ($gebiet->load($gebiet_id))
{
$bezeichnung_mehrsprachig=array();
foreach($sprache->result as $row_sprache)
{
if(isset($_POST['bezeichnung_mehrsprachig_'.$row_sprache->sprache]) && $_POST['bezeichnung_mehrsprachig_'.$row_sprache->sprache]!='')
$bezeichnung_mehrsprachig[$row_sprache->sprache]=$_POST['bezeichnung_mehrsprachig_'.$row_sprache->sprache];
}
$gebiet->bezeichnung_mehrsprachig = $bezeichnung_mehrsprachig;
$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->offsetpunkte = $_POST['offsetpunkte'];
$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;
$gebiet->antwortenprozeile = $_POST['antwortenprozeile'];
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($gebiet_id);
echo "<hr />";
echo '<form accept-charset="UTF-8" action="'.$_SERVER['PHP_SELF'].'?gebiet_id='.$gebiet_id.'&amp;stg_kz='.$stg_kz.'" method="POST">';
echo '<table>';
echo '<tr>';
//ID
echo '<td>ID</td><td><input type="text" disabled value="'.$gebiet_id.'" size="10" /></td>';
echo '</tr><tr>';
//Kurzbz
echo '<td>Kurzbz</td><td><input type="text" maxlength="10" size="10" name="" value="'.$gebiet->kurzbz.'" disabled /><input type="hidden" name="kurzbz" value="'.$gebiet->kurzbz.'"/></td>';
echo '</tr><tr>';
//Bezeichnung
echo '<td>Bezeichnung (intern)</td><td><input type="text" maxlength="50" name="bezeichnung" value="'.$gebiet->bezeichnung.'" /></td>';
echo '</tr><tr>';
foreach ($sprache->result as $s)
{
echo '<td>Bezeichnung '.$s->bezeichnung_arr[$s->sprache].'</td>';
echo '<td><input type="text" maxlength="255" name="bezeichnung_mehrsprachig_'.$s->sprache.'" value="'.(isset($gebiet->bezeichnung_mehrsprachig[$s->sprache])?$db->convert_html_chars($gebiet->bezeichnung_mehrsprachig[$s->sprache]):'').'" /></td>';
echo '</tr><tr>';
}
//Beschreibung
echo '<td>Beschreibung (intern)</td><td><textarea name="beschreibung" style="font-size: 9pt">'.$gebiet->beschreibung.'</textarea></td>';
echo '</tr><tr>';
//Zeit
echo '<td>Zeit</td><td><input type="text" name="zeit" size="8" maxlength="8" value="'.$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: '.round($maximalpunkte).(round($maximalpunkte) != $maximalpunkte?' ('.$maximalpunkte.' gerundet)':'').'</span>';
else
$hinweis = '';
echo '<td>Maximale Punkteanzahl</td><td><input type="text" size="5" maxlength="5" name="maxpunkte" value="'.$gebiet->maxpunkte.'">'.$hinweis.'</td>';
echo '</tr><tr>';
// empfohlene offsetpunkte berechnen und anzeigen
$offsethinweis = '';
$offsetpunkte = $gebiet->berechneOffsetpunkte($gebiet_id);
if ($offsetpunkte)
{
$offsetwarnung = strlen($gebiet->errormsg) > 0 ? ' (HINWEIS: '.$gebiet->errormsg.')' : '';
$offsethinweis = ' <span class="error">empfohlene Offsetpunkteanzahl: '.ceil($offsetpunkte).(ceil($offsetpunkte) != $offsetpunkte ? ' ('.$offsetpunkte.' gerundet)' : '').'</span>';
$offsethinweis .= '<span class="error">'.$offsetwarnung.'</span>';
}
echo '<td>Offsetpunkte (maximale Negativpunkte)</td><td><input type="text" size="5" maxlength="7" name="offsetpunkte" value="'.$gebiet->offsetpunkte.'">'.$offsethinweis.'</td>';
echo '</tr><tr>';
echo '<td>Maximale Fragenanzahl</td><td><input type="text" size="5" maxlength="5" name="maxfragen" value="'.$gebiet->maxfragen.'"></td>';
echo '</tr><tr>';
echo '<td>Antworten pro Zeile</td><td><input type="text" size="5" maxlength="2" name="antwortenprozeile" value="'.$gebiet->antwortenprozeile.'" required></td>';
echo '</tr><tr>';
echo '<td>Start Level</td><td><input type="text" size="5" maxlength="5" name="level_start" value="'.$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="'.$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="'.$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 '<hr />
<h2>Zuordnung</h2>';
$gebiet = new gebiet();
$gebiet->loadAblaufGebiet($gebiet_id);
$studiengang = new studiengang();
$studiengang->getAll('typ, kurzbz', false);
echo '<table id="t1" class="tablesorter">
<thead>
<tr>
<th>Studiengang</th>
<th>Semester</th>
<th>Reihung</th>
<th>Gewicht</th>
<th>Vorgaben</th>
<th>Aktion</th>
</tr>
</thead>
<tbody>';
foreach ($gebiet->result as $row)
{
echo '<tr>
<td>'.$studiengang->kuerzel_arr[$row->studiengang_kz].'</td>
<td>'.$row->semester.'</td>
<td>'.$row->reihung.'</td>
<td>'.$row->gewicht.'</td>
<td>'.$row->ablauf_vorgaben_id.'</td>
<td><a href="#loeschen" onclick="return deleteZuordnung(\''.$row->ablauf_id.'\');" ><img src="../../../skin/images/delete.png" height="15px" /></a></td>
</tr>';
}
echo '</tbody>';
echo '<tfoot>
<tr>
<td><select name="studiengang_kz">';
foreach ($studiengang->kuerzel_arr as $stg_kz => $row_stg)
{
echo '<option value="'.$stg_kz.'">'.$row_stg.'</option>';
}
echo '</select>
</td>
<td><input type="text" name="reihung" value="1" size="2" /></td>
<td><input type="text" name="gewicht" value="1" size="2"/></td>
<td><input type="text" name="semester" value="1" size="2"/></td>
<td>
<select name="ablauf_vorgaben_id">';
$ablauf_vorgabe = new gebiet();
$ablauf_vorgabe->getAblaufVorgaben();
foreach ($ablauf_vorgabe->result as $vorgabe)
{
echo '<option value="'.$vorgabe->ablauf_vorgaben_id.'">'.$studiengang->kuerzel_arr[$vorgabe->studiengang_kz].' - Sprache: '.$vorgabe->sprache.' Sprachwahl: '.($vorgabe->sprachwahl?'Ja':'Nein').' Content:'.$vorgabe->content_id.'</option>';
}
echo '</select></td>
<td>
<input type="hidden" name="action" value="saveAblauf" />
<input type="submit" value="speichern" /></td>
</tr>';
echo '</tfoot></table>';
echo '</form>';
}
echo '</body></html>';
?>