, * Andreas Oesterreicher , * Rudolf Hangl , * Manfred Kindl * Cristina Hainberger */ require_once('../../config/cis.config.inc.php'); require_once('../../config/global.config.inc.php'); require_once('../../include/person.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/pruefling.class.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/studienplan.class.php'); require_once('../../include/studienordnung.class.php'); require_once('../../include/ablauf.class.php'); require_once('../../include/reihungstest.class.php'); require_once('../../include/sprache.class.php'); require_once '../../include/phrasen.class.php'; require_once '../../include/datum.class.php'; if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); // Start session require_once './session_init.php'; // Logout (triggered by logout button in menu.php) if (isset($_GET['logout']) && $_GET['logout'] == true) { // Unset global vars unset($_GET['logout']); unset($_GET['sprache_user']); $_POST = []; $_SESSION = []; // Destroy session session_destroy(); echo ' '; } $gebdatum=''; $date = new datum(); $reload_menu=false; $alertmsg = ''; $sg_var = new studiengang(); if (isset($_POST['gebdatum']) && $_POST['gebdatum']!='') { $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); } else $gebdatum=''; if (isset($_REQUEST['prestudent'])) { $ps = new prestudent($_REQUEST['prestudent']); $login_ok = false; if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && (isset($_GET['confirmation']) || isset($_GET['confirmed_code']))) { if (isset($_SESSION['bewerbung/personId']) && $ps->person_id == $_SESSION['bewerbung/personId']) { $login_ok = true; } else { $alertmsg .= '
Login ist nicht korrekt. Bitte schließen Sie ihren Browser und versuchen es erneut
'; } } elseif(!defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') || TESTTOOL_LOGIN_BEWERBUNGSTOOL == false) { //Geburtsdatum Pruefen if (isset($gebdatum) && $gebdatum == $ps->gebdatum) { $login_ok = true; } else { $alertmsg .= '
'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'
'; } } if ($login_ok) { $reihungstest_id=''; //Freischaltung fuer zugeteilten Reihungstest pruefen $rt = new reihungstest(); // Wenns der Dummy ist dann extra laden // An der FHTW gibt es 3 Testuser für den Camus International $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); if ($prestudent_id_dummy_student==$ps->prestudent_id || (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30891) || (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30890) || (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30889)) { $rt->getReihungstestPerson($ps->person_id); if (isset($rt->result[0])) $reihungstest_id = $rt->result[0]->reihungstest_id; } else { if ($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d'))) { // TODO Was ist wenn da mehrere Zurueckkommen?! if (isset($rt->result[0])) $reihungstest_id = $rt->result[0]->reihungstest_id; } else { echo 'Failed:'.$rt->errormsg; } } if ($reihungstest_id != '' && $rt->load($reihungstest_id)) { $pruefling_exist = new Pruefling(); $alreadyInRT = $pruefling_exist->personAlreadyInRT($ps->person_id, $rt->reihungstest_id, $ps->prestudent_id); if ($rt->freigeschaltet && !$alreadyInRT) { // regenerate Session ID after Login session_regenerate_id(); if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL) { if ($rt->zugangs_ueberpruefung && !is_null($rt->zugangscode)) { $_SESSION['confirmed_code'] = false; if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true) { if (isset($_GET['confirmed_code'])) { if ($_GET['confirmed_code'] === $_SESSION['reihungstest_code']) { $_SESSION['confirmed_code'] = true; } else $alertmsg .= '
Code ist nicht korrekt.
'; } } if ($_SESSION['confirmed_code'] === false) { $_SESSION['reihungstest_code'] = $rt->zugangscode; $_SESSION['confirmation_needed'] = true; } else $reload_menu = true; } if ($rt->externe_ueberwachung && defined('TESTTOOL_EXTERNE_UEBERWACHUNG_ALLOWED') && TESTTOOL_EXTERNE_UEBERWACHUNG_ALLOWED) { $_SESSION['externe_ueberwachung'] = true; $_SESSION['externe_ueberwachung_verified'] = false; } } $pruefling = new pruefling(); 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']=$_REQUEST['prestudent']; $_SESSION['studiengang_kz']=$studiengang; $_SESSION['nachname']=$ps->nachname; $_SESSION['vorname']=$ps->vorname; $_SESSION['gebdatum']=$ps->gebdatum; $stg_obj = new studiengang($studiengang); $_SESSION['semester']=$semester; $_SESSION['reihungstestID'] = $reihungstest_id; $stg_obj->getStudiengangTyp($stg_obj->typ); // STG und Studienplan mit der höchsten Prio ermitteln $firstPrio_studienplan_id = ''; $firstPrio_studiengang_kz = ''; // * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller // Bachelor-STG ermitteln, an denen die Person noch interessiert ist // Wenn STG vom Typ Master, dann wird als firstPrio der STPL bzw. der STG des MasterSTG gesetzt. if ($stg_obj->typ == 'b') { $ps->getActualInteressenten($_REQUEST['prestudent'], true); } elseif ($stg_obj->typ == 'm') { $ps->getActualInteressenten($_REQUEST['prestudent'], false, 'm', $studiengang); } foreach($ps->result as $row) { if (isset($row->studiengang_kz)) { $firstPrio_studienplan_id = $row->studienplan_id; break; } } foreach($ps->result as $row) { if (isset($row->studiengang_kz)) { $firstPrio_studiengang_kz = $row->studiengang_kz; break; } } // Sprachvorgaben zu STG mit höchster Prio ermitteln // * 1. Sprache über Ablauf Vorgaben ermitteln $ablauf = new Ablauf(); $ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id); $rt_sprache = ''; if (empty($ablauf->result[0])) { $ablauf->getAblaufGebiete($firstPrio_studiengang_kz); } if (!empty($ablauf->result[0])) { $rt_sprache = $ablauf->result[0]->sprache; } // * 2. falls keine Sprache vorhanden -> Sprache über Studienplan ermitteln if (empty($rt_sprache)) { $stpl = new Studienplan(); $stpl->loadStudienplan($firstPrio_studienplan_id); $rt_sprache = $stpl->sprache; } // * 3. falls keine Sprache vorhanden -> Sprache über Studiengang ermitteln if (empty($rt_sprache)) { $stg = new Studiengang($firstPrio_studiengang_kz); $rt_sprache = $stg->sprache; } // * 4. Sprache setzen. Falls keine Sprache vorhanden -> DEFAULT language verwenden if (empty($rt_sprache)) { $_SESSION['sprache_user'] = DEFAULT_LANGUAGE; } else { $_SESSION['sprache_user'] = $rt_sprache; } } else { if ($alreadyInRT) { $alertmsg .= '
'.$p->t('testtool/reihungstestNichtRegistriert').'
'; } else { $alertmsg .= '
'.$p->t('testtool/reihungstestNichtFreigeschalten').'
'; } } } else { $alertmsg .= '
'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'
'; } } } // Set language of user. // NOTE: don't move the code in order to check first the right studies' reihungstest language // (in case it was overruled by other STG with higher priority) // Start with default language on first login (before any prestudent has been selected) $sprache_user = DEFAULT_LANGUAGE; if (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) { // If session var already exists, overwrite language var // (session var changes e.g. when user selects other language with language-select-menu) $sprache_user = $_SESSION['sprache_user']; } elseif (isset($_SESSION['prestudent_id'])) { // If session var does not exist but prestudent is known, set the session var $_SESSION['sprache_user'] = DEFAULT_LANGUAGE; } // If language is changed by language select menu, reset language variables if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user'])) { $sprache_user = $_GET['sprache_user']; $_SESSION['sprache_user'] = $_GET['sprache_user']; } // NOTE: leave phrasen here, as the final users language is not defined until here $p = new phrasen($sprache_user); if (isset($_SESSION['prestudent_id'])) { $prestudent_id=$_SESSION['prestudent_id']; } else { //$prestudent_id=null; $ps=new prestudent(); $datum=date('Y-m-d'); // An der FHTW wird ein Bewerber nur einmal ausgegeben (1. Prio) falls es mehrere Bewerbungen gibt /*if (CAMPUS_NAME == 'FH Technikum Wien') { $ps->getFirstPrioPrestudentRT($datum); } else*/ { $ps->getPrestudentRT($datum); } } if ( ( isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) && !isset($_SESSION['confirmation_needed']) && !isset($_SESSION['confirmed_code']) && !isset($_SESSION['externe_ueberwachung']) && !isset($_SESSION['externe_ueberwachung_verified']) ) || ( isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true && isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === true && isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) ) || ( isset($_SESSION['externe_ueberwachung']) && $_SESSION['externe_ueberwachung'] === true && isset($_SESSION['externe_ueberwachung_verified']) && $_SESSION['externe_ueberwachung_verified'] === true && isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) ) ) { $pruefling = new pruefling(); //wenn kein Prüfling geladen werden kann if (!$pruefling->getPruefling($_SESSION['prestudent_id'])) $pruefling->new = true; else $pruefling->new = false; $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']; $pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']); if ($pruefling->save()) { $_SESSION['pruefling_id']=$pruefling->pruefling_id; $reload_menu=true; } } if (isset($_POST['save']) && isset($_SESSION['prestudent_id'])) { $pruefling = new pruefling(); if ($_POST['pruefling_id']!='') if (!$pruefling->load($_POST['pruefling_id'])) die('Pruefling wurde nicht gefunden'); else $pruefling->new=false; else $pruefling->new=true; $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; $pruefling->idnachweis = isset($_POST['idnachweis'])?$_POST['idnachweis']:''; $pruefling->registriert = date('Y-m-d H:i:s'); $pruefling->prestudent_id = $_SESSION['prestudent_id']; $pruefling->semester = $_POST['semester']; $pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']); if ($pruefling->save()) { $_SESSION['pruefling_id']=$pruefling->pruefling_id; $_SESSION['semester']=$pruefling->semester; $reload_menu=true; } } ?> parent.menu.location.reload();'; ?>
top.location.href = 'resetconnection.php';"; exit; } else if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true && isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === false) { echo '
'.$alertmsg.'
'.$p->t('testtool/freischalttext').'

