, * Andreas Oesterreicher , * Rudolf Hangl and * Gerald Simane-Sequens */ /** * Kopiert ein Testtool-Gebiet mit allen Fragen und Antworten aber ohne Zuordnungen zu Studiengängen und dgl. */ 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'); require_once('../../../include/frage.class.php'); require_once('../../../include/antwort.class.php'); require_once('../../../include/vorschlag.class.php'); if (!$user = get_uid()) die('Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden ! Zurück'); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); $sprache = new sprache(); $sprache->getAll(true, 'index'); $sprache_user = getSprache(); $db = new basis_db(); echo '
'; $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1'); $gebietToCopy = (isset($_POST['gebietToCopy'])?$_POST['gebietToCopy']:(isset($_GET['gebietToCopy'])?$_GET['gebietToCopy']:'')); $gebiet = new gebiet(); echo 'Zurück zur Admin Seite

'; echo '

Gebiet kopieren

'; echo '

Kopiert ein Gebiet mit allen Fragen und Antworten aber ohne Zuordnungen zu Studiengängen und dgl.

'; if(!$rechte->isBerechtigt('basis/testtool')) die($rechte->errormsg); $returnmsg = ''; //Speichern der Daten if (isset($_POST['copyGebiet']) && $_POST['copyGebiet'] == 'copyGebiet') { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); if (isset($_POST['kurzbz']) && $_POST['kurzbz'] != '') { //Test, ob kurzbz schon vorhanden if ($result = $db->db_query('SELECT kurzbz FROM testtool.tbl_gebiet WHERE kurzbz = '.$db->db_add_param($_POST['kurzbz']).' LIMIT 1;')) { if ($db->db_num_rows($result) == 0) { $gebietToCopy = $_POST['gebietToCopy']; // Zu kopierendes Gebiet laden $gebiet = new gebiet($gebietToCopy); $bezeichnung_mehrsprachig = array(); foreach ($sprache->result as $row_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_intern']; $gebiet->beschreibung = $_POST['beschreibung']; $gebiet->insertamum = date('Y-m-d H:i:s'); $gebiet->insertvon = $user; // Neues Gebiet speichern if ($gebiet->save(true)) { $returnmsg .= '

Gebiet erfolgreich kopiert

'; // Array mit allen Fragen und Antworten anlegen $frageAntwortArray = array(); // Fragen laden $fragenToCopy = new frage(); $fragenToCopy->getFragenGebiet($gebietToCopy); // Sprachen laden und für jede Sprache die Fragen und Antworten laden foreach ($sprache->result as $row_sprache) { $fragenSpracheToCopy = new frage(); $indexFrageSprache = 0; foreach ($fragenToCopy->result AS $copyFrage) { if ($fragenSpracheToCopy->getFrageSprache($copyFrage->frage_id, $row_sprache->sprache, true)) { $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['nummer'] = $fragenSpracheToCopy->nummer; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['demo'] = $fragenSpracheToCopy->demo; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['kategorie_kurzbz'] = $fragenSpracheToCopy->kategorie_kurzbz; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['level'] = $fragenSpracheToCopy->level; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['aktiv'] = $fragenSpracheToCopy->aktiv; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['text'] = $fragenSpracheToCopy->text; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['bild'] = $fragenSpracheToCopy->bild; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['audio'] = $fragenSpracheToCopy->audio; // Vorschläge laden $vorschlagSprachenToCopy = new vorschlag(); $vorschlagSprachenToCopy->getVorschlag($copyFrage->frage_id, $row_sprache->sprache, false); $indexVorschlagSprache = 0; foreach ($vorschlagSprachenToCopy->result AS $vorschlagSprache) { $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['vorschlaege'][$indexVorschlagSprache]['nummer'] = $vorschlagSprache->nummer; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['vorschlaege'][$indexVorschlagSprache]['punkte'] = $vorschlagSprache->punkte; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['vorschlaege'][$indexVorschlagSprache]['text'] = $vorschlagSprache->text; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['vorschlaege'][$indexVorschlagSprache]['bild'] = $vorschlagSprache->bild; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['vorschlaege'][$indexVorschlagSprache]['audio'] = $vorschlagSprache->audio; $frageAntwortArray[$row_sprache->sprache][$indexFrageSprache]['vorschlaege'][$indexVorschlagSprache]['aktiv'] = $vorschlagSprache->aktiv; $indexVorschlagSprache++; } } $indexFrageSprache++; } } // Einfügen der Fragen und Antworten aus dem Array in das neue Gebiet $anzahlFragenKopiert = 0; foreach ($frageAntwortArray AS $fragesprache => $index) { foreach ($index AS $frage => $value) { $newfragen = new frage(); $newfragen->new = true; $newfragen->kategorie_kurzbz = $value["kategorie_kurzbz"]; $newfragen->gebiet_id = $gebiet->gebiet_id; $newfragen->level = $value["level"]; $newfragen->nummer = $value["nummer"]; $newfragen->demo = $value["demo"]; $newfragen->insertamum = date('Y-m-d H:i:s'); $newfragen->insertvon = $user; $newfragen->aktiv = $value["aktiv"]; if ($newfragen->save()) { $newfragen->sprache = $fragesprache; $newfragen->text = $value["text"]; $newfragen->bild = $value["bild"]; $newfragen->audio = $value["audio"]; $newfragen->insertamum = date('Y-m-d H:i:s'); $newfragen->insertvon = $user; if ($newfragen->save_fragesprache()) { if (isset($value["vorschlaege"])) { foreach ($value["vorschlaege"] AS $vorschlag => $content) { // Vorschläge speichern $newvorschlaege = new vorschlag(); $newvorschlaege->new = true; $newvorschlaege->frage_id = $newfragen->frage_id; $newvorschlaege->nummer = $content["nummer"]; $newvorschlaege->punkte = $content["punkte"]; $newvorschlaege->aktiv = $content["aktiv"]; $newvorschlaege->insertamum = date('Y-m-d H:i:s'); $newvorschlaege->insertvon = $user; if ($newvorschlaege->save()) { $newvorschlaege->sprache = $fragesprache; $newvorschlaege->text = $content["text"]; $newvorschlaege->bild = $content["bild"]; $newvorschlaege->audio = $content["audio"]; $newvorschlaege->insertamum = date('Y-m-d H:i:s'); $newvorschlaege->insertvon = $user; if ($newvorschlaege->save_vorschlagsprache()) { $anzahlFragenKopiert++; } } } } } else { $returnmsg .= '

Fehler beim Speichern der Fragesprache '.$fragesprache.' bei Frage: '.$newfragen->frage_id.'

'; } } else { $returnmsg .= '

Fehler beim Speichern der Frage: '.$newfragen->frage_id.'

'; } } } } else { $returnmsg .= '

Fehler beim Speichern: '.$gebiet->errormsg.'

'; } } else $returnmsg .= '

Kurzbezeichnung ist schon vorhanden

'; } } else { $returnmsg .= '

Bitte füllen Sie alle Pflichtfelder aus

'; } } $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); echo '

'.$returnmsg.'

'; echo '
'; foreach ($sprache->result as $row) { echo ' '; } echo '
Zu kopierendes Gebiet: '; //Dropdown bestehender Gebiete $gebiete = new gebiet(); $gebiete->getAll(); echo ''; echo '
Daten neues Gebiet
Kurzbezeichnung
Bezeichnung (intern)
Bezeichnung '.$row->bezeichnung_arr[$sprache_user].'
Beschreibung (intern)
'; echo ''; ?>