, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Administrationsseite fuer das Testtool */ header('Content-type: application/xhtml+xml'); require_once('../../../config/cis.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'); if (!$db = new basis_db()) { die('Fehler beim Oeffnen der Datenbankverbindung'); } $PHP_SELF=$_SERVER['PHP_SELF']; session_start(); $user=get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('basis/testtool', null, 's')) die('Sie haben keine Berechtigung fuer diese Seite'); if(isset($_GET['gebiet_id'])) { $gebiet_id = $_GET['gebiet_id']; } else { $gebiet_id = ''; } if(isset($_GET['nummer'])) { $nummer = $_GET['nummer']; } else { $nummer = ''; } if(isset($_GET['frage_id'])) { $frage_id = $_GET['frage_id']; } else { $frage_id = ''; } if(isset($_GET['vorschlag_id'])) { $vorschlag_id = $_GET['vorschlag_id']; } else { $vorschlag_id = ''; } $save_vorschlag_error=false; ?>

Testtool - Administrationsseite
Auswertung | Hilfe

isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); if(isset($_FILES['bild']['tmp_name'])) { //Extension herausfiltern $ext = explode('.',$_FILES['bild']['name']); $ext = mb_strtolower($ext[count($ext)-1]); //--check that it's a jpeg or gif or png if ($ext=='gif' || $ext=='png' || $ext=='jpg' || $ext=='jpeg') { $filename = $_FILES['bild']['tmp_name']; //File oeffnen $fp = fopen($filename,'r'); //auslesen $content = fread($fp, filesize($filename)); fclose($fp); //base64 codieren $content = base64_encode($content); $frage = new frage(); if($frage->getFrageSprache($_GET['frage_id'], $sprache)) { //HEX Wert in die Datenbank speichern $frage->bild = $content; $frage->new = false; if($frage->save_fragesprache()) echo "Bild gespeichert
"; else echo ''.$frage->errormsg.'
'; } else echo ''.$frage->errormsg.'
'; } else echo "File ist kein gueltiges Bild
"; } } //Bei Upload eines Audiofiles if(isset($_POST['submitaudio'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); if(isset($_FILES['audio']['tmp_name'])) { //Extension herausfiltern $ext = explode('.',$_FILES['audio']['name']); $ext = mb_strtolower($ext[count($ext)-1]); //--check that it's a mp3 if ($ext=='mp3' || $ext=='ogg') { $filename = $_FILES['audio']['tmp_name']; //File oeffnen $content = file_get_contents($filename); /*$fp = fopen($filename,'r'); //auslesen $content = fread($fp, filesize($filename)); fclose($fp);*/ //die('

'.$content); //base64 codieren $content = base64_encode($content); $frage = new frage(); if($frage->getFrageSprache($_GET['frage_id'], $sprache)) { //HEX Wert in die Datenbank speichern $frage->audio = $content; $frage->new = false; if($frage->save_fragesprache()) echo "Audio gespeichert
"; else echo ''.$frage->errormsg.'
'; } else echo ''.$frage->errormsg.'
'; } else echo "Es duerfen nur mp3 Dateien hochgeladen werden
"; } } //Speichern der Frage-Daten if(isset($_POST['submitdata'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); $frage = new frage(); if($frage->load($_GET['frage_id'])) { $frage->demo = isset($_POST['demo']); $frage->nummer = $_POST['nummer']; $frage->level = $_POST['level']; $frage->new = false; if($frage->save()) { if(!$frage->getFrageSprache($frage->frage_id, $sprache)) { $frage->new=true; } $frage->text = $_POST['text']; $frage->sprache = $sprache; $xml = ''.$frage->text.''; libxml_use_internal_errors(true); if(simplexml_load_string($xml)) { if($frage->save_fragesprache()) { echo "Daten gespeichert
"; $nummer = $frage->nummer; } else echo 'Fehler:'.$frage->errormsg.'
'; } else { $frage_error_text = $frage->text; echo 'Fehler: Text ist kein gueltiges XML:
'; foreach (libxml_get_errors() as $error) { echo $error->message.'
'; } echo '

'; } } else echo ''.$frage->errormsg.'
'; } else echo ''.$frage->errormsg.'
'; } //Speichern eines Vorschlages if(isset($_POST['submitvorschlag'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); $bildcontent=''; if(isset($_FILES['bild']['tmp_name']) && is_uploaded_file($_FILES['bild']['tmp_name'])) { //Extension herausfiltern $ext = explode('.',$_FILES['bild']['name']); $ext = mb_strtolower($ext[count($ext)-1]); //--check that it's a jpeg or gif or png if ($ext=='gif' || $ext=='png' || $ext=='jpg' || $ext=='jpeg') { $filename = $_FILES['bild']['tmp_name']; //File oeffnen $fp = fopen($filename,'r'); //auslesen $bildcontent = fread($fp, filesize($filename)); fclose($fp); //base64 codieren $bildcontent = base64_encode($bildcontent); } else echo "Datei ist kein Bild!
"; } $audiocontent=''; if(isset($_FILES['audio']['tmp_name']) && is_uploaded_file($_FILES['audio']['tmp_name'])) { //Extension herausfiltern $ext = explode('.',$_FILES['audio']['name']); $ext = mb_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); //base64 codieren $audiocontent = base64_encode($audiocontent); } else echo "Datei ist kein Bild!
"; } $vorschlag = new vorschlag(); $error=false; if($_POST['vorschlag_id']!='') { if($vorschlag->load($_POST['vorschlag_id'])) { $vorschlag->new = false; $vorschlag->vorschlag_id = $_POST['vorschlag_id']; } else { echo 'Fehler beim Laden des Datensatzes
'; $error = true; } } 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; echo 'Nummer ist ungueltig
'; } if(!$error) { $vorschlag->bild = $bildcontent; $vorschlag->audio = $audiocontent; $vorschlag->frage_id = $_GET['frage_id']; $vorschlag->nummer = $_POST['nummer']; $vorschlag->punkte = $_POST['punkte']; $vorschlag->text = $_POST['text']; $vorschlag->sprache = $sprache; $vorschlag->updateamum = date('Y-m-d H:i:s'); $vorschlag->updatevon = $user; $xml = ''.$vorschlag->text.''; libxml_use_internal_errors(true); if(simplexml_load_string($xml)) { if($vorschlag->save()) { if($vorschlag->save_vorschlagsprache()) { echo "Vorschlag gespeichert
"; } else { $save_vorschlag_error=true; echo "Fehler beim Speichern von Vorschlagsprache: $vorschlag->errormsg
"; } } else { $save_vorschlag_error=true; echo ''.$vorschlag->errormsg.'
'; } } else { $vorschlag_error_text = $vorschlag->text; echo 'Fehler: Text ist kein gueltiges XML:
'; foreach (libxml_get_errors() as $error) { echo $error->message.'
'; } echo '

'; } } else $save_vorschlag_error=true; } //Vorschlag loeschen if(isset($_GET['type']) && $_GET['type']=='delete' && isset($_GET['vorschlag_id'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); $vs = new vorschlag(); if(!$vs->delete($_GET['vorschlag_id'])) echo ''.$vs->errormsg.'
'; $vorschlag_id=''; } // anlegen einer neuen Frage if(isset($_GET['type']) && $_GET['type']=='neuefrage') { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); $frage_obj = new frage(); $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 'Fehler beim Speichern der FrageSprache: '.$frage_obj->errormsg.''; } } else { echo 'Fehler beim Speichern der Frage: '.$frage_obj->errormsg.''; } } //Gebiet pruefen if(isset($_GET['type']) && $_GET['type']=='gebietpruefen' && isset($_GET['gebiet_id'])) { $gebiet = new gebiet($gebiet_id); if($gebiet->check_gebiet($gebiet_id)) { echo "Das Gebiet $gebiet->bezeichnung wurde erfolgreich ueberprueft"; } else { echo "Bei der Ueberpruefung des Gebiets '$gebiet->bezeichnung' sind folgende Fehler aufgetreten:
"; echo nl2br($gebiet->errormsg); echo '

'; } $maxpunkte = $gebiet->berechneMaximalpunkte($gebiet_id); if($gebiet->maxpunkte!=$maxpunkte) { echo '
die empfohlene Punkteanzahl betraegt '.$maxpunkte.' Punkte anstatt '.$gebiet->maxpunkte.' Punkte'; } } echo '
'; //Liste der Gebiete $qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung"; if($result = $db->db_query($qry)) { echo 'Gebiet: '; } echo " Pruefen | "; echo " Bearbeiten"; echo ''; //Liste der Sprachen $qry = "SELECT sprache FROM public.tbl_sprache ORDER BY sprache DESC"; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { if($sprache=='') $sprache = $row->sprache; if($sprache==$row->sprache) $selected='style="border:1px solid black;"'; else $selected=''; echo " $row->sprache"; } } echo '
'; echo '
'; // Liste der Fragen $qry = "SELECT distinct nummer FROM testtool.tbl_frage WHERE gebiet_id='".addslashes($gebiet_id)."' ORDER BY nummer"; if($result = $db->db_query($qry)) { echo 'Nummer: '; while($row = $db->db_fetch_object($result)) { if($nummer=='') $nummer = $row->nummer; if($nummer==$row->nummer) echo " $row->nummer -"; else echo " $row->nummer -"; } echo " neue Frage hinzufuegen"; if($nummer<$db->db_num_rows($result)-1) echo " - Weiter >>"; } echo "\n\n
"; //Fragen holen $frage = new frage(); $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 "$row->frage_id -"; else echo "$row->frage_id -"; } } if($frage_id!='') { $frage->load($frage_id); $frage->getFrageSprache($frage_id, $sprache); echo "
"; //Fragen echo ""; echo ""; //Upload Feld fuer Bild echo ""; //Wenn ein Bild vorhanden ist, dann anzeigen if($frage->bild!='') { echo "\n'; //Zusaetzliche EingabeFelder anzeigen echo ""; //Vorschau fuer das Text-Feld echo ""; echo "
Bild:
Audio:
"; } else { //echo "\n
Kein Bild vorhanden\n"; echo "\n
\n"; if($frage->audio=='') echo "Kein Bild vorhanden\n"; } if($frage->audio!='') { //echo '
'; echo ' '; } echo '
"; echo "
"; echo ""; //Bei Aenderungen im Textfeld werden diese sofort in der Vorschau angezeigt //Wenn beim Speichern der Text kein Gueltiges XML ist, wird der vorige Text erneut angezeigt echo ""; echo ""; echo "
\n\n
Demo demo?'checked="true"':'')." /> Level Nummer
"; echo "
"; echo "
Vorschau:
$frage->text
"; echo '
'; $vorschlag = new vorschlag(); if($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->punkte = $_POST['punkte']; $vorschlag->text = $_POST['text']; $vorschlag->bild = ''; } //Vorschlag echo 'Vorschlag'.($vorschlag_id!=''?' Edit':'').'

'; echo "
"; echo ""; echo ''; echo ""; echo ''; echo ""; echo ''; echo ''; echo '"; echo ''; //Upload Feld fuer Bild echo ""; echo ''; echo ''; //Upload Feld fuer Audio echo ""; echo ""; echo "
Nummer:
Punkte:
Text:\n
Bild:
Audio:
".($vorschlag_id!=''?"frage_id'\" />":'')."
"; echo "
"; echo '
'; $vorschlag = new vorschlag(); $vorschlag->getVorschlag($frage_id, $sprache, false); $i=0; if(count($vorschlag->result)>0) { echo ''; foreach ($vorschlag->result as $vs) { $i++; echo ""; } echo '
NummerPunkteTextBildAudio
$vs->nummer $vs->punkte $vs->text "; if($vs->audio!='') { //echo ""; echo ' '; } echo " edit delete
'; } } ?>