'.$p->t('testtool/freischaltcode').':


'; } //REIHUNGSTEST STARTSEITE (nach Login) elseif (isset($prestudent_id)) { $prestudent = new prestudent($prestudent_id); $stg_obj = new studiengang($prestudent->studiengang_kz); $pruefling = new pruefling(); $typ = new studiengang($prestudent->studiengang_kz); $typ->getStudiengangTyp($stg_obj->typ); // STG mit der höchsten Prio ermitteln $ps = new Prestudent(); // * prinzipiell STG der session übernehmem $firstPrio_studiengang_kz = $prestudent->studiengang_kz; // * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller // Bachelor-STG ermitteln, an denen die Person noch interessiert ist $firstPrio_studienplan_id = ''; $firstPrio_studiengang_kz = ''; if ($typ->typ == 'b') { $ps->getActualInteressenten($prestudent_id, true, 'b'); foreach($ps->result as $row_prio) { if (isset($row_prio->studiengang_kz)) { $firstPrio_studiengang_kz = $row_prio->studiengang_kz; $firstPrio_studienplan_id = $row_prio->studienplan_id; break; } } } // Sprachwahl zu STG mit höchster Prio ermitteln $ablauf = new Ablauf(); $sprachwahl = false; $ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id); if (empty($ablauf->result[0])) { $ablauf->getAblaufGebiete($firstPrio_studiengang_kz); } if (isset($ablauf->result[0]) && is_bool($ablauf->result[0]->sprachwahl)) { $sprachwahl = $ablauf->result[0]->sprachwahl; } // If language can be switched, display language select menu on the top if ($sprachwahl) { $_SESSION['sprache_auswahl'] = true; ?> '; echo '

