, * 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/basis_db.class.php'); require_once('../../include/sprache.class.php'); require_once '../../include/phrasen.class.php'; require_once '../../include/studiengang.class.php'; require_once('../../include/gebiet.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); // Start session session_start(); // If language is changed by language select menu, reset language and session variables if(isset($_GET['sprache_user']) && !empty($_GET['sprache_user'])) { $sprache_user = $_GET['sprache_user']; $_SESSION['sprache_user'] = $_GET['sprache_user']; } // Set language variable, which impacts the navigation menu $sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE; $p = new phrasen($sprache_user); ?> db_add_param($_SESSION['studiengang_kz'])." LIMIT 1"; $result = $db->db_query($qry); echo ''; // Link zur Startseite echo ''; // Link zur Einleitung if ($content_id = $db->db_fetch_object($result)) { if($content_id->content_id!='') { echo ' '; } } echo '
'.$p->t('testtool/startseite').'
'.$p->t('testtool/einleitung').'
'; $studiengang_kz = (isset($_SESSION['studiengang_kz'])) ? $_SESSION['studiengang_kz'] : ''; $stg = new Studiengang($studiengang_kz); $sprache_mehrsprachig = new sprache(); $bezeichnung_mehrsprachig = $sprache_mehrsprachig->getSprachQuery('bezeichnung_mehrsprachig'); /** * Spaltennamen-Aliase extrahieren um sie im Outer-Select verwenden zu können * $bezeichnung_mehrsprachig liefert: bezeichnung_mehrsprachig[1] as bezeichnung_mehrsprachig_1,... * $bezeichnung_mehrsprachig_sel liefert: bezeichnung_mehrsprachig_1, bezeichnung_mehrsprachig_2,... */ $bezeichnung_mehrsprachig_sel = explode(",", $bezeichnung_mehrsprachig); foreach ($bezeichnung_mehrsprachig_sel as &$bm) { $bm = strrchr($bm, ' as '); } $bezeichnung_mehrsprachig_sel = implode(', ', $bezeichnung_mehrsprachig_sel); /** * Reihungstestgebiete der Person ermitteln; Zusammenfassen, falls RT für mehrere Studien * 1. Aktuelle Prestudenten zur Person über den Prüfling ermitteln, * 2. Einstiegssemester (Erstsemester/Quereinsteiger) und Studienplan pro Prestudent ermitteln, * 3. RT-Gebiete falls vorhanden über Studienplan, sonst über STG ermitteln * 4. Für Quereinsteiger zusätzlich auch Erstsemestrigen-Gebiete */ $qry = " WITH prestudent_data AS ( SELECT DISTINCT ON (prestudent_id) prestudent_id, studienplan_id, studiengang_kz, typ, tbl_studiengangstyp.bezeichnung AS typ_bz, ausbildungssemester AS semester FROM public.tbl_prestudentstatus AS ps_status JOIN public.tbl_prestudent USING (prestudent_id) JOIN public.tbl_studiengang USING (studiengang_kz) JOIN public.tbl_studiengangstyp USING (typ) WHERE tbl_prestudent.person_id = ( SELECT person_id FROM public.tbl_prestudent WHERE prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])." ) /* Filter only future studiensemester (incl. actual one) */ AND studiensemester_kurzbz IN ( SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende > now() ) /* Filter out all Abgewiesene */ AND NOT EXISTS ( SELECT 1 FROM tbl_prestudentstatus WHERE status_kurzbz = 'Abgewiesener' AND prestudent_id = ps_status.prestudent_id ) AND status_kurzbz = 'Interessent'"; /* If the logged-in prestudents study is a Bachelor-study, filter only Bachelor-studies */ if ($stg->typ == 'b') { $qry .= " AND tbl_studiengang.typ = 'b'"; } /* If the logged-in prestudents study is NOT a Bachelor-study, get only the specific study */ else { $qry .= " AND tbl_studiengang.studiengang_kz = ". $studiengang_kz; } $qry .= " /* Order to get last semester when using distinct on */ ORDER BY prestudent_id, datum DESC, ps_status.insertamum DESC, ps_status.ext_id DESC ) SELECT DISTINCT ON (gebiet_id, semester, reihung) semester, gebiet_id, STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list, bezeichnung, MIN(reihung) AS reihung, ". $bezeichnung_mehrsprachig_sel. " FROM ( SELECT * FROM ( (SELECT prestudent_data.semester AS ps_sem, gebiet_id, bezeichnung, tbl_ablauf.studienplan_id, tbl_ablauf.studiengang_kz, tbl_ablauf.semester, tbl_ablauf.reihung, ".$bezeichnung_mehrsprachig. " FROM prestudent_data JOIN testtool.tbl_ablauf USING (studiengang_kz) JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE ( (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) OR (prestudent_data.semester= 2 AND tbl_ablauf.semester = 2) OR (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3)) ) AND ( prestudent_data.studienplan_id = tbl_ablauf.studienplan_id OR tbl_ablauf.studienplan_id IS NULL ) ) UNION ( SELECT prestudent_data.semester AS ps_sem, gebiet_id, bezeichnung, tbl_ablauf.studienplan_id, tbl_ablauf.studiengang_kz, tbl_ablauf.semester, tbl_ablauf.reihung, ". $bezeichnung_mehrsprachig. " FROM prestudent_data JOIN testtool.tbl_ablauf USING (studienplan_id) JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) OR (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3)) ) ) temp ) temp2 GROUP BY semester, gebiet_id, bezeichnung, ". $bezeichnung_mehrsprachig_sel ." ORDER BY semester, reihung, gebiet_id "; $result = $db->db_query($qry); $anzahlGebiete = $db->db_num_rows($result); $lastsemester = ''; $quereinsteiger_stg = ''; $_SESSION['alleGebiete']= []; while($row = $db->db_fetch_object($result)) { //Jedes Semester in einer eigenen Tabelle anzeigen if($lastsemester!=$row->semester) { if($lastsemester!='') { echo '
'; } $lastsemester = $row->semester; echo ''; echo ''; } // Bei Quereinstiegsgebieten nach STG clustern und die STG anzeigen if($row->semester != '1') { if($quereinsteiger_stg != $row->studiengang_kz_list) { //echo "
"; // Abstand zwischen Erstsemester- und Quereinstiegs-Gebietsblock $quereinsteiger_stg = $row->studiengang_kz_list; $quereinsteiger_stg_arr = explode(',', $row->studiengang_kz_list); $quereinsteiger_stg_string = ''; $cnt = 0; foreach ($quereinsteiger_stg_arr as $qe_stg) { $stg = new Studiengang($qe_stg); $quereinsteiger_stg_string .= ($cnt > 0) ? ",
" : ''; $quereinsteiger_stg_string .= $stg->bezeichnung; $cnt++; } echo ''; } } $gebiet = new gebiet(); // Prüfen, ob das Gebiet eine/n Frage/Vorschlag im MathML-Format enthält if (!$gebiet_hasMathML) // sobald nur ein MathML Format gefunden, variable nicht mehr überschreiben { $gebiet_hasMathML = $gebiet->hasMathML($row->gebiet_id); } if($gebiet->check_gebiet($row->gebiet_id)) { //Status der Gebiete Pruefen $gebiet->load($row->gebiet_id); $qry = "SELECT extract('epoch' from '".$gebiet->zeit."'-(now()-min(begintime))) as time FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) WHERE gebiet_id=".$db->db_add_param($row->gebiet_id)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id']); if($result_time = $db->db_query($qry)) { if($row_time = $db->db_fetch_object($result_time)) { if($row_time->time>0) { //Gebiet gestartet aber noch nicht zu ende $style=''; $class='ItemTesttool ItemTesttoolAktiv'; } else { if($row_time->time=='') { //Gebiet noch nicht gestartet $style=''; $class='ItemTesttool'; } else { //Gebiet ist zu Ende $style=''; $class='ItemTesttool ItemTesttoolBeendet'; } } } else { $style=''; $class='ItemTesttool'; } } else { $style=''; $class='ItemTesttool'; } // Fallback für Gebietbezeichnung, falls nicht in gewählter Sprache vorhanden $gebietbezeichnung = $sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[$sprache_user]; if ($gebietbezeichnung == '') { $gebietbezeichnung = $sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[DEFAULT_LANGUAGE]; if ($gebietbezeichnung == '') { $gebietbezeichnung = $row->bezeichnung; } } echo ''; $_SESSION['alleGebiete'][] = $row->gebiet_id; } else { $invalid_gebiete = true; } } if ($anzahlGebiete > 0) { echo '
'. ($row->semester == '1' ? $p->t('testtool/basisgebiete') : $p->t('testtool/quereinstiegsgebiete')).'
'. $quereinsteiger_stg_string. '
'.$gebietbezeichnung.'
'; } // Link zum Logout echo ' Logout '; echo ''; } else { echo ''; } ?>