diff --git a/content/studentenoverlay.xul.php b/content/studentenoverlay.xul.php
index 99c2dc9a1..f69814081 100644
--- a/content/studentenoverlay.xul.php
+++ b/content/studentenoverlay.xul.php
@@ -44,7 +44,7 @@ echo "
+ sort="rdf:http://www.technikum-wien.at/student/rdf#uid" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#titel" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#vornamen" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#nachname" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#geburtsdatum" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#semester" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#verband" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#gruppe" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#studiengang_kz" />
+ sort="rdf:http://www.technikum-wien.at/student/rdf#matrikelnummer" />
@@ -99,16 +99,16 @@ echo "
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -159,7 +159,7 @@ echo "
-
+
diff --git a/content/tempusoverlay.js.php b/content/tempusoverlay.js.php
index 9b68ca913..54b79c500 100644
--- a/content/tempusoverlay.js.php
+++ b/content/tempusoverlay.js.php
@@ -67,12 +67,12 @@ function onVerbandSelect()
var attribute='../rdf/lehreinheit-lvplan.rdf.php'+type+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe;
vboxLehrveranstalungPlanung.setAttribute('datasources',attribute);
- /*
// Studenten
var treeStudenten=document.getElementById('treeStudenten');
attribute="rdf/student.rdf.php?"+"stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe;
treeStudenten.setAttribute('datasources',attribute);
+ /*
// LFVT
var req = new phpRequest('lfvt.rdf.php','pam','pam');
req.add('stg_kz',stg_kz);
diff --git a/content/tempusoverlay.xul.php b/content/tempusoverlay.xul.php
index 0a9266446..99913a65b 100644
--- a/content/tempusoverlay.xul.php
+++ b/content/tempusoverlay.xul.php
@@ -141,8 +141,8 @@ echo '';
-
+
+
diff --git a/include/student.class.php b/include/student.class.php
index 47153f7b7..f731167c9 100644
--- a/include/student.class.php
+++ b/include/student.class.php
@@ -15,14 +15,14 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
- * Authors: Christian Paminger ,
+ * Authors: Christian Paminger ,
* Andreas Oesterreicher and
* Rudolf Hangl .
*/
class student extends benutzer
{
-
+
//Tabellenspalten
var $matrikelnr;
var $prestudent_id;
@@ -36,36 +36,36 @@ class student extends benutzer
// * Konstruktor - Uebergibt die Connection und laedt optional einen Studenten
// * @param $conn Datenbank-Connection
// * $uid Student der geladen werden soll (default=null)
- // * $unicode Gibt an ob die Daten mit UNICODE Codierung
+ // * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function student($conn, $uid=null, $unicode=false)
{
$this->conn = $conn;
-
+
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
- else
+ else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
-
+
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
-
+
//Student laden
if($uid!=null)
$this->load($uid);
}
-
+
function load($uid)
{
if(!benutzer::load($uid))
return false;
-
+
$qry = "SELECT * FROM public.tbl_student WHERE student_uid='".addslashes($uid)."'";
-
+
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
@@ -78,33 +78,33 @@ class student extends benutzer
$this->verband = $row->verband;
$this->gruppe = $row->gruppe;
$this->updateamum = $row->updateamum;
- $this->updatevon = $row->updatevon;
+ $this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
-
+
return true;
}
- else
+ else
{
$this->errormsg = 'Kein Benutzer mit dieser UID vorhanden';
return false;
}
}
- else
+ else
{
$this->errormsg = 'Fehler beim Auslesen des Studenten '.$qry;
return false;
}
}
-
+
// *******************************************
- // * Prueft die Variablen vor dem Speichern
+ // * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
- {
+ {
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
@@ -150,11 +150,11 @@ class student extends benutzer
$this->errormsg = 'Gruppe darf nicht laenger als 1 Zeichen sein';
return false;
}
-
+
return true;
}
-
-
+
+
// ************************************************************
// * Speichert die Studentendaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
@@ -163,10 +163,10 @@ class student extends benutzer
// ************************************************************
function save()
{
- //Variablen checken
+ //Variablen checken
if(!$this->validate())
return false;
-
+
pg_query($this->conn,'BEGIN;');
//Basisdaten speichern
if(!benutzer::save())
@@ -174,11 +174,11 @@ class student extends benutzer
pg_query($this->conn,'ROLLBACK;');
return false;
}
-
+
if($this->new)
{
- //Neuen Datensatz anlegen
- $qry = "INSERT INTO public.tbl_student(student_uid, matrikelnr, updateamum, updatevon, prestudent_id,
+ //Neuen Datensatz anlegen
+ $qry = "INSERT INTO public.tbl_student(student_uid, matrikelnr, updateamum, updatevon, prestudent_id,
studiengang_kz, semester, ext_id, verband, gruppe)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->matrikelnr).",".
@@ -191,7 +191,7 @@ class student extends benutzer
($this->verband!=''?"'".addslashes($this->verband)."'":' ').','.
($this->gruppe!=''?"'".addslashes($this->gruppe)."'":' ').');';
}
- else
+ else
{
//Bestehenden Datensatz updaten
$qry = 'UPDATE public.tbl_student SET'.
@@ -206,19 +206,94 @@ class student extends benutzer
' gruppe='.$this->addslashes($this->gruppe).
" WHERE student_uid='".addslashes($this->uid)."';";
}
-
+
if(pg_query($this->conn,$qry))
{
pg_query($this->conn,'COMMIT;');
//Log schreiben
return true;
}
- else
- {
+ else
+ {
pg_query($this->conn,'ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Studenten-Datensatzes'.$qry;
return false;
}
}
+
+ /**
+ * Rueckgabewert ist die Anzahl der Ergebnisse. Bei Fehler negativ und die
+ * Fehlermeldung liegt in errormsg.
+ * Wenn der Parameter stg_kz NULL ist tritt gruppe in Kraft.
+ * @param string $einheit_kurzbz Einheit
+ * @param string grp Gruppe
+ * @param string ver Verband
+ * @param integer sem Semester
+ * @param integer stg_kz Kennzahl des Studiengangs
+ * @return integer Anzahl der gefundenen Einträge; negativ bei Fehler
+ */
+
+ function getStudents($stg_kz,$sem=null,$ver=null,$grp=null,$gruppe=null)
+ {
+ $where = '';
+ if ($gruppe!=null)
+ $where=" gruppe_kurzbz='".$gruppe."'";
+ else
+ {
+ if ($stg_kz>=0)
+ {
+ $where.=" studiengang_kz=$stg_kz";
+ if ($sem!=null)
+ $where.=" AND semester=$sem";
+ if ($ver!=null)
+ $where.=" AND verband='".$ver."'";
+ if ($grp!=null)
+ $where.=" AND gruppe='".$grp."'";
+ }
+ }
+
+
+ $sql_query="SELECT * FROM campus.vw_student WHERE $where ORDER by nachname,vorname";
+ //echo $sql_query;
+ if(!($erg=pg_query($this->conn, $sql_query)))
+ {
+ $this->errormsg=pg_errormessage($this->conn);
+ return false;
+ }
+ $num_rows=pg_numrows($erg);
+ $result=array();
+ for($i=0;$i<$num_rows;$i++)
+ {
+ $row=pg_fetch_object($erg,$i);
+ $l=new student($this->conn);
+ // Personendaten
+ $l->uid=$row->uid;
+ $l->titelpre=$row->titelpre;
+ $l->titelpost=$row->titelpost;
+ $l->vornamen=$row->vornamen;
+ $l->nachname=$row->nachname;
+ $l->gebdatum=$row->gebdatum;
+ $l->gebort=$row->gebort;
+ $l->gebzeit=$row->gebzeit;
+ $l->foto=$row->foto;
+ $l->anmerkungen=$row->anmerkungen;
+ $l->aktiv=$row->aktiv=='t'?true:false;
+ $l->alias=$row->alias;
+ $l->homepage=$row->homepage;
+ $l->updateamum=(isset($row->updateamum)?$row->updateamum:'');
+ $l->updatevon=(isset($row->updatevon)?$row->updatevon:'');
+ // Studentendaten
+ $l->matrikelnr=$row->matrikelnr;
+ $l->gruppe=$row->gruppe;
+ $l->verband=$row->verband;
+ $l->semester=$row->semester;
+ $l->studiengang_kz=$row->studiengang_kz;
+ //$l->stg_bezeichnung=$row->bezeichnung;
+ // student in Array speichern
+ $result[]=$l;
+ }
+ return $result;
+ }
+
}
?>
\ No newline at end of file
diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php
index 1a772e764..b9efb7e94 100644
--- a/rdf/student.rdf.php
+++ b/rdf/student.rdf.php
@@ -1,10 +1,5 @@
';
// DAO
-include('../vilesci/config.inc.php');
-include_once('../include/person.class.php');
-include_once('../include/student.class.php');
+require_once('../vilesci/config.inc.php');
+require_once('../include/person.class.php');
+require_once('../include/benutzer.class.php');
+require_once('../include/student.class.php');
// Datenbank Verbindung
-if (!$conn = @pg_pconnect(CONN_STRING))
+if (!$conn = pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
// test
/*
-$einheit_kurzbz='';
+$gruppe='';
$grp='1';
$ver='A';
$sem=3;
$stg_kz=145;
*/
+
function convdate($date)
{
list($d,$m,$y) = explode('.',$date);
return $y.'-'.$m.'-'.$d;
}
-$einheit_kurzbz=(isset($_GET['einheit'])?$_GET['einheit']:'');
-$grp=(isset($_GET['grp'])?$_GET['grp']:'');
-$ver=(isset($_GET['ver'])?$_GET['ver']:'');
-$sem=(isset($_GET['sem'])?$_GET['sem']:'');
-$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:'');
+
+$gruppe=(isset($_GET['gruppe'])?$_GET['gruppe']:null);
+$grp=(isset($_GET['grp'])?$_GET['grp']:null);
+$ver=(isset($_GET['ver'])?$_GET['ver']:null);
+$sem=(isset($_GET['sem'])?$_GET['sem']:null);
+$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:null);
if(isset($_GET['uid']))
$uid=$_GET['uid'];
// Studenten holen
-$studentenDAO=new student($conn);
+$student=new student($conn);
if (isset($uid))
- $studenten=$studentenDAO->load($uid);
+ $studenten=$student->load($uid);
else
- $studenten=$studentenDAO->getStudents($einheit_kurzbz, $grp, $ver, $sem,$stg_kz);
+ $studenten=$student->getStudents($stg_kz,$sem,$ver,$grp,$gruppe);
-$rdf_url='http://www.technikum-wien.at/tempus/studenten';
+$rdf_url='http://www.technikum-wien.at/student';
?>
@@ -61,7 +59,7 @@ $rdf_url='http://www.technikum-wien.at/tempus/studenten';
>
-
+
- uid ?>
- titel ?>
+ uid; ?>
+ titelpre; ?>
+ titelpost; ?>
vornamen ?>
nachname ?>
matrikelnr ?>
gebdatum ?>
- gebdatum); ?>
- email ?>
+ gebdatum; ?>
+ alias ?>
homepage ?>
aktiv?'True':'False') ?>
- gebort ?>
- gebzeit ?>
- foto ?>
- anmerkungen ?>
- updateamum ?>
- updatevon ?>
- semester ?>
- verband ?>
- gruppe ?>
- studiengang_kz ?>
- stg_bezeichnung ?>
+ gebort; ?>
+ gebzeit; ?>
+ foto; ?>
+ anmerkungen; ?>
+ updateamum; ?>
+ updatevon; ?>
+ semester; ?>
+ verband; ?>
+ gruppe; ?>
+ studiengang_kz; ?>
';
-// DAO
-include('../vilesci/config.inc.php');
-include_once('../include/person.class.php');
-include_once('../include/student.class.php');
-
-// Datenbank Verbindung
-if (!$conn = @pg_pconnect(CONN_STRING))
- $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
-
-// test
-/*
-$einheit_kurzbz='';
-$grp='1';
-$ver='A';
-$sem=3;
-$stg_kz=145;
-*/
-function convdate($date)
-{
- list($d,$m,$y) = explode('.',$date);
- return $y.'-'.$m.'-'.$d;
-}
-$einheit_kurzbz=$_GET['einheit'];
-$grp=$_GET['grp'];
-$ver=$_GET['ver'];
-$sem=$_GET['sem'];
-$stg_kz=$_GET['stg_kz'];
-
-// Studenten holen
-$studentenDAO=new student($conn);
-$studenten=$studentenDAO->getStudents($einheit_kurzbz, $grp, $ver, $sem,$stg_kz);
-
-$rdf_url='http://www.technikum-wien.at/tempus/studenten';
-
-?>
-
-
-
-
-
-
-
-
-
- uid ?>
- titel ?>
- vornamen ?>
- nachname ?>
- matrikelnr ?>
- gebdatum ?>
- gebdatum); ?>
- email ?>
- homepage ?>
- aktiv?'True':'False') ?>
- gebort ?>
- gebzeit ?>
- foto ?>
- anmerkungen ?>
- updateamum ?>
- updatevon ?>
- gruppe ?>
- verband ?>
- semester ?>
- studiengang_kz ?>
- stg_bezeichnung ?>
-
-
-
-
-
-
-
-
\ No newline at end of file