From 0a4c11e8c3e18cb1b9d6486b79585aaaa4fcfcfa Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Fri, 22 Jun 2007 08:23:49 +0000 Subject: [PATCH] --- include/note.class.php | 221 ++++++++++++++++++++++++++++++++++ include/zeugnisnote.class.php | 5 +- rdf/zeugnis.rdf.php | 123 +++++++++++++++++++ 3 files changed, 348 insertions(+), 1 deletion(-) create mode 100644 include/note.class.php create mode 100644 rdf/zeugnis.rdf.php diff --git a/include/note.class.php b/include/note.class.php new file mode 100644 index 000000000..c73b0a26f --- /dev/null +++ b/include/note.class.php @@ -0,0 +1,221 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl and + * Gerald Raab + */ +/** + * Klasse Note + * @create 2007-06-06 + */ + +class note +{ + var $conn; // resource DB-Handle + var $new; // boolean + var $errormsg; // string + var $result=array(); + + //Tabellenspalten + var $note; // smallint + var $bezeichnung; // varchar(32) + var $anmerkung; // varchar(256) + + + + // ********************************************************************* + // * Konstruktor + // * @param $conn Connection + // * $lehrveranstaltung_id + // * $student_uid + // * $studiensemester_kurzbz + // ********************************************************************* + function note($conn, $note = null, $unicode=false) + { + $this->conn = $conn; + + if($unicode!=null) + { + if ($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry="SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg= "Encoding konnte nicht gesetzt werden"; + return false; + } + } + + if($note != null) + $this->load($note); + } + + // ************************************************************** + // * Laedt eine Zeugnisnote + // * @param $lehrveranstaltung_id + // * $student_uid + // * $studiensemester_kurzbz + // * @return true wenn ok, false im Fehlerfall + // *************************************************************** + function load($note) + { + if(!is_numeric($note)) + { + $this->errormsg = 'Note ist ungueltig'; + return false; + } + + $qry = "SELECT * FROM lehre.tbl_note WHERE note='".$note."'"; + + if($result = pg_query($this->conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + $this->note = $row->note; + $this->bezeichnung = $row->bezeichnung; + $this->anmerkung = $row->anmerkung; + return true; + } + else + { + $this->errormsg = 'Datensatz wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + // ************************************* + // * Prueft die Daten vor dem Speichern + // * auf Gueltigkeit + // ************************************* + function validate() + { + if(!is_numeric($this->note)) + { + $this->errormsg = 'Note ist ungueltig'; + return false; + } + } + + // ************************************************ + // * wenn $var '' ist wird "null" zurueckgegeben + // * wenn $var !='' ist werden datenbankkritische + // * Zeichen mit backslash versehen und das Ergebnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ******************************************************************************* + // * Speichert den aktuellen Datensatz in die Datenbank + // * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + // * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id aktualisiert + // * @return true wenn ok, false im Fehlerfall + // ******************************************************************************* + function save($new=null) + { + if($new==null) + $new=$this->new; + + if(!$this->validate()) + return false; + + if($new) + { + //Neuen Datensatz einfuegen + $qry='INSERT INTO lehre.tbl_note (note, bezeichnung, anmerkung) VALUES('. + $this->addslashes($this->note).', '. + $this->addslashes($this->bezeichnung).', '. + $this->addslashes($this->anmerkung).');'; + } + else + { + $qry='UPDATE lehre.tbl_note SET '. + 'note='.$this->addslashes($this->note).', '. + 'bezeichnung='.$this->addslashes($this->bezeichnung).', '. + 'anmerkung='.$this->addslashes($this->anmerkung).', '. + 'WHERE note='.$this->addslashes($this->note).';'; + } + + if(pg_query($this->conn, $qry)) + { + return true; + } + else + { + $this->errormsg = "Fehler beim Speichern des Datensatzes"; + return false; + } + } + + // ******************************************************** + // * Loescht den Datenensatz mit der ID die uebergeben wird + // * @param $lehrveranstaltung_id + // * $student_uid + // * $studiensemester_kurzbz + // * @return true wenn ok, false im Fehlerfall + // ******************************************************** + + function delete($note) + { + $this->errormsg = 'Noch nicht implementiert'; + return false; + } + + // ********************************************* + // * Laed alle Noten + // * @return true wenn ok, false wenn Fehler + // ********************************************* + + function getAll() + { + + $qry = "select * from lehre.tbl_note order by note"; + + if($result = pg_query($this->conn, $qry)) + { + while($row = pg_fetch_object($result)) + { + $n = new note($this->conn, null, null); + + $n->note = $row->note; + $n->bezeichnung = $row->bezeichnung; + $n->anmerkung = $row->anmerkung; + + $this->result[] = $n; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim laden der Daten'; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/zeugnisnote.class.php b/include/zeugnisnote.class.php index ab7f94eac..e303f275f 100644 --- a/include/zeugnisnote.class.php +++ b/include/zeugnisnote.class.php @@ -284,6 +284,7 @@ class zeugnisnote $qry = "SELECT vw_student_lehrveranstaltung.lehrveranstaltung_id, uid, vw_student_lehrveranstaltung.studiensemester_kurzbz, note, uebernahmedatum, benotungsdatum, + vw_student_lehrveranstaltung.ects, vw_student_lehrveranstaltung.semesterstunden, tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum, tbl_zeugnisnote.insertvon, tbl_zeugnisnote.ext_id, vw_student_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, @@ -300,7 +301,7 @@ class zeugnisnote WHERE true $where UNION SELECT lehre.tbl_lehrveranstaltung.lehrveranstaltung_id,student_uid AS uid,studiensemester_kurzbz, note, - uebernahmedatum, benotungsdatum, tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum, + uebernahmedatum, benotungsdatum,lehre.tbl_lehrveranstaltung.ects,lehre.tbl_lehrveranstaltung.semesterstunden, tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum, tbl_zeugnisnote.insertvon, tbl_zeugnisnote.ext_id, lehre.tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_note.bezeichnung as note_bezeichnung, tbl_zeugnisnote.bemerkung as bemerkung FROM @@ -329,6 +330,8 @@ class zeugnisnote $obj->note_bezeichnung = $row->note_bezeichnung; $obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung; $obj->bemerkung = $row->bemerkung; + $obj->semesterstunden = $row->semesterstunden; + $obj->ects = $row->ects; $this->result[] = $obj; } diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php new file mode 100644 index 000000000..b3bc0fb61 --- /dev/null +++ b/rdf/zeugnis.rdf.php @@ -0,0 +1,123 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl and + * Gerald Raab . + */ + +// header für no cache +//header("Cache-Control: no-cache"); +//header("Cache-Control: post-check=0, pre-check=0",false); +//header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); +//header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); +require_once('../vilesci/config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/zeugnisnote.class.php'); +require_once('../include/datum.class.php'); +require_once('../include/note.class.php'); + +// Datenbank Verbindung +if (!$conn = pg_pconnect(CONN_STRING)) + $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; + +//$user = get_uid(); +//loadVariables($conn, $user); +$datum = new datum(); + +if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") +{ + + if(isset($_GET['uid'])) + $uid = $_GET['uid']; + else + $uid = null; + + $uid_arr = explode(";",$uid); + + if ($uid_arr[0] == "") + { + unset($uid_arr[0]); + $uid_arr = array_values($uid_arr); + } + + $note_arr = array(); + $note = new note($conn); + $note->getAll(); + foreach ($note->result as $n) + $note_arr[$n->note] = $n->anmerkung; + + if(isset($_GET['ss'])) + $studiensemester_kurzbz = $_GET['ss']; + else + $studiensemester_kurzbz = $semester_aktuell; + + //$rdf_url='http://www.technikum-wien.at/zeugnisnote'; + + //Daten holen + + $xml = "\n"; + $xml .= ""; + + for ($i = 0; $i < sizeof($uid_arr); $i++) + { + + + $query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.bezeichnung, tbl_studentlehrverband.semester, tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_student.student_uid = tbl_benutzer.uid and tbl_benutzer.person_id = tbl_person.person_id and tbl_student.student_uid = '".$uid_arr[$i]."' and tbl_studentlehrverband.student_uid=tbl_student.student_uid and tbl_studentlehrverband.studiensemester_kurzbz = '".$studiensemester_kurzbz."'"; + if($result = pg_query($conn, $query)) + $row = pg_fetch_object($result); + else + die('Student not found'); + + $stgl_query = "SELECT titelpre, titelpost, vorname, nachname FROM tbl_person, tbl_benutzer, tbl_benutzerfunktion WHERE tbl_person.person_id = tbl_benutzer.person_id and tbl_benutzer.uid = tbl_benutzerfunktion.uid and tbl_benutzerfunktion.funktion_kurzbz = 'stgl' and tbl_benutzerfunktion.studiengang_kz = '".$row->studiengang_kz."'"; + if($stgl_result = pg_query($conn, $stgl_query)) + $stgl_row = pg_fetch_object($stgl_result); + else + die('Stgl not found'); + $xml .= " "; + $xml .= " ".$studiensemester_kurzbz.""; + $xml .= " ".$row->semester.""; + $xml .= " ".$row->bezeichnung.""; + $xml .= " ".$row->studiengang_kz.""; + $xml .= " ".$row->vorname.""; + $xml .= " ".$row->nachname.""; + $xml .= " ".$row->gebdatum.""; + $xml .= " ".$row->matrikelnr.""; + $xml .= " ".$stgl_row->titelpre." ".$stgl_row->vorname." ".$stgl_row->nachname.""; + + $obj = new zeugnisnote($conn, null, null, null, true); + + $obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid_arr[$i], $studiensemester_kurzbz); + + foreach ($obj->result as $row) + { + $xml .= " "; + $xml .= " ".$row->lehrveranstaltung_bezeichnung.""; + $xml .= " ".$note_arr[$row->note].""; + $xml .= " ".$row->semesterstunden.""; + $xml .= " ".$row->ects.""; + $xml .= " "; + } + $xml .= " "; + } + $xml .= ""; + echo $xml; +} +?> \ No newline at end of file