'. $p->t('testtool/begruessungstext'). '


'. $p->t('testtool/anmeldedaten'). '


'; echo '
'.$p->t('zeitaufzeichnung/id').' '.$_SESSION['prestudent_id'].'
'.$p->t('global/name').' '.$_SESSION['vorname'].' '.$_SESSION['nachname'].'
'.$p->t('global/geburtsdatum').' '.$date->formatDatum($_SESSION["gebdatum"],"d.m.Y").'
'; echo '
'; echo '

'. $p->t('testtool/fuerFolgendeStgAngemeldet'). '


'; // * wenn Prestudent an 1 - n Bachelor-Studiengängen interessiert ist, dann STG anführen if ($typ->typ == 'b') { $ps_arr = new Prestudent(); $ps_arr->getActualInteressenten($prestudent_id, false, 'b'); if (count($ps_arr->result) > 0) { // Jeweils letzten Status ermitteln (ob Interessent oder Abgewiesener) foreach ($ps_arr->result as $ps_obj) { $ps_tmp = new Prestudent(); $ps_tmp->getLastStatus($ps_obj->prestudent_id); $ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen $ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig; } // Falls Status 'Abgewiesene' vorhanden, nach hinten reihen usort($ps_arr->result, function($a, $b){ return strcmp($b->lastStatus, $a->lastStatus); // Order by DESC }); foreach ($ps_arr->result as $ps_obj) { echo ''; $stg = new Studiengang($ps_obj->studiengang_kz); $sto = new Studienordnung(); $sto->getStudienordnungFromStudienplan($ps_obj->studienplan_id); // Name des Studiengangs aus Studienordnung laden, ansonsten Fallback auf Studiengang $stg_name = $sto->studiengangbezeichnung; $stg_name_eng = $sto->studiengangbezeichnung_englisch; if ($stg_name == '') { $stg_name = $stg->bezeichnung; } if ($stg_name_eng == '') { $stg_name_eng = $stg->english; } if ($ps_obj->lastStatus == "Interessent" || $ps_obj->lastStatus == "Bewerber" || $ps_obj->lastStatus == "Wartender" || $ps_obj->lastStatus == "Aufgenommener") { echo ''; if ($ps_obj->ausbildungssemester == '1') { echo ''; } elseif ($ps_obj->ausbildungssemester == '3') { echo ''; } } // wenn letzter Status \'Abgewiesener\' ist, dann als solchen kennzeichnen elseif ($ps_obj->lastStatus == "Abgewiesener") { echo ' '; } echo ''; } } } // * wenn Prestudent an einem Master-Studiengang interessiert ist, dann nur den einen STG anführen else { // Letzten Status für des Prestudenten einholen $ps_master = new Prestudent($prestudent_id); $ps_master->getLastStatus($prestudent_id); $sto = new Studienordnung(); $sto->getStudienordnungFromStudienplan($ps_master->studienplan_id); $stg = new Studiengang($ps_master->studiengang_kz); // Name des Studiengangs aus Studienordnung laden, ansonsten Fallback auf Studiengang $stg_name = $sto->studiengangbezeichnung; $stg_name_eng = $sto->studiengangbezeichnung_englisch; if ($stg_name == '') { $stg_name = $stg->bezeichnung; } if ($stg_name_eng == '') { $stg_name_eng = $stg->english; } echo ''; echo ''; } echo '
'. $p->t('global/studiengang'). ' Status
'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg_name_eng : $stg_name). ' ('.$ps_obj->orgform_bezeichnung[$sprache_user].')'. $p->t('testtool/regulaererEinstieg'). ' (1. Semester)'. $p->t('testtool/quereinstieg'). ' (3. Semester)'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg_name_eng : $stg_name). ' '. $ps_obj->status_mehrsprachig[$sprache_user]. '
'. $typ->bezeichnung.' '.($sprache_user=='English'?$stg_name_eng : $stg_name).''. $ps_master->status_mehrsprachig[$sprache_user]. '
'; echo '
'; if ($pruefling->getPruefling($prestudent_id)) { echo '
'; echo ''; echo ''; //echo ''; //echo ''; //echo ''; echo '
'.$p->t('global/semester').': 
ID Nachweis:
'; echo '
'; echo '

