From 43da94f3c77f04ccf961bba7fa37bcded6eb0674 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 4 Sep 2015 17:01:35 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Fehler=20in=20der=20Anwesenheitsliste=20beh?= =?UTF-8?q?oben=20bei=20dem=20nicht=20das=20korrekte=20Endedatum=20der=20L?= =?UTF-8?q?ehrveranstaltung=20angezeigt=20wurde=20wenn=20VON-Stunde=20und?= =?UTF-8?q?=20BIS-Stunde=20im=20Filter=20ausgef=C3=BCllt=20wird?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rdf/anwesenheitsliste.xml.php | 433 +++++++++++++++++----------------- 1 file changed, 213 insertions(+), 220 deletions(-) diff --git a/rdf/anwesenheitsliste.xml.php b/rdf/anwesenheitsliste.xml.php index 0ea1151a0..eacef60f6 100644 --- a/rdf/anwesenheitsliste.xml.php +++ b/rdf/anwesenheitsliste.xml.php @@ -1,220 +1,213 @@ - - */ -/** - * Erstellt das XML fuer die Anwesenheitsliste - */ -// content type setzen -header("Content-type: application/xhtml+xml"); -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/basis_db.class.php'); -require_once('../include/ean13.function.php'); - -// Optionen abfragen -isset($_GET['von']) ? $von = date('Y-m-d', strtotime($_GET['von'])) : $von = NULL; -isset($_GET['bis']) ? $bis = date('Y-m-d', strtotime($_GET['bis'])) : $bis = $von; -isset($_GET['stundevon']) ? $stundevon = $_GET['stundevon'] : $stundevon = null; -isset($_GET['stundebis']) ? $stundebis = $_GET['stundebis'] : $stundebis = null; -isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; -isset($_GET['sem']) ? $semester = $_GET['sem'] : $semester = NULL; -isset($_GET['lehreinheit']) ? $lehreinheit = $_GET['lehreinheit'] : $lehreinheit = NULL; -isset($_GET['fixangestellt']) ? $fixangestellt = $_GET['fixangestellt'] : $fixangestellt = NULL; -isset($_GET['standort']) ? $standort = $_GET['standort'] : $standort = NULL; -isset($_GET['lvid']) ? $lvid = $_GET['lvid'] : $lvid = NULL; - -if($von) - $studiensemester = getStudiensemesterFromDatum($von); - -$db = new basis_db(); -$data = array(); - -/*if(!$studiengang) - die('Die ID des Studiengangs muss uebergeben werden'); -*/ -// Daten der Lehreinheiten ermitteln -$qry = "SELECT le.lehreinheit_id, le.lehrveranstaltung_id, lv.lvnr, lv.bezeichnung AS lvbez, stg.bezeichnung AS stgbez, " - . "sp.ort_kurzbz, datum, beginn, ende, sto.bezeichnung AS standort " - . "FROM lehre.tbl_lehreinheit le " - . "JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id " - . "JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz " - . "JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id) " - . "JOIN lehre.tbl_stunde stu ON stu.stunde = sp.stunde " - . "JOIN public.tbl_ort ort ON sp.ort_kurzbz = ort.ort_kurzbz " - . "JOIN public.tbl_standort sto ON ort.standort_id = sto.standort_id " - . "WHERE 1=1"; - -if($studiengang!='') - $qry.=" AND stg.studiengang_kz = " . $db->db_add_param($studiengang) . " "; - -// Optionen zu Query hinzufügen -if($lehreinheit) - $qry .= " AND le.lehreinheit_id = " . $db->db_add_param($lehreinheit); -if($semester) - $qry .= " AND lv.semester = " . $db->db_add_param($semester); -if($von) - $qry .= " AND (sp.datum >= " . $db->db_add_param($von) . "::DATE AND sp.datum <= " . $db->db_add_param($bis) . "::DATE) "; -if(!is_null($stundevon)) - $qry.=" AND stu.stunde>=".$db->db_add_param($stundevon); -if(!is_null($stundebis)) - $qry.=" AND stu.stunde<=".$db->db_add_param($stundebis); -if($standort) - $qry.=" AND sto.standort_id=".$db->db_add_param($standort); -if($lvid) - $qry .= " AND lv.lehrveranstaltung_id = " . $db->db_add_param($lvid); -$qry .= " ORDER BY datum, beginn"; - -if($db->db_query($qry)) -{ - while($row = $db->db_fetch_object()) - { - if(empty($row)) - die("Lehreinheit $lehreinheit am $von nicht gefunden"); - - $data[$row->lehreinheit_id]['tage'][$row->datum][] = $row; - } -} - -foreach($data as $key => $value) -{ - // Daten der Vortragenden ermitteln - $qry = "SELECT vorname, nachname, titelpre, titelpost, " - . "CASE WHEN fixangestellt IS TRUE THEN 'ja' ELSE 'nein' END AS fixangestellt " - . "FROM lehre.tbl_lehreinheitmitarbeiter lema " - . "JOIN public.tbl_mitarbeiter ma ON lema.mitarbeiter_uid = ma.mitarbeiter_uid " - . "JOIN public.tbl_benutzer be ON be.uid = lema.mitarbeiter_uid " - . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " - . "WHERE lehreinheit_id = " . $db->db_add_param($key); - - if($db->db_query($qry)) - { - while($row = $db->db_fetch_object()) - { - $data[$key]['vortragende'][] = $row; - } - } - - - // Daten der Studenten ermitteln - $qry = "SELECT pe.person_id, vorname, nachname, titelpre, titelpost, note, " - . "get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") AS laststatus " - . "FROM campus.vw_student_lehrveranstaltung stlv " - . "JOIN public.tbl_benutzer be ON be.uid = stlv.uid " - . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " - . "JOIN public.tbl_student ON be.uid = tbl_student.student_uid " - . "LEFT JOIN lehre.tbl_zeugnisnote zn ON (zn.lehrveranstaltung_id = stlv.lehrveranstaltung_id AND zn.student_uid = stlv.uid AND zn.studiensemester_kurzbz = " . $db->db_add_param($studiensemester) . ") " - . "WHERE stlv.lehreinheit_id = " . $db->db_add_param($key) . " " - . "AND get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") NOT IN ('Abbrecher', 'Unterbrecher') " - . "ORDER BY nachname ASC"; - - if($db->db_query($qry)) - { - while($row = $db->db_fetch_object()) - { - $data[$key]['studenten'][] = $row; - } - } -} - -// AUSGABE -echo ""; -echo ""; - -foreach($data as $lehreinheit_id => $value) -{ - // Anstellung der Vortragenden prüfen - if($fixangestellt != '') - { - $anstellungVortragende = array(); - foreach($value['vortragende'] as $vortragender) - { - $anstellungVortragende[] = $vortragender->fixangestellt; - } - - if(!in_array($fixangestellt, $anstellungVortragende)) - continue; - } - - foreach($value['tage'] as $tag) - { - echo ""; - - // Barcode erstellen - $paddedLehreinheitId = str_pad($lehreinheit_id, 6, "0", STR_PAD_LEFT); - $convertableString = date('ymd', strtotime($tag[0]->datum)) . $paddedLehreinheitId; - $barcode = ean13($convertableString); - - // Ausgabe der Lehrveranstaltung - echo "\n "; - echo "\n lehreinheit_id."]]>"; - echo "\n stgbez."]]>"; - echo "\n lvbez."]]>"; - echo "\n "; - echo "\n lvnr."]]>"; - echo "\n "; - echo "\n standort."]]>"; - echo "\n ort_kurzbz."]]>"; - echo "\n datum))."]]>"; - echo "\n beginn, 0, 5)."]]>"; - echo "\n ende, 0, 5)."]]>"; - echo "\n "; - - // Ausgabe der Vortragenden - echo ""; - foreach($value['vortragende'] as $vortragender) - { - echo "\n "; - echo "\n vorname."]]>"; - echo "\n nachname."]]>"; - echo "\n titelpre."]]>"; - echo "\n titelpost."]]>"; - echo "\n fixangestellt."]]>"; - echo "\n "; - } - echo ""; - - // Ausgabe der Studenten - echo ""; - if(isset($value['studenten']) && is_array($value['studenten'])) - { - foreach($value['studenten'] as $student) - { - // Barcode erstellen - $paddedPersonId = str_pad($student->person_id, 12, "0", STR_PAD_LEFT); - $barcode = ean13($paddedPersonId); - - echo "\n "; - echo "\n "; - echo "\n vorname."]]>"; - echo "\n nachname."]]>"; - echo "\n titelpre."]]>"; - echo "\n titelpost."]]>"; - echo "\n note."]]>"; - echo "\n laststatus."]]>"; - echo "\n "; - } - } - echo ""; - echo ""; - } -} - -echo ""; - -?> + + */ +/** + * Erstellt das XML fuer die Anwesenheitsliste + */ +// content type setzen +header("Content-type: application/xhtml+xml"); +require_once('../../../config/vilesci.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/basis_db.class.php'); +require_once('../../../include/ean13.function.php'); + +// Optionen abfragen +isset($_GET['von']) ? $von = date('Y-m-d', strtotime($_GET['von'])) : $von = NULL; +isset($_GET['bis']) ? $bis = date('Y-m-d', strtotime($_GET['bis'])) : $bis = $von; +isset($_GET['stundevon']) ? $stundevon = $_GET['stundevon'] : $stundevon = null; +isset($_GET['stundebis']) ? $stundebis = $_GET['stundebis'] : $stundebis = null; +isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; +isset($_GET['semester']) ? $semester = $_GET['semester'] : $semester = NULL; +isset($_GET['lehreinheit']) ? $lehreinheit = $_GET['lehreinheit'] : $lehreinheit = NULL; + +if($von) + $studiensemester = getStudiensemesterFromDatum($von); + +$db = new basis_db(); +$data = array(); + +/*if(!$studiengang) + die('Die ID des Studiengangs muss uebergeben werden'); +*/ +// Daten der Lehreinheiten ermitteln +$qry = "SELECT le.lehreinheit_id, le.lehrveranstaltung_id, lv.lvnr, lv.bezeichnung AS lvbez, stg.bezeichnung AS stgbez, " + . "sp.ort_kurzbz, datum, beginn, ende, studiensemester_kurzbz, lv.semester, lv.orgform_kurzbz " + . "FROM lehre.tbl_lehreinheit le " + . "JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id " + . "JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz " + . "JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id) " + . "JOIN lehre.tbl_stunde stu ON stu.stunde = sp.stunde " + . "WHERE 1=1"; +//echo "".var_dump($qry).""; +if($studiengang!='') + $qry.=" AND stg.studiengang_kz = " . $db->db_add_param($studiengang) . " "; + +// Optionen zu Query hinzufügen +if($lehreinheit) + $qry .= " AND le.lehreinheit_id = " . $db->db_add_param($lehreinheit); +if($semester) + $qry .= " AND lv.semester = " . $db->db_add_param($semester); +if($von) + $qry .= " AND (sp.datum >= " . $db->db_add_param($von) . "::DATE AND sp.datum <= " . $db->db_add_param($bis) . "::DATE) "; + +if(!is_null($stundevon) && !is_null($stundebis)) +{ + // Unterricht zwischen 4. und 8. Stunde + //$qry.=" AND EXISTS (SELECT 1 FROM lehre.tbl_stundenplan WHERE datum=sp.datum AND lehreinheit_id=sp.lehreinheit_id AND stunde BETWEEN ".$db->db_add_param($stundevon)." AND ".$db->db_add_param($stundebis).")"; + + // Beginn zwischen 4. und 8. Stunde + $qry.=" AND (SELECT min(stunde) FROM lehre.tbl_stundenplan WHERE datum=sp.datum AND lehreinheit_id=sp.lehreinheit_id) BETWEEN ".$db->db_add_param($stundevon)." AND ".$db->db_add_param($stundebis); +} +else +{ + if(!is_null($stundevon)) + $qry.=" AND stu.stunde>=".$db->db_add_param($stundevon); + if(!is_null($stundebis)) + $qry.=" AND stu.stunde<=".$db->db_add_param($stundebis); +} +$qry .= " ORDER BY datum, beginn"; + +if($db->db_query($qry)) +{ + while($row = $db->db_fetch_object()) + { + if(empty($row)) + die("Lehreinheit $lehreinheit am $von nicht gefunden"); + + $data[$row->lehreinheit_id]['tage'][$row->datum][] = $row; + } +} +//echo $qry; +foreach($data as $key => $value) +{ + // Daten der Vortragenden ermitteln + $qry = "SELECT vorname, nachname, titelpre, titelpost " + . "FROM lehre.tbl_lehreinheitmitarbeiter lema " + . "JOIN public.tbl_benutzer be ON be.uid = lema.mitarbeiter_uid " + . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " + . "WHERE lehreinheit_id = " . $db->db_add_param($key); + + if($db->db_query($qry)) + { + while($row = $db->db_fetch_object()) + { + $data[$key]['vortragende'][] = $row; + } + } + + // Daten der Studenten ermitteln + $qry = "SELECT pe.person_id, vorname, nachname, titelpre, titelpost, note, " + . "get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") AS laststatus " + . "FROM campus.vw_student_lehrveranstaltung stlv " + . "JOIN public.tbl_benutzer be ON be.uid = stlv.uid " + . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " + . "JOIN public.tbl_student ON be.uid = tbl_student.student_uid " + . "LEFT JOIN lehre.tbl_zeugnisnote zn ON (zn.lehrveranstaltung_id = stlv.lehrveranstaltung_id AND zn.student_uid = stlv.uid AND zn.studiensemester_kurzbz = " . $db->db_add_param($studiensemester) . ") " + . "WHERE stlv.lehreinheit_id = " . $db->db_add_param($key) . " " + . "AND get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") NOT IN ('Abbrecher', 'Unterbrecher', 'Outgoings') " + . "ORDER BY nachname ASC"; + + if($db->db_query($qry)) + { + while($row = $db->db_fetch_object()) + { + $data[$key]['studenten'][] = $row; + } + } +} + +// AUSGABE +echo ""; +echo ""; + +foreach($data as $lehreinheit_id => $value) +{ + foreach($value['tage'] as $tag) + { + echo ""; + + // Barcode erstellen + $paddedLehreinheitId = str_pad($lehreinheit_id, 6, "0", STR_PAD_LEFT); + $convertableString = date('ymd', strtotime($tag[0]->datum)) . $paddedLehreinheitId; + $barcode = ean13($convertableString); + + // Ausgabe der Lehrveranstaltung + echo "\n "; + echo "\n lehreinheit_id."]]>"; + echo "\n stgbez."]]>"; + echo "\n semester."]]>"; + echo "\n orgform_kurzbz."]]>"; + echo "\n studiensemester_kurzbz."]]>"; + echo "\n lvbez."]]>"; + echo "\n "; + echo "\n lvnr."]]>"; + echo "\n "; + echo "\n ort_kurzbz."]]>"; + echo "\n datum))."]]>"; + echo "\n beginn, 0, 5)."]]>"; + echo "\n ende, 0, 5)."]]>"; + echo "\n "; + + // Ausgabe der Vortragenden + echo ""; + foreach($value['vortragende'] as $vortragender) + { + echo "\n "; + echo "\n vorname."]]>"; + echo "\n nachname."]]>"; + echo "\n titelpre."]]>"; + echo "\n titelpost."]]>"; + echo "\n "; + } + echo ""; + + // Ausgabe der Studenten + echo ""; + if(isset($value['studenten']) && is_array($value['studenten'])) + { + foreach($value['studenten'] as $student) + { + // Barcode erstellen + $paddedPersonId = str_pad($student->person_id, 12, "0", STR_PAD_LEFT); + $barcode = ean13($paddedPersonId); + // Anzeigename generieren + $namegesamt = (strlen($student->titelpre) > 0) ? $student->titelpre." " : ""; + $namegesamt .= $student->nachname." ".$student->vorname; + $namegesamt .= (strlen($student->titelpost) > 0) ? ", ".$student->titelpost : ""; + + echo "\n "; + echo "\n "; + echo "\n vorname."]]>"; + echo "\n nachname."]]>"; + echo "\n titelpre."]]>"; + echo "\n titelpost."]]>"; + echo "\n "; + echo "\n note."]]>"; + echo "\n laststatus."]]>"; + echo "\n "; + } + } + echo ""; + echo ""; + } +} + +echo ""; + +?> From 48168f61431f2644951c04df1c97204acb81d788 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 4 Sep 2015 17:00:19 +0200 Subject: [PATCH 2/5] Fehler behoben bei dem NOT NULL Felder nicht korrekt gespeichert werden konnten --- include/pgsql.class.php | 94 ++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/include/pgsql.class.php b/include/pgsql.class.php index 7bfc118be..ca9fd95ef 100644 --- a/include/pgsql.class.php +++ b/include/pgsql.class.php @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher + * Andreas Oesterreicher * */ /** @@ -66,95 +66,95 @@ class basis_db extends db { if(is_null($i)) return pg_fetch_object($this->db_result); - else + else return pg_fetch_object($this->db_result, $i); } - else + else { if(is_null($i)) return pg_fetch_object($result); - else + else return pg_fetch_object($result, $i); - } + } } - + public function db_fetch_row($result = null, $i=null) { if(is_null($result)) { if(is_null($i)) return pg_fetch_row($this->db_result); - else + else return pg_fetch_row($this->db_result, $i); } - else + else { if(is_null($i)) return pg_fetch_row($result); - else + else return pg_fetch_row($result, $i); - } + } } - + public function db_fetch_assoc($result = null, $i=null) { if(is_null($result)) { if(is_null($i)) return pg_fetch_assoc($this->db_result); - else + else return pg_fetch_assoc($this->db_result, $i); } - else + else { if(is_null($i)) return pg_fetch_row($result); - else + else return pg_fetch_row($result, $i); - } + } } - + public function db_result($result = null, $i,$item) { if(is_null($result)) { return pg_result($this->db_result, $i,$item); } - else + else { return pg_result($result, $i,$item); - } + } } - + public function db_getResultJSON($result = null) { $rows=array(); if(is_null($result)) { - while($r = pg_fetch_assoc($this->db_result)) + while($r = pg_fetch_assoc($this->db_result)) $rows[] = $r; - + //print json_encode($rows); } - else + else { pg_result_seek($result, 0); //var_dump($result); - while($r = pg_fetch_assoc($result)) + while($r = pg_fetch_assoc($result)) { $rows[] = $r; } - + //print json_encode($rows); - } - return json_encode($rows); + } + return json_encode($rows); } - + public function db_last_error() { return pg_last_error(); } - + public function db_affected_rows($result=null) { if(is_null($result)) @@ -162,7 +162,7 @@ class basis_db extends db else return pg_affected_rows($result); } - + public function db_result_seek($result=null, $offset) { if(is_null($result)) @@ -170,7 +170,7 @@ class basis_db extends db else return pg_result_seek($result, $offset); } - + public function db_fetch_array($result=null) { if(is_null($result)) @@ -178,7 +178,7 @@ class basis_db extends db else return pg_fetch_array($result); } - + public function db_num_fields($result=null) { if(is_null($result)) @@ -186,7 +186,7 @@ class basis_db extends db else return pg_num_fields($result); } - + /** * Liefert den Feldnamen mit index i */ @@ -208,12 +208,12 @@ class basis_db extends db { return pg_free_result($this->db_result); } - else + else { return pg_free_result($result); - } - } - + } + } + /** * Liefert die aktuelle Datenbankversion */ @@ -225,7 +225,7 @@ class basis_db extends db /** * Escaped Sonderzeichen in Variablen vor der Verwendung in SQL Statements * um SQL Injections zu verhindern - * + * */ public function db_escape($var) { @@ -246,7 +246,7 @@ class basis_db extends db if($qoute) return ($var!==''?$this->db_qoute($var):'null'); else - return ($var!==''?$var:'null'); + return ($var!==''?$var:'null'); } /** @@ -264,10 +264,10 @@ class basis_db extends db * Es werden abhaengig vom Typ Hochkomma oder Null hinzugefuegt * @param $var Value der gesetzt werden soll * @param $type Typ des Values (FHC_STRING | FHC_BOOLEAN | FHC_INTEGER | ...) - * @param $nullable boolean gibt an ob das Feld NULL sein darf. Wenn true wird + * @param $nullable boolean gibt an ob das Feld NULL sein darf. Wenn true wird * NULL statt einem Leerstring zurueckgeliefert * @return Escapter Value inklusive Hochkomma wenn noetig - * + * * Verwendungsbeispiel: * Update tbl_person set nachname=$this->db_add_param($var) * Update tbl_person set aktiv=$this->db_add_param($var, FHC_BOOL, false) @@ -275,7 +275,7 @@ class basis_db extends db */ public function db_add_param($var, $type=FHC_STRING, $nullable=true) { - if($var==='' && $type!=FHC_BOOLEAN) + if(($var==='' || is_null($var)) && $type!=FHC_BOOLEAN) { if($nullable) return 'null'; @@ -285,7 +285,7 @@ class basis_db extends db switch($type) { - case FHC_INTEGER: + case FHC_INTEGER: $var = $this->db_escape($var); if(!is_numeric($var) && $var!=='') die('Invalid Integer Parameter detected:'.$var); @@ -304,12 +304,12 @@ class basis_db extends db break; case FHC_STRING: - default: + default: $var = $this->db_escape($var); $var = $this->db_null_value($var); break; } - return $var; + return $var; } /** @@ -326,9 +326,9 @@ class basis_db extends db else die('Invalid DB Boolean. Wrong DB-Engine?'); } - + /** - * Bereitet ein Array von Elementen auf, damit es in der IN-Klausel eines + * Bereitet ein Array von Elementen auf, damit es in der IN-Klausel eines * Select Befehls verwendet werden kann. */ public function db_implode4SQL($array) @@ -350,7 +350,7 @@ class basis_db extends db */ public function db_parse_array($var) { - if ($var == '') + if ($var == '') return; preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(? Date: Tue, 8 Sep 2015 13:23:26 +0200 Subject: [PATCH 3/5] Outgoing Studenten aus Anwesenheitsliste entfernt --- rdf/anwesenheitsliste.xml.php | 433 +++++++++++++++++----------------- 1 file changed, 220 insertions(+), 213 deletions(-) diff --git a/rdf/anwesenheitsliste.xml.php b/rdf/anwesenheitsliste.xml.php index eacef60f6..4349a6935 100644 --- a/rdf/anwesenheitsliste.xml.php +++ b/rdf/anwesenheitsliste.xml.php @@ -1,213 +1,220 @@ - - */ -/** - * Erstellt das XML fuer die Anwesenheitsliste - */ -// content type setzen -header("Content-type: application/xhtml+xml"); -require_once('../../../config/vilesci.config.inc.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/basis_db.class.php'); -require_once('../../../include/ean13.function.php'); - -// Optionen abfragen -isset($_GET['von']) ? $von = date('Y-m-d', strtotime($_GET['von'])) : $von = NULL; -isset($_GET['bis']) ? $bis = date('Y-m-d', strtotime($_GET['bis'])) : $bis = $von; -isset($_GET['stundevon']) ? $stundevon = $_GET['stundevon'] : $stundevon = null; -isset($_GET['stundebis']) ? $stundebis = $_GET['stundebis'] : $stundebis = null; -isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; -isset($_GET['semester']) ? $semester = $_GET['semester'] : $semester = NULL; -isset($_GET['lehreinheit']) ? $lehreinheit = $_GET['lehreinheit'] : $lehreinheit = NULL; - -if($von) - $studiensemester = getStudiensemesterFromDatum($von); - -$db = new basis_db(); -$data = array(); - -/*if(!$studiengang) - die('Die ID des Studiengangs muss uebergeben werden'); -*/ -// Daten der Lehreinheiten ermitteln -$qry = "SELECT le.lehreinheit_id, le.lehrveranstaltung_id, lv.lvnr, lv.bezeichnung AS lvbez, stg.bezeichnung AS stgbez, " - . "sp.ort_kurzbz, datum, beginn, ende, studiensemester_kurzbz, lv.semester, lv.orgform_kurzbz " - . "FROM lehre.tbl_lehreinheit le " - . "JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id " - . "JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz " - . "JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id) " - . "JOIN lehre.tbl_stunde stu ON stu.stunde = sp.stunde " - . "WHERE 1=1"; -//echo "".var_dump($qry).""; -if($studiengang!='') - $qry.=" AND stg.studiengang_kz = " . $db->db_add_param($studiengang) . " "; - -// Optionen zu Query hinzufügen -if($lehreinheit) - $qry .= " AND le.lehreinheit_id = " . $db->db_add_param($lehreinheit); -if($semester) - $qry .= " AND lv.semester = " . $db->db_add_param($semester); -if($von) - $qry .= " AND (sp.datum >= " . $db->db_add_param($von) . "::DATE AND sp.datum <= " . $db->db_add_param($bis) . "::DATE) "; - -if(!is_null($stundevon) && !is_null($stundebis)) -{ - // Unterricht zwischen 4. und 8. Stunde - //$qry.=" AND EXISTS (SELECT 1 FROM lehre.tbl_stundenplan WHERE datum=sp.datum AND lehreinheit_id=sp.lehreinheit_id AND stunde BETWEEN ".$db->db_add_param($stundevon)." AND ".$db->db_add_param($stundebis).")"; - - // Beginn zwischen 4. und 8. Stunde - $qry.=" AND (SELECT min(stunde) FROM lehre.tbl_stundenplan WHERE datum=sp.datum AND lehreinheit_id=sp.lehreinheit_id) BETWEEN ".$db->db_add_param($stundevon)." AND ".$db->db_add_param($stundebis); -} -else -{ - if(!is_null($stundevon)) - $qry.=" AND stu.stunde>=".$db->db_add_param($stundevon); - if(!is_null($stundebis)) - $qry.=" AND stu.stunde<=".$db->db_add_param($stundebis); -} -$qry .= " ORDER BY datum, beginn"; - -if($db->db_query($qry)) -{ - while($row = $db->db_fetch_object()) - { - if(empty($row)) - die("Lehreinheit $lehreinheit am $von nicht gefunden"); - - $data[$row->lehreinheit_id]['tage'][$row->datum][] = $row; - } -} -//echo $qry; -foreach($data as $key => $value) -{ - // Daten der Vortragenden ermitteln - $qry = "SELECT vorname, nachname, titelpre, titelpost " - . "FROM lehre.tbl_lehreinheitmitarbeiter lema " - . "JOIN public.tbl_benutzer be ON be.uid = lema.mitarbeiter_uid " - . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " - . "WHERE lehreinheit_id = " . $db->db_add_param($key); - - if($db->db_query($qry)) - { - while($row = $db->db_fetch_object()) - { - $data[$key]['vortragende'][] = $row; - } - } - - // Daten der Studenten ermitteln - $qry = "SELECT pe.person_id, vorname, nachname, titelpre, titelpost, note, " - . "get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") AS laststatus " - . "FROM campus.vw_student_lehrveranstaltung stlv " - . "JOIN public.tbl_benutzer be ON be.uid = stlv.uid " - . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " - . "JOIN public.tbl_student ON be.uid = tbl_student.student_uid " - . "LEFT JOIN lehre.tbl_zeugnisnote zn ON (zn.lehrveranstaltung_id = stlv.lehrveranstaltung_id AND zn.student_uid = stlv.uid AND zn.studiensemester_kurzbz = " . $db->db_add_param($studiensemester) . ") " - . "WHERE stlv.lehreinheit_id = " . $db->db_add_param($key) . " " - . "AND get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") NOT IN ('Abbrecher', 'Unterbrecher', 'Outgoings') " - . "ORDER BY nachname ASC"; - - if($db->db_query($qry)) - { - while($row = $db->db_fetch_object()) - { - $data[$key]['studenten'][] = $row; - } - } -} - -// AUSGABE -echo ""; -echo ""; - -foreach($data as $lehreinheit_id => $value) -{ - foreach($value['tage'] as $tag) - { - echo ""; - - // Barcode erstellen - $paddedLehreinheitId = str_pad($lehreinheit_id, 6, "0", STR_PAD_LEFT); - $convertableString = date('ymd', strtotime($tag[0]->datum)) . $paddedLehreinheitId; - $barcode = ean13($convertableString); - - // Ausgabe der Lehrveranstaltung - echo "\n "; - echo "\n lehreinheit_id."]]>"; - echo "\n stgbez."]]>"; - echo "\n semester."]]>"; - echo "\n orgform_kurzbz."]]>"; - echo "\n studiensemester_kurzbz."]]>"; - echo "\n lvbez."]]>"; - echo "\n "; - echo "\n lvnr."]]>"; - echo "\n "; - echo "\n ort_kurzbz."]]>"; - echo "\n datum))."]]>"; - echo "\n beginn, 0, 5)."]]>"; - echo "\n ende, 0, 5)."]]>"; - echo "\n "; - - // Ausgabe der Vortragenden - echo ""; - foreach($value['vortragende'] as $vortragender) - { - echo "\n "; - echo "\n vorname."]]>"; - echo "\n nachname."]]>"; - echo "\n titelpre."]]>"; - echo "\n titelpost."]]>"; - echo "\n "; - } - echo ""; - - // Ausgabe der Studenten - echo ""; - if(isset($value['studenten']) && is_array($value['studenten'])) - { - foreach($value['studenten'] as $student) - { - // Barcode erstellen - $paddedPersonId = str_pad($student->person_id, 12, "0", STR_PAD_LEFT); - $barcode = ean13($paddedPersonId); - // Anzeigename generieren - $namegesamt = (strlen($student->titelpre) > 0) ? $student->titelpre." " : ""; - $namegesamt .= $student->nachname." ".$student->vorname; - $namegesamt .= (strlen($student->titelpost) > 0) ? ", ".$student->titelpost : ""; - - echo "\n "; - echo "\n "; - echo "\n vorname."]]>"; - echo "\n nachname."]]>"; - echo "\n titelpre."]]>"; - echo "\n titelpost."]]>"; - echo "\n "; - echo "\n note."]]>"; - echo "\n laststatus."]]>"; - echo "\n "; - } - } - echo ""; - echo ""; - } -} - -echo ""; - -?> + + */ +/** + * Erstellt das XML fuer die Anwesenheitsliste + */ +// content type setzen +header("Content-type: application/xhtml+xml"); +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/basis_db.class.php'); +require_once('../include/ean13.function.php'); + +// Optionen abfragen +isset($_GET['von']) ? $von = date('Y-m-d', strtotime($_GET['von'])) : $von = NULL; +isset($_GET['bis']) ? $bis = date('Y-m-d', strtotime($_GET['bis'])) : $bis = $von; +isset($_GET['stundevon']) ? $stundevon = $_GET['stundevon'] : $stundevon = null; +isset($_GET['stundebis']) ? $stundebis = $_GET['stundebis'] : $stundebis = null; +isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; +isset($_GET['semester']) ? $semester = $_GET['semester'] : $semester = NULL; +isset($_GET['lehreinheit']) ? $lehreinheit = $_GET['lehreinheit'] : $lehreinheit = NULL; + +if($von) + $studiensemester = getStudiensemesterFromDatum($von); + +$db = new basis_db(); +$data = array(); + +/*if(!$studiengang) + die('Die ID des Studiengangs muss uebergeben werden'); +*/ +// Daten der Lehreinheiten ermitteln +$qry = "SELECT le.lehreinheit_id, le.lehrveranstaltung_id, lv.lvnr, lv.bezeichnung AS lvbez, stg.bezeichnung AS stgbez, " + . "sp.ort_kurzbz, datum, beginn, ende, studiensemester_kurzbz, lv.semester, lv.orgform_kurzbz " + . "FROM lehre.tbl_lehreinheit le " + . "JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id " + . "JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz " + . "JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id) " + . "JOIN lehre.tbl_stunde stu ON stu.stunde = sp.stunde " + . "WHERE 1=1"; +//echo "".var_dump($qry).""; +if($studiengang!='') + $qry.=" AND stg.studiengang_kz = " . $db->db_add_param($studiengang) . " "; + +// Optionen zu Query hinzufügen +if($lehreinheit) + $qry .= " AND le.lehreinheit_id = " . $db->db_add_param($lehreinheit); +if($semester) + $qry .= " AND lv.semester = " . $db->db_add_param($semester); +if($von) + $qry .= " AND (sp.datum >= " . $db->db_add_param($von) . "::DATE AND sp.datum <= " . $db->db_add_param($bis) . "::DATE) "; + +if(!is_null($stundevon) && !is_null($stundebis)) +{ + // Unterricht zwischen 4. und 8. Stunde + //$qry.=" AND EXISTS (SELECT 1 FROM lehre.tbl_stundenplan WHERE datum=sp.datum AND lehreinheit_id=sp.lehreinheit_id AND stunde BETWEEN ".$db->db_add_param($stundevon)." AND ".$db->db_add_param($stundebis).")"; + + // Beginn zwischen 4. und 8. Stunde + $qry.=" AND (SELECT min(stunde) FROM lehre.tbl_stundenplan WHERE datum=sp.datum AND lehreinheit_id=sp.lehreinheit_id) BETWEEN ".$db->db_add_param($stundevon)." AND ".$db->db_add_param($stundebis); +} +else +{ + if(!is_null($stundevon)) + $qry.=" AND stu.stunde>=".$db->db_add_param($stundevon); + if(!is_null($stundebis)) + $qry.=" AND stu.stunde<=".$db->db_add_param($stundebis); +} +$qry .= " ORDER BY datum, beginn"; + +if($db->db_query($qry)) +{ + while($row = $db->db_fetch_object()) + { + if(empty($row)) + die("Lehreinheit $lehreinheit am $von nicht gefunden"); + + $data[$row->lehreinheit_id]['tage'][$row->datum][] = $row; + } +} +//echo $qry; +foreach($data as $key => $value) +{ + $currentDay = key($value['tage']); + + // Daten der Vortragenden ermitteln + $qry = "SELECT vorname, nachname, titelpre, titelpost " + . "FROM lehre.tbl_lehreinheitmitarbeiter lema " + . "JOIN public.tbl_benutzer be ON be.uid = lema.mitarbeiter_uid " + . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " + . "WHERE lehreinheit_id = " . $db->db_add_param($key); + + if($db->db_query($qry)) + { + while($row = $db->db_fetch_object()) + { + $data[$key]['vortragende'][] = $row; + } + } + + // Daten der Studenten ermitteln + $qry = "SELECT pe.person_id, vorname, nachname, titelpre, titelpost, note, " + . "get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") AS laststatus " + . "FROM campus.vw_student_lehrveranstaltung stlv " + . "JOIN public.tbl_benutzer be ON be.uid = stlv.uid " + . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " + . "JOIN public.tbl_student ON be.uid = tbl_student.student_uid " + . "LEFT JOIN lehre.tbl_zeugnisnote zn ON (zn.lehrveranstaltung_id = stlv.lehrveranstaltung_id AND zn.student_uid = stlv.uid AND zn.studiensemester_kurzbz = " . $db->db_add_param($studiensemester) . ") " + . "WHERE stlv.lehreinheit_id = " . $db->db_add_param($key) . " " + . "AND get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") NOT IN ('Abbrecher', 'Unterbrecher') " + . "AND tbl_student.student_uid NOT IN (" + . "SELECT stud.student_uid " + . "FROM bis.tbl_bisio bis " + . "JOIN public.tbl_student stud ON bis.student_uid = stud.student_uid " + . "WHERE bis.von <= " . $db->db_add_param($currentDay) . "::DATE AND bis.bis >= " . $db->db_add_param($currentDay) . "::DATE) " + . "ORDER BY nachname ASC"; + + if($db->db_query($qry)) + { + while($row = $db->db_fetch_object()) + { + $data[$key]['studenten'][] = $row; + } + } +} + +// AUSGABE +echo ""; +echo ""; + +foreach($data as $lehreinheit_id => $value) +{ + foreach($value['tage'] as $tag) + { + echo ""; + + // Barcode erstellen + $paddedLehreinheitId = str_pad($lehreinheit_id, 6, "0", STR_PAD_LEFT); + $convertableString = date('ymd', strtotime($tag[0]->datum)) . $paddedLehreinheitId; + $barcode = ean13($convertableString); + + // Ausgabe der Lehrveranstaltung + echo "\n "; + echo "\n lehreinheit_id."]]>"; + echo "\n stgbez."]]>"; + echo "\n semester."]]>"; + echo "\n orgform_kurzbz."]]>"; + echo "\n studiensemester_kurzbz."]]>"; + echo "\n lvbez."]]>"; + echo "\n "; + echo "\n lvnr."]]>"; + echo "\n "; + echo "\n ort_kurzbz."]]>"; + echo "\n datum))."]]>"; + echo "\n beginn, 0, 5)."]]>"; + echo "\n ende, 0, 5)."]]>"; + echo "\n "; + + // Ausgabe der Vortragenden + echo ""; + foreach($value['vortragende'] as $vortragender) + { + echo "\n "; + echo "\n vorname."]]>"; + echo "\n nachname."]]>"; + echo "\n titelpre."]]>"; + echo "\n titelpost."]]>"; + echo "\n "; + } + echo ""; + + // Ausgabe der Studenten + echo ""; + if(isset($value['studenten']) && is_array($value['studenten'])) + { + foreach($value['studenten'] as $student) + { + // Barcode erstellen + $paddedPersonId = str_pad($student->person_id, 12, "0", STR_PAD_LEFT); + $barcode = ean13($paddedPersonId); + // Anzeigename generieren + $namegesamt = (strlen($student->titelpre) > 0) ? $student->titelpre." " : ""; + $namegesamt .= $student->nachname." ".$student->vorname; + $namegesamt .= (strlen($student->titelpost) > 0) ? ", ".$student->titelpost : ""; + + echo "\n "; + echo "\n "; + echo "\n vorname."]]>"; + echo "\n nachname."]]>"; + echo "\n titelpre."]]>"; + echo "\n titelpost."]]>"; + echo "\n "; + echo "\n note."]]>"; + echo "\n laststatus."]]>"; + echo "\n "; + } + } + echo ""; + echo ""; + } +} + +echo ""; + +?> From 0fb322c63259253fb55f78c16d629659fc0bc8b6 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 8 Sep 2015 19:46:50 +0200 Subject: [PATCH 4/5] Diverse Anpassungen an Studienordnungstemplate --- content/pdfExport.php | 63 ++++++---- include/vorlage.class.php | 114 +++++++++--------- rdf/studienordnung.rdf.php | 122 ++++++++++---------- system/xsl/Studienordnung_0.xsl | 159 ++++++++++++++++++-------- system/xsl/Studienordnung_style_0.xml | 2 +- 5 files changed, 271 insertions(+), 189 deletions(-) diff --git a/content/pdfExport.php b/content/pdfExport.php index ba6638227..db86275b2 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -151,6 +151,8 @@ if(isset($_GET['fixangestellt'])) $params.='&fixangestellt='.urlencode($_GET['fixangestellt']); if(isset($_GET['standort'])) $params.='&standort='.urlencode($_GET['standort']); +if(isset($_GET['abrechnungsmonat'])) + $params.='&abrechnungsmonat='.urlencode($_GET['abrechnungsmonat']); if(isset($_GET['form'])) $params.='&form='.urlencode($_GET['form']); $output = (isset($_GET['output'])?$_GET['output']:'odt'); @@ -158,6 +160,22 @@ $output = (isset($_GET['output'])?$_GET['output']:'odt'); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); +//XSL aus der DB holen +$vorlage = new vorlage(); +if($xsl_oe_kurzbz!='') +{ + $vorlage->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version); +} +else +{ + if($xsl_stg_kz=='') + $xsl_stg_kz='0'; + + $vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version); +} + +$xsl_content = $vorlage->text; + //Berechtigung pruefen if($xsl=='AccountInfo') { @@ -253,8 +271,26 @@ elseif($xsl=='Bestellung') } else { - echo 'unbekanntes Dokument oder keine Berechtigung'; - exit; + // Wenn Berechtigung direkt beim der Vorlage angegeben ist + if(count($vorlage->berechtigung)>0) + { + $allowed=false; + foreach($vorlage->berechtigung as $berechtigung_kurzbz) + { + if($rechte->isBerechtigt($berechtigung_kurzbz)) + $allowed=true; + } + if(!$allowed) + { + echo 'unbekanntes Dokument oder keine Berechtigung'; + exit; + } + } + else + { + echo 'unbekanntes Dokument oder keine Berechtigung'; + exit; + } } @@ -281,22 +317,6 @@ $xml_doc = new DOMDocument; if(!$xml_doc->load($xml_url)) die('unable to load xml: '.$xml_url); -//XSL aus der DB holen -$vorlage = new vorlage(); -if($xsl_oe_kurzbz!='') -{ - $vorlage->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version); -} -else -{ - if($xsl_stg_kz=='') - $xsl_stg_kz='0'; - - $vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version); -} - -$xsl_content = $vorlage->text; - //Pdf erstellen //wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen @@ -444,8 +464,9 @@ if (!isset($_REQUEST["archive"])) { $studienordnung = new studienordnung(); $studienordnung->loadStudienordnung($_GET['studienordnung_id']); - $filename = $filename.'_'.$studienordnung->studiengangkurzbzlang; + $filename = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$studienordnung->studiengangkurzbzlang; } + $fsize = filesize($tempname_zip); $handle = fopen($tempname_zip,'r'); header('Content-type: '.$vorlage->mimetype); @@ -455,11 +476,11 @@ if (!isset($_REQUEST["archive"])) else if($output =='doc') { $tempPdfName = $vorlage->vorlage_kurzbz.'.doc'; - if($xsl == "Studienordnung") + if($xsl == "Studienordnung") { $studienordnung = new studienordnung(); $studienordnung->loadStudienordnung($_GET['studienordnung_id']); - $filename = $filename.'_'.$studienordnung->studiengangkurzbzlang.'.doc'; + $filename = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$studienordnung->studiengangkurzbzlang; } else { diff --git a/include/vorlage.class.php b/include/vorlage.class.php index 77e6c44d0..404063201 100644 --- a/include/vorlage.class.php +++ b/include/vorlage.class.php @@ -32,7 +32,7 @@ class vorlage extends basis_db public $num_rows=0; public $errormsg; public $new; - + //Tabellenspalten public $vorlage_kurzbz; // varchar(16) public $studiengang_kz; // integer @@ -54,7 +54,7 @@ class vorlage extends basis_db { parent::__construct(); } - + /** * Laedt eine Vorlage * @param $vorlage_kurzbz @@ -85,7 +85,7 @@ class vorlage extends basis_db return false; } } - + /** * Speichert eine Vorlage * Wenn $new auf true gesetzt ist wird ein neuer Datensatz @@ -96,7 +96,7 @@ class vorlage extends basis_db { if(is_null($new)) $new = $this->new; - + if($new) { $qry = "INSERT INTO public.tbl_vorlage(vorlage_kurzbz, bezeichnung, anmerkung, mimetype) VALUES(". @@ -113,7 +113,7 @@ class vorlage extends basis_db mimetype='.$this->db_add_param($this->mimetype).' WHERE vorlage_kurzbz='.$this->db_add_param($this->vorlage_kurzbz).';'; } - + if($this->db_query($qry)) { return true; @@ -124,7 +124,7 @@ class vorlage extends basis_db return false; } } - + /** * Liefert alle Vorlagen * @param $order Sortierreihenfolge. Default:vorlage_kurzbz @@ -132,7 +132,7 @@ class vorlage extends basis_db public function getAllVorlagen($order='vorlage_kurzbz') { $qry ="SELECT * FROM public.tbl_vorlage ORDER BY ".$order.";"; - + if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) @@ -142,14 +142,14 @@ class vorlage extends basis_db $obj->bezeichnung = $row->bezeichnung; $obj->anmerkung = $row->anmerkung; $obj->mimetype = $row->mimetype; - + $this->result[]= $obj; } } else return false; } - + /** * Laedt die Vorlage zu einer OE * @param $vorlage_kurzbz @@ -185,20 +185,20 @@ class vorlage extends basis_db return false; } } - + /** * Laedt alle Versionen einer Vorlage * @param $vorlage_kurzbz - * @param $oe_kurzbz Optional. Gibt nur die Vorlagen zu dieser OE aus. + * @param $oe_kurzbz Optional. Gibt nur die Vorlagen zu dieser OE aus. * @return true wenn ok, false im Fehlerfall */ public function getAllVersions($vorlage_kurzbz=null, $oe_kurzbz=null) { - $qry = "SELECT + $qry = "SELECT * - FROM + FROM public.tbl_vorlagestudiengang - WHERE + WHERE 1=1"; if(!is_null($vorlage_kurzbz) && $vorlage_kurzbz!='') { @@ -208,7 +208,7 @@ class vorlage extends basis_db { $qry.=" AND oe_kurzbz=".$this->db_add_param($oe_kurzbz); } - + if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) @@ -223,7 +223,7 @@ class vorlage extends basis_db $obj->style = $row->style; $obj->berechtigung = $row->berechtigung; $obj->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang; - + $this->result[]= $obj; } } @@ -233,7 +233,7 @@ class vorlage extends basis_db return false; } } - + /** * Liefert alle OEs, welche die $vorlage_kurzbz verwenden * @param $vorlage_kurzbz Kurzbezeichnung der Vorlage @@ -241,15 +241,15 @@ class vorlage extends basis_db public function getOEsFromVorlage($vorlage_kurzbz=null) { $qry ="SELECT DISTINCT - tbl_organisationseinheit.* - FROM - public.tbl_vorlagestudiengang - JOIN + tbl_organisationseinheit.* + FROM + public.tbl_vorlagestudiengang + JOIN public.tbl_organisationseinheit USING (oe_kurzbz) WHERE vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz)." ORDER BY oe_kurzbz"; - + if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) @@ -262,14 +262,14 @@ class vorlage extends basis_db $obj->aktiv = $this->db_parse_bool($row->aktiv); $obj->mailverteiler = $this->db_parse_bool($row->mailverteiler); $obj->lehre = $this->db_parse_bool($row->lehre); - + $this->result[]= $obj; } } else return false; } - + /** * Speichert die Vorlage zu einer OE * Wenn $new auf true gesetzt ist wird ein neuer Datensatz @@ -280,7 +280,7 @@ class vorlage extends basis_db { if($new == null) $new = $this->new; - + if($new) { $qry = "INSERT INTO public.tbl_vorlagestudiengang(vorlage_kurzbz,studiengang_kz,version,text,oe_kurzbz,style,berechtigung,anmerkung_vorlagestudiengang) VALUES(". @@ -306,7 +306,7 @@ class vorlage extends basis_db anmerkung_vorlagestudiengang='.$this->db_add_param($this->anmerkung_vorlagestudiengang).' WHERE vorlagestudiengang_id='.$this->db_add_param($this->vorlagestudiengang_id).';'; } - + if($this->db_query($qry)) { return true; @@ -317,7 +317,7 @@ class vorlage extends basis_db return false; } } - + /** * Löscht die Vorlagestudiengagn * @param type $vorlagestudiengang_id ID der Vorlage @@ -325,7 +325,7 @@ class vorlage extends basis_db public function deleteVorlagestudiengang($vorlagestudiengang_id) { $qry = 'DELETE FROM public.tbl_vorlagestudiengang WHERE vorlagestudiengang_id='.$this->db_add_param($vorlagestudiengang_id).';'; - + if($this->db_query($qry)) { return true; @@ -345,15 +345,15 @@ class vorlage extends basis_db */ public function getMaxVersion($oe_kurzbz, $vorlage_kurzbz) { - $qry = "SELECT - max(version) maxversion - FROM + $qry = "SELECT + max(version) maxversion + FROM public.tbl_vorlagestudiengang - WHERE - vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz)." - AND + WHERE + vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz)." + AND oe_kurzbz=".$this->db_add_param($oe_kurzbz); - + if($result = $this->db_query($qry)) { if($row = $this->db_fetch_object($result)) @@ -367,15 +367,15 @@ class vorlage extends basis_db return false; } } - - + + /** * Liefert die aktuelle Vorlage - * + * * * @param $oe_kurzbz Organisationseinheit der Vorlage - * Fuer Kompatibilitaetszwecke kann hier statt der oe_kurzbz auch die Studiengangskennzahl uebergeben werden. - * Dies wird in den kommenden Versionen jedoch nicht mehr moeglich sein! + * Fuer Kompatibilitaetszwecke kann hier statt der oe_kurzbz auch die Studiengangskennzahl uebergeben werden. + * Dies wird in den kommenden Versionen jedoch nicht mehr moeglich sein! * @param $vorlage_kurzbz Name der Vorlage * @param $version optional kann die Versionsnummer der Vorlage uebergeben werden * @return boolean @@ -387,16 +387,16 @@ class vorlage extends basis_db { $studiengang_kz=$oe_kurzbz; } - + if($studiengang_kz!='') { - $qry = "SELECT + $qry = "SELECT tbl_vorlagestudiengang.*, tbl_vorlage.mimetype, tbl_vorlage.bezeichnung - FROM - public.tbl_vorlagestudiengang - JOIN public.tbl_vorlage USING(vorlage_kurzbz) - WHERE - (studiengang_kz=0 OR studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER).") AND + FROM + public.tbl_vorlagestudiengang + JOIN public.tbl_vorlage USING(vorlage_kurzbz) + WHERE + (studiengang_kz=0 OR studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER).") AND vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz); if(!is_null($version) && $version!='') { @@ -413,10 +413,10 @@ class vorlage extends basis_db } else { - $qry = "SELECT + $qry = "SELECT tbl_vorlagestudiengang.*, tbl_vorlage.mimetype, tbl_vorlage.bezeichnung - FROM - public.tbl_vorlagestudiengang + FROM + public.tbl_vorlagestudiengang JOIN public.tbl_vorlage USING(vorlage_kurzbz) WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)." AND vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz); @@ -426,7 +426,7 @@ class vorlage extends basis_db } $qry.=" ORDER BY version DESC LIMIT 1"; } - + if($this->db_query($qry)) { if($row = $this->db_fetch_object()) @@ -438,12 +438,12 @@ class vorlage extends basis_db $this->mimetype = $row->mimetype; $this->bezeichnung = $row->bezeichnung; $this->style = $row->style; - $this->berechtigung = $row->berechtigung; + $this->berechtigung = $this->db_parse_array($row->berechtigung); $this->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang; - + return true; } - else + else { if($studiengang_kz!='') { @@ -456,7 +456,7 @@ class vorlage extends basis_db //nachsehen ob fuer eine der uebergeordneten OEs eine Vorlage vorhanden ist. $oe = new organisationseinheit(); $oe->load($oe_kurzbz); - + if($oe->oe_parent_kurzbz!='') { return $this->getAktuelleVorlage($oe->oe_parent_kurzbz, $vorlage_kurzbz, $version); @@ -469,12 +469,12 @@ class vorlage extends basis_db } } } - else + else { $this->errormsg = 'Fehler beim Laden der Vorlage'; return false; } } - + } ?> diff --git a/rdf/studienordnung.rdf.php b/rdf/studienordnung.rdf.php index 4a1d013e1..338aeb10d 100644 --- a/rdf/studienordnung.rdf.php +++ b/rdf/studienordnung.rdf.php @@ -32,8 +32,6 @@ require_once('../include/organisationsform.class.php'); require_once('../include/lehrform.class.php'); require_once('../include/sprache.class.php'); - - header("Content-type: application/xhtml+xml"); if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") @@ -41,46 +39,46 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") if(isset($_GET['studienordnung_id'])) { $studienordnung_id = $_REQUEST['studienordnung_id']; - + $studienordnung_obj = new studienordnung(); $studienordnung_obj->loadStudienordnung($studienordnung_id); - + $stg_kz = $studienordnung_obj->studiengang_kz; $gueltigvon_stsem = $studienordnung_obj->gueltigvon; $orgform_obj = new organisationsform(); $orgform_obj->getAll(); - + foreach($orgform_obj->result as $row_orgform) { $orgform[$row_orgform->orgform_kurzbz]=$row_orgform->bezeichnung; } - //$datum = new datum(); - - $objStg = new studiengang(); - + //$datum = new datum(); + + $objStg = new studiengang(); + if(!$objStg->load($stg_kz)) die('Fehler beim laden des Studiengangs'); $objLVInfo = new lvinfo(); - + switch($objStg->typ) { case 'b': - $stg_art = 'Bachelor'; - $titel_kurzbz = 'BSc'; - break; - case 'm': - $stg_art = 'Master'; - $titel_kurzbz ='MSc'; - break; + $stg_art = 'Bachelor'; + $titel_kurzbz = 'BSc'; + break; + case 'm': + $stg_art = 'Master'; + $titel_kurzbz ='MSc'; + break; case 'd': - $stg_art = 'Diplom'; - break; - default: - $stg_art =''; - $titel_kurzbz = ''; + $stg_art = 'Diplom'; + break; + default: + $stg_art =''; + $titel_kurzbz = ''; } - + $stgleiter = $objStg->getLeitung($objStg->studiengang_kz); $stgl=''; foreach ($stgleiter as $stgleiter_uid) @@ -88,10 +86,10 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $stgl_ma = new mitarbeiter($stgleiter_uid); $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); } - + $orgform_kurzbz_lang = $orgform[$objStg->orgform_kurzbz]; - - + + echo ''; echo ''; echo ' studiengang_kz).']]>'; @@ -106,10 +104,10 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo ' orgform_kurzbz.']]>'; echo ' '; echo ' '; - + $studienplan = new studienplan(); $studienplan->loadStudienplanSTO($studienordnung_id); - + foreach($studienplan->result as $row_studienplan) { $summe_ects_orgform = 0; @@ -117,7 +115,7 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo ' '; echo ' regelstudiendauer.']]>'; echo ' bezeichnung.']]>'; - + // $count=$objLV->count_lva_orgform($objStg->studiengang_kz,$orgform_kurzbz); /* if($orgform_kurzbz==$objStg->orgform_kurzbz) @@ -136,9 +134,9 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } */ $orgform_kurzbz_lang = $orgform[$row_studienplan->orgform_kurzbz]; - - - $ects_gesamt = ($row_studienplan->regelstudiendauer)*30; + + + $ects_gesamt = ($row_studienplan->regelstudiendauer)*30; // echo ' '; echo ' orgform_kurzbz.']]>'; @@ -148,25 +146,25 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") //echo ' studienplaetze.']]>'; // ************ Lehrveranstaltungen *************** - + //Basis von Ösi /* $lv = new lehrveranstaltung(); $lv->loadLehrveranstaltungStudienplan($studienplan_id); getLVFromStudienplanByLehrtyp($studienplan_id, null, $i) $tree = $lv->getLehrveranstaltungTree(); - - + + foreach($tree as $module) { echo $module->bezeichnung; - + if(isset($module->childs)) { foreach($module->childs as $lv_1) { echo $lv_1->bezeichnung; - + if(isset($lv_1->childs)) { foreach($lv_1->childs as $lv_2) @@ -175,44 +173,44 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } } } - + printlv($tree); - + function printlv($tree) { foreach($tree as $lv) { echo $lv->bezeichnung; - + if(isset($lv->childs)) { printlv($lv->childs); } } }*/ - - - + + + for($i=1;$i<=$objStg->max_semester;$i++) { $summe_ects_semester = 0; $summe_sws_semester = 0; echo ' '; echo ' '; - + $lv = new lehrveranstaltung(); $lv->loadLehrveranstaltungStudienplan($row_studienplan->studienplan_id, $i); $tree = $lv->getLehrveranstaltungTree(); - + //var_dump($tree); printLehrveranstaltungTree($tree); - + //if ($lv->lehrtyp_kurzbz!='modul') // $summe += $lv->ects; - + echo ' '; echo ' '; - + $summe_ects_orgform += $summe_ects_semester; $summe_sws_orgform += $summe_sws_semester; echo ''; @@ -225,8 +223,8 @@ if(isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo ''; } else - die('Parameter studienordnung_id is missing'); - + die('Parameter studienordnung_id is missing'); + } else die('Use Parameter xmlformat = xml'); @@ -242,14 +240,14 @@ function printLehrveranstaltungTree($tree) usort($tree, "cmp"); foreach($tree as $lv) { - $db = new basis_db(); - $lv_alvs = new lehrveranstaltung(); + $db = new basis_db(); + $lv_alvs = new lehrveranstaltung(); if(!$alvs = $lv_alvs->getALVS($lv->lehrveranstaltung_id, $lv->semester)) - $alvs = ''; + $alvs = ''; //Semesterwochen zum berechnen der SWS ermitteln - $qry = ' SELECT + $qry = ' SELECT wochen - FROM + FROM public.tbl_semesterwochen WHERE studiengang_kz='.$lv->studiengang_kz.' @@ -262,14 +260,14 @@ function printLehrveranstaltungTree($tree) $row_wochen = $db->db_fetch_object($wochen_stg); $wochen = $row_wochen->wochen; } - else + else $wochen = '15'; } if ($lv->semesterstunden!='') $sws = ($lv->semesterstunden / $wochen); - else + else $sws = 0; - + //Bezeichnung der Lehrform $lehrform_kurzbz = new lehrform(); $lehrform_kurzbz->load($lv->lehrform_kurzbz); @@ -311,7 +309,7 @@ function printLehrveranstaltungTree($tree) echo ' pruefungsordnung).']]>'; echo ' kurzbeschreibung).']]>'; echo ' anmerkungen).']]>'; - echo ' anmerkungen).']]>'; + echo ' anwesenheit).']]>'; } if ($objLVInfo->exists($lv->lehrveranstaltung_id,'English')) { @@ -328,15 +326,15 @@ function printLehrveranstaltungTree($tree) echo ' pruefungsordnung).']]>'; echo ' kurzbeschreibung).']]>'; echo ' anmerkungen).']]>'; - echo ' anmerkungen).']]>'; + echo ' anwesenheit).']]>'; } if ($lv->lehrtyp_kurzbz!='modul') { $summe_ects_semester += $lv->ects; $summe_sws_semester += $sws; } - - // Darunterliegende LVs/Module + + // Darunterliegende LVs/Module if(isset($lv->childs) && count($lv->childs)>0) { echo ''; diff --git a/system/xsl/Studienordnung_0.xsl b/system/xsl/Studienordnung_0.xsl index 37bc4dbde..54ab3059d 100644 --- a/system/xsl/Studienordnung_0.xsl +++ b/system/xsl/Studienordnung_0.xsl @@ -3486,7 +3486,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + + + + + @@ -3518,6 +3522,10 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + + . Semester + + @@ -3544,6 +3552,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + Umfang (ECTS) @@ -3576,6 +3586,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + Pflicht-/Wahl-Modul - Wahlmodul + Pflichtmodul @@ -3639,7 +3651,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Kurzbeschreibung - + + + + + @@ -3647,7 +3663,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Course Description - + + + + + @@ -3655,18 +3675,10 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Lernergebnisse - Nach erfolgreichem Abschluss sind die Studierenden in der Lage,... - • - LE1 - - - • - LE2 - - - • - ... + + + @@ -3675,18 +3687,10 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Learning Outcomes - After passing this course successfully students are able to... - • - LE1 - - - • - LE2 - - - • - ... + + + @@ -3695,7 +3699,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Lehrinhalte - + + + + + @@ -3703,7 +3711,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Course Contents - + + + + + @@ -3711,7 +3723,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Vorkenntnisse - + + + + + @@ -3719,7 +3735,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Prerequisites - + + + + + @@ -3727,12 +3747,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Literatur/Literature - - • - Autor, VN. / Autor, VN. / Autor VN. (Jahr): Titel, Verlag-Herausgeber-sonstiges - - - + + + + + @@ -3740,11 +3759,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Leistungsbeurteilung - LV-Immanente Leistungsbeurteilung oder - LV-Immanente Leistungsbeurteilung und/ oder Abschlussprüfung oder - Abschlussprüfung - - + + + + + @@ -3752,11 +3771,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Assessment Methods - LV-Immanente Leistungsbeurteilung oder - LV-Immanente Leistungsbeurteilung und/ oder Abschlussprüfung oder - Abschlussprüfung - - + + + + + @@ -3764,14 +3783,22 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Anwesenheit - + + + + + Attendance - + + + + + @@ -3783,4 +3810,40 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/xsl/Studienordnung_style_0.xml b/system/xsl/Studienordnung_style_0.xml index 3aa267cc9..d6f96150a 100644 --- a/system/xsl/Studienordnung_style_0.xml +++ b/system/xsl/Studienordnung_style_0.xml @@ -377,7 +377,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Studienordnung-Studienplan-- - + 4 From 7b3d7e4c89d6b2e218ba23ffa996e9e0d47ac775 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 8 Sep 2015 19:52:16 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Bindestriche=20werden=20nun=20nicht=20mehr?= =?UTF-8?q?=20durch=20Aufz=C3=A4hlungszeichen=20ersetzt=20wenn=20diese=20a?= =?UTF-8?q?ls=20Erg=C3=A4nzungsstrich=20oder=20Trennstrich=20am=20Wortende?= =?UTF-8?q?=20gesetzt=20sind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/Studienordnung_0.xsl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/system/xsl/Studienordnung_0.xsl b/system/xsl/Studienordnung_0.xsl index 54ab3059d..db88e06eb 100644 --- a/system/xsl/Studienordnung_0.xsl +++ b/system/xsl/Studienordnung_0.xsl @@ -2001,6 +2001,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + + + + + @@ -3833,7 +3838,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - +