diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 7e9963c0a..f180733fe 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -952,21 +952,34 @@ class studienplan extends basis_db /** * Laedt die Studienplaene zu denen eine Lehrveranstaltung zugeordnet ist */ - public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz) + public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz = null) { $qry= " SELECT - distinct tbl_studienplan.* + DISTINCT tbl_studienplan.* FROM - lehre.tbl_studienplan - JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id) + lehre.tbl_studienplan + JOIN lehre.tbl_studienplan_lehrveranstaltung + USING(studienplan_id) WHERE - tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." - AND EXISTS ( - SELECT 1 FROM lehre.tbl_studienplan_semester - WHERE studienplan_id=tbl_studienplan.studienplan_id - AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." - AND semester = tbl_studienplan_lehrveranstaltung.semester) + tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id IN ( + SELECT + lv.lehrveranstaltung_id + FROM + lehre.tbl_lehrveranstaltung AS lv + LEFT JOIN lehre.tbl_lehrveranstaltung AS t ON t.lehrveranstaltung_id=lv.lehrveranstaltung_template_id + WHERE + lv.lehrtyp_kurzbz<>'tpl' + AND (lv.lehrveranstaltung_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " OR (lv.lehrveranstaltung_template_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " AND t.lehrtyp_kurzbz='tpl')) + ) + AND EXISTS ( + SELECT 1 + FROM + lehre.tbl_studienplan_semester + WHERE studienplan_id=tbl_studienplan.studienplan_id". + ($studiensemester_kurzbz != null ? " + AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz) : "")." + AND semester = tbl_studienplan_lehrveranstaltung.semester) ORDER BY bezeichnung"; if($result = $this->db_query($qry)) diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php index 2b3b6a04c..ca683690a 100644 --- a/vilesci/lehre/lehrveranstaltung_details.php +++ b/vilesci/lehre/lehrveranstaltung_details.php @@ -29,6 +29,7 @@ require_once('../../include/lehrtyp.class.php'); require_once('../../include/lehrmodus.class.php'); require_once('../../include/benutzerberechtigung.class.php'); + require_once('../../include/studienplan.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -508,19 +509,10 @@ } $htmlstr.='
Verwendung in folgenden Studienplänen: '; - $qry ="SELECT distinct tbl_studienplan.bezeichnung - FROM - lehre.tbl_studienplan_lehrveranstaltung - JOIN lehre.tbl_studienplan USING(studienplan_id) - WHERE lehrveranstaltung_id=".$db->db_add_param($lv->lehrveranstaltung_id).' - ORDER BY tbl_studienplan.bezeichnung desc'; - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - $htmlstr.= $row->bezeichnung.'; '; - } - } + $stdplan = new studienplan(); + if ($stdplan->getStudienplanLehrveranstaltung($lv->lehrveranstaltung_id)) + foreach($stdplan->result as $result) + $htmlstr .= $result->bezeichnung . "; "; $htmlstr.=''; // Details Ende