'; echo '
'.$p->t('testtool/klickenSieAufEinTeilgebiet').'
'; if ($pruefling->pruefling_id!='') { $_SESSION['pruefling_id']=$pruefling->pruefling_id; } } else { echo ''.$p->t('testtool/keinPrueflingseintragVorhanden').''; } echo '
'; } else // LOGIN Site (vor Login) { if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL) { echo '
'; echo '
'.$alertmsg.'
'; echo $p->t('testtool/einfuehrungsText'); if (isset($_SESSION['bewerbung/personId'])) { echo ''; echo '
'.$p->t('testtool/loginNoetig').'

'.$p->t('testtool/confirmationText').'

'.$p->t('testtool/dsgvoConfirmText').'

'.$p->t('testtool/procotoringConfirmText').'

'; } else { echo '
'.$p->t('testtool/loginNoetig').'

'; } echo '
'; echo '
'; } else { $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); echo '
'; // Welcome text echo '
'.$alertmsg.'
'; echo '

Herzlich Willkommen zum Reihungstest



Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.

Wir wünschen Ihnen einen erfolgreichen Start ins Studium.

Welcome to the placement test



Please wait for the tutor\'s instructions before you log in.

We wish you a good start to your studies.
'; // Begin form echo '
'; echo '
'; // Name select menu echo '
'; echo ''; echo '
'; echo ''; echo '
'; // end col-xs echo '
'; // end form-group // Datepicker input echo '
'; echo ''; echo '
'; echo ''; echo '
'; // end col-xs echo '
'; // end form-group // Login button echo ''; echo '
'; // end form echo '
'; // end row echo '
'; // end col-xs-11 } } ?>