This commit is contained in:
Christian Paminger
2007-01-07 16:19:34 +00:00
parent 2f50e1861a
commit 82fbdbdce8
12 changed files with 485 additions and 171 deletions
+35 -32
View File
@@ -1,35 +1,37 @@
<?php
include('../../config.inc.php');
include('../../../include/functions.inc.php');
require_once('../../../config.inc.php');
require_once('../../../../include/functions.inc.php');
//if (!isset($REMOTE_USER))
// $REMOTE_USER='pam';
$uid=get_uid();
$ansicht=false; //Wenn ein anderer User sich das Profil ansieht (Bei Personensuche)
if(isset($_GET['uid']))
if(isset($_GET['uid']))
{
$uid=stripslashes($_GET['uid']);
$ansicht=true;
}
$stg = '';
if (!$conn = @pg_pconnect(CONN_STRING))
die("Es konnte keine Verbindung zum Server aufgebaut werden.");
if(!($erg=pg_exec($conn, "SELECT * FROM tbl_person WHERE uid='$uid'")))
if(!($erg=pg_exec($conn, "SET search_path TO campus;SELECT * FROM vw_benutzer WHERE uid='$uid'")))
die(pg_last_error($conn));
$num_rows=pg_num_rows($erg);
if ($num_rows==1)
{
$vorname=pg_result($erg,0,"vorname");
$vornamen=pg_result($erg,0,"vornamen");
$nachname=pg_result($erg,0,"nachname");
$gebdatum=pg_result($erg,0,"gebdatum");
$gebort=pg_result($erg,0,"gebort");
$titel=pg_result($erg,0,"titel");
$email=pg_result($erg,0,"email");
$titelpre=pg_result($erg,0,"titelpre");
$titelpost=pg_result($erg,0,"titelpost");
$email=pg_result($erg,0,"uid").'@technikum-wien.at';
$email_alias=pg_result($erg,0,"alias");
$hp=pg_result($erg,0,"homepage");
}
if(!($erg_stud=pg_exec($conn, "SELECT studiengang_kz, semester, verband, gruppe, matrikelnr, kurzbz AS stgkz, tbl_studiengang.bezeichnung AS stgbz FROM tbl_student NATURAL JOIN tbl_studiengang WHERE uid='$uid'")))
if(!($erg_stud=pg_exec($conn, "SELECT studiengang_kz, semester, verband, gruppe, matrikelnr, kurzbz AS stgkz, tbl_studiengang.bezeichnung AS stgbz FROM public.tbl_student NATURAL JOIN public.tbl_studiengang WHERE student_uid='$uid'")))
die(pg_last_error($conn));
$stud_num_rows=pg_numrows($erg_stud);
if ($stud_num_rows==1)
@@ -42,7 +44,7 @@
$gruppe=pg_result($erg_stud,0,"gruppe");
$matrikelnr=pg_result($erg_stud,0,"matrikelnr");
}
if(!($erg_lekt=pg_exec($conn, "SELECT * FROM tbl_mitarbeiter WHERE uid='$uid'")))
if(!($erg_lekt=pg_exec($conn, "SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='$uid'")))
die(pg_last_error($conn));
$lekt_num_rows=pg_num_rows($erg_lekt);
if ($lekt_num_rows==1)
@@ -53,7 +55,7 @@
}
// Mail-Groups
if(!($erg_mg=pg_exec($conn, "SELECT mailgrp_kurzbz, beschreibung FROM tbl_mailgrp NATURAL JOIN tbl_personmailgrp WHERE tbl_personmailgrp.uid='$uid' ORDER BY mailgrp_kurzbz")))
if(!($erg_mg=pg_exec($conn, "SELECT gruppe_kurzbz, beschreibung FROM vw_persongruppe WHERE mailgrp AND uid='$uid' ORDER BY gruppe_kurzbz")))
die(pg_last_error($conn));
$nr_mg=pg_numrows($erg_mg);
?>
@@ -62,7 +64,7 @@
<head>
<title>Profil</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../../skin/cis.css" type="text/css">
<link rel="stylesheet" href="../../../../skin/cis.css" type="text/css">
</head>
<body>
@@ -85,9 +87,10 @@ Results: <?php echo $num_rows; ?><br>
<tr>
<td colspan="2">
<P>
<FONT class="beschriftung">Titel: </FONT> <?php echo $titel; ?> <br>
<FONT class="beschriftung">Vornamen: </FONT> <?php echo $vornamen; ?> <br>
<FONT class="beschriftung">Titel: </FONT> <?php echo $titelpre; ?> <br>
<FONT class="beschriftung">Vornamen: </FONT> <?php echo $vorname.' '.$vornamen; ?> <br>
<FONT class="beschriftung">Nachname: </FONT> <?php echo $nachname; ?> <br>
<FONT class="beschriftung">Postnomen: </FONT> <?php echo $titelpost; ?> <br>
<?php
if(!$ansicht)
{
@@ -103,27 +106,27 @@ Results: <?php echo $num_rows; ?><br>
<P>
<b>eMail</b><br>
<FONT class="beschriftung">Technikum:</FONT><a href='mailto:<?php echo $uid; ?>@technikum-wien.at'> <?php echo $uid; ?>@technikum-wien.at</a><br>
<?php
if($email_alias!='')
{
?>
<FONT class="beschriftung">Alias:</FONT> <a href='mailto:<?php echo $email_alias; ?>@technikum-wien.at'><?php echo $email_alias; ?>@technikum-wien.at</a>
<?php
}
}
?>
<!--<FONT class="beschriftung"><small>(fr&uuml;hestens ab Sommer in Verwendung)</small></FONT><BR>-->
<?php
<?php
if($email!='')
echo "<FONT class='beschriftung'>Extern:</FONT>$email";
?>
?>
</P>
<?php
<?php
if($hp!='')
echo "<P><b>Homepage</b><br><a href='$hp' target='_blank'>$hp</a></p>";
?>
<br>
</td>
<td colspan="2">
@@ -131,20 +134,20 @@ Results: <?php echo $num_rows; ?><br>
echo '<P>';
if ($stud_num_rows==1)
{
?>
?>
<b>Student</b><br><br>
<FONT class="beschriftung">Studiengang: </FONT><?php echo $stgbez; ?><br>
<FONT class="beschriftung">Semester: </FONT><?php echo $semester; ?><br>
<FONT class="beschriftung">Verband: </FONT><?php echo $verband; ?><br>
<FONT class="beschriftung">Gruppe: </FONT><?php echo $gruppe; ?><br>
<FONT class="beschriftung">Matrikelnummer: </FONT><?php echo $matrikelnr; ?><br />
<?php
<?php
if(!$ansicht)
{
?>
<br />
<A href='../../campus/notenliste.php'>Leistungsbeurteilung</a><br />
<?php
}
}
@@ -157,13 +160,13 @@ Results: <?php echo $num_rows; ?><br>
<?php
if($tel!='')
echo "<FONT class='beschriftung'>Telefon TW: </FONT>+43 1 333 40 77- $tel<BR><BR>";
if(!$ansicht)
{?>
<A href="zeitwunsch.php?uid=<?php echo $uid; ?>">Zeitw&uuml;nsche</A><BR>
<A href="lva_liste.php?uid=<?php echo $uid; ?>">Lehrveranstaltungen</A>
<?php
}
}
}
if(!$ansicht)
{
@@ -191,7 +194,7 @@ Results: <?php echo $num_rows; ?><br>
for($i=0;$i<$nr_mg;$i++)
{
$row=pg_fetch_object($erg_mg,$i);
echo '<TR><TD><A href="mailto:'.$row->mailgrp_kurzbz.'@technikum-wien.at">'.$row->mailgrp_kurzbz.'&nbsp;</TD>';
echo '<TR><TD><A href="mailto:'.$row->gruppe_kurzbz.'@technikum-wien.at">'.$row->gruppe_kurzbz.'&nbsp;</TD>';
echo "<TD>&nbsp;$row->beschreibung</TD><TD></TD></TR>";
}
if (isset($matrikelnr))
@@ -205,25 +208,25 @@ Results: <?php echo $num_rows; ?><br>
echo '<TR><TD><A href="mailto:'.strtolower($stgkz).$semester.strtolower($verband).$gruppe.'@technikum-wien.at">'.strtolower($stgkz).$semester.strtolower($verband).$gruppe.'&nbsp;</TD>';
echo "<TD>&nbsp;Alle Studenten von $stgkz $semester$verband$gruppe</TD><TD></TD></TR>";
}
$mail = 'vilesci@technikum-wien.at';
if($stg=='')
{
$stg = 0;
}
//Wenn eine Assistentin fuer diesen Studiengang eingetragen ist,
//Wenn eine Assistentin fuer diesen Studiengang eingetragen ist,
//dann werden die aenderungswuesche an diese Adresse gesendet
$qry = "SELECT email FROM tbl_studiengang where studiengang_kz='$stg'";
$qry = "SELECT email FROM public.tbl_studiengang where studiengang_kz='$stg'";
if($row=pg_fetch_object(pg_query($conn,$qry)))
{
if($row->email!='')
$mail = $row->email;
else
else
$mail = 'vilesci@technikum-wien.at';
}
?>
</table>
<BR><HR>
+1 -1
View File
@@ -16,7 +16,7 @@ if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Fehler: Es konnte keine Verbindung zum Server aufgebaut werden!';
//$error_msg.=loadVariables($conn,$REMOTE_USER);
// Stundentafel abfragen
$sql_query="SET datestyle TO ISO;SELECT * FROM tbl_stunde ORDER BY stunde";
$sql_query="SET datestyle TO ISO; SELECT * FROM lehre.tbl_stunde ORDER BY stunde";
if(!$result_stunde=pg_exec($conn, $sql_query))
die(pg_last_error($this->conn));
$num_rows_stunde=pg_numrows($result_stunde);
+5 -5
View File
@@ -13,13 +13,13 @@ if (!isset($REMOTE_USER))
$uid=$REMOTE_USER;
if (!$conn = @pg_pconnect(CONN_STRING))
if (!$conn = pg_pconnect(CONN_STRING))
$error_msg='Fehler: Es konnte keine Verbindung zum Server aufgebaut werden!';
//$error_msg.=loadVariables($conn,$REMOTE_USER);
// Stundentafel abfragen
$sql_query="SET datestyle TO ISO;SELECT * FROM tbl_stunde ORDER BY stunde";
if(!$result_stunde=pg_exec($conn, $sql_query))
die(pg_last_error($this->conn));
$sql_query="SET datestyle TO ISO; SELECT * FROM lehre.tbl_stunde ORDER BY stunde;";
if(!$result_stunde=pg_query($conn, $sql_query))
die(pg_last_error($conn));
$num_rows_stunde=pg_numrows($result_stunde);
?>
@@ -54,7 +54,7 @@ $num_rows_stunde=pg_numrows($result_stunde);
tooltiptext="1 Woche zur??ck"
image="../skin/images/left.png"
oncommand="onJumpDate(-1);"
/>
/>
<toolbarbutton id="toolbarbuttonJumpWeekNow"
tooltiptext="zur aktuellen KW"
label="KW"
+52 -35
View File
@@ -8,7 +8,7 @@ include('../include/functions.inc.php');
include('../include/berechtigung.class.php');
include('../include/lehrveranstaltung.class.php');
include('../include/zeitwunsch.class.php');
include('../include/stundenplan.class.php');
include('../include/wochenplan.class.php');
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
//echo $_SERVER[REQUEST_URI];
@@ -35,40 +35,55 @@ $lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table;
// Variablen uebernehmen
if (isset($_GET[aktion]))
$aktion=$_GET[aktion];
if (isset($_GET[semesterplan]))
$semesterplan=$_GET[semesterplan];
if (isset($_GET['aktion']))
$aktion=$_GET['aktion'];
else
$aktion=null;
if (isset($_GET['semesterplan']))
$semesterplan=$_GET['semesterplan'];
else
$semesterplan=false;
if (isset($_GET[new_stunde]))
$new_stunde=$_GET[new_stunde];
if (isset($_GET[new_datum]))
$new_datum=$_GET[new_datum];
if (isset($_GET[old_ort]))
$old_ort=$_GET[old_ort];
if (isset($_GET[new_ort]))
$new_ort=$_GET[new_ort];
if (isset($_GET[ort]))
$ort=$_GET[ort];
if (isset($_GET[datum]))
$datum=$_GET[datum];
if (isset($_GET[type]))
$type=$_GET[type];
if (isset($_GET[stg_kz]))
$stg_kz=$_GET[stg_kz];
if (isset($_GET[sem]))
$sem=$_GET[sem];
if (isset($_GET[ver]))
$ver=$_GET[ver];
if (isset($_GET[grp]))
$grp=$_GET[grp];
if (isset($_GET[pers_uid]))
$pers_uid=$_GET[pers_uid];
if (isset($_GET[einheit]))
$einheit_kurzbz=$_GET[einheit];
if (isset($_GET[semester_aktuell]))
$semester_aktuell=$_GET[semester_aktuell];
if (isset($_GET['new_stunde']))
$new_stunde=$_GET['new_stunde'];
if (isset($_GET['new_datum']))
$new_datum=$_GET['new_datum'];
if (isset($_GET['old_ort']))
$old_ort=$_GET['old_ort'];
if (isset($_GET['new_ort']))
$new_ort=$_GET['new_ort'];
if (isset($_GET['ort']))
$ort=$_GET['ort'];
else
$ort=null;
if (isset($_GET['datum']))
$datum=$_GET['datum'];
if (isset($_GET['type']))
$type=$_GET['type'];
if (isset($_GET['stg_kz']))
$stg_kz=$_GET['stg_kz'];
else
$stg_kz=null;
if (isset($_GET['sem']))
$sem=$_GET['sem'];
else
$sem=null;
if (isset($_GET['ver']))
$ver=$_GET['ver'];
else
$ver=null;
if (isset($_GET['grp']))
$grp=$_GET['grp'];
else
$grp=null;
if (isset($_GET['pers_uid']))
$pers_uid=$_GET['pers_uid'];
if (isset($_GET['gruppe']))
$einheit_kurzbz=$_GET['gruppe'];
else
$gruppe=null;
if (isset($_GET['semester_aktuell']))
$semester_aktuell=$_GET['semester_aktuell'];
if (!isset($semester_aktuell) && $semesterplan)
$error_msg.='Studien-Semester ist nicht gesetzt!';
@@ -99,6 +114,7 @@ elseif ($uid=check_lektor($REMOTE_USER, $conn))
$user='lektor';
else
die("Cannot set usertype!");*/
$user=NULL;
// User bestimmen
if (!isset($type))
@@ -381,7 +397,7 @@ else
$error_msg.=@db_query($conn,'ROLLBACK;');
// Stundenplan erstellen
$stdplan=new stundenplan($type,$conn);
$stdplan=new wochenplan($type,$conn);
if (!isset($datum))
$datum=mktime();
if (!isset($semesterplan) || !$semesterplan)
@@ -397,6 +413,7 @@ else
else
$error_msg.='Studiensemester '.$semester_aktuell.' konnte nicht gefunden werden!';
}
// Benutzergruppe
$stdplan->user=$user;
// aktueller Benutzer
@@ -416,7 +433,7 @@ if ($type=='lektor' || $aktion=='lva_single_search' || $aktion=='lva_multi_searc
}
// Zusaetzliche Daten laden
if (! $stdplan->load_data($type,$pers_uid,$ort,$stg_kz,$sem,$ver,$grp,$einheit_kurzbz) && $error_msg!='')
if (! $stdplan->load_data($type,$pers_uid,$ort,$stg_kz,$sem,$ver,$grp,$gruppe) && $error_msg!='')
$error_msg.=$stdplan->errormsg;
//echo 'load_data'.$error_msg;
// Stundenplan einer Woche laden
+201 -16
View File
@@ -15,48 +15,98 @@
* 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 <christian.paminger@technikum-wien.at>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class berechtigung
{
/**
* interne userberechtigung_id (Zaehler aus DB)
* @var integer
*/
var $userberechtigung_id;
/**
* @var integer
*/
var $studiengang_kz;
/**
* @var integer
*/
var $fachbereich_id;
/**
* @var string
*/
var $berechtigung_kurzbz;
/**
* @var string
*/
var $uid;
/**
* @var string
*/
var $studiensemester_kurzbz;
/**
* @var integer
*/
var $start;
/**
* @var integer
*/
var $ende;
/**
* @var integer
*/
var $starttimestamp;
/**
* @var integer
*/
var $endetimestamp;
/**
* @var string
*/
var $art;
/**
* @var array
*/
var $berechtigungen=array();
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $berechtigungen = array(); // berechtigung Objekt
//Tabellenspalten
var $berechtigung_kurzbz; // varchar(16)
var $beschreibung; // varchar(256)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $berechtigung_kurzbz
// * $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 berechtigung($conn, $berechtigung_kurzbz=null, $unicode=false)
{
$this->conn = $conn;
$this->new=true;
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;
}
if($berechtigung_kurzbz!=null)
$this->load($berechtigung_kurzbz);
}
// *********************************************************
// * Laedt eine Berechtigung
// * @param berechtigung_kurzbz
@@ -65,9 +115,9 @@ class berechtigung
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
@@ -83,13 +133,13 @@ class berechtigung
$this->errormsg = 'Beschreibung darf nicht laenger als 256 Zeichen sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
@@ -111,7 +161,7 @@ class berechtigung
return false;
if($this->new)
{
{
$qry = 'INSERT INTO tbl_berechtigung (berechtigung_kurzbz, beschreibung)
VALUES('.$this->addslashes($this->berechtigung_kurzbz).','.
$this->addslashes($this->beschreibung).');';
@@ -134,5 +184,140 @@ class berechtigung
return false;
}
}
/**
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
* Fehlermeldung liegt in errormsg.
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
* @param string $uid UserID
* @return variabel Array mit LVA; <b>false</b> bei Fehler
*/
function getBerechtigungen($uid)
{
// Berechtigungen holen
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
//echo $sql_query;
if(!$erg=@pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
//$num_rows=pg_numrows($erg);
while($row=pg_fetch_object($erg))
{
$b=new berechtigung($this->conn);
$b->userberechtigung_id=$row->userberechtigung_id;
$b->studiengang_kz=$row->studiengang_kz;
$b->fachbereich_id=$row->fachbereich_id;
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
$b->uid=$row->uid;
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$b->start=$row->start;
if ($row->start!=null)
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
else
$b->starttimestamp=null;
$b->ende=$row->ende;
if ($row->ende!=null)
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
else
$b->endetimestamp=null;
$b->art=$row->art;
$this->berechtigungen[]=$b;
}
return true;
}
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null, $fachbereich_id=null)
{
$timestamp=time();
foreach ($this->berechtigungen as $b)
{
//Fachbereichsberechtigung
if($fachbereich_id!=null)
{
//Wenn Fachbereichs oder Adminberechtigung
if(($berechtigung == $b->berechtigung_kurzbz || $b->berechtigung_kurzbz == 'admin') && ($b->fachbereich_id==$fachbereich_id || $b->fachbereich_id=='0'))
{
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
}
}
//Wenn Berechtigung fuer Bestimmte Klasse vorhanden ist
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null && $fachbereich_id==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
//Wenn Berechtigung fuer Bestimmten Studiengang vorhanden ist
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null && $b->fachbereich_id==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
//Wenn Berechtigung mit Studiengang und der richtigen BerechtigungsArt (suid) vorhanden ist
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
&& strstr($b->art,$art))
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
}
return false;
}
/**
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
* Optional wird auf Berechtigung eingeschraenkt.
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
*/
function getStgKz($berechtigung=null)
{
$studiengang_kz=array();
$timestamp=time();
foreach ($this->berechtigungen as $b)
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
if($b->fachbereich_id==null)
$studiengang_kz[]=$b->studiengang_kz;
$studiengang_kz=array_unique($studiengang_kz);
sort($studiengang_kz);
return $studiengang_kz;
}
function getFbKz($berechtigung=null)
{
$fachbereichs_kz=array();
$timestamp=time();
foreach($this->berechtigungen as $b)
{
if(($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
&& (($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp) || ($b->starttimestamp==null && $b->endetimestamp==null)))
{
if($b->fachbereich_id!='' && !in_array($b->fachbereich_id,$fachbereichs_kz))
$fachbereichs_kz[] = $b->fachbereich_id;
}
}
sort($fachbereichs_kz);
return $fachbereichs_kz;
}
}
?>
+86 -22
View File
@@ -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 <christian.paminger@technikum-wien.at>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class mitarbeiter extends benutzer
{
//Tabellenspalten
var $ausbildungcode; //integer
var $personalnummer; //serial
@@ -36,35 +36,35 @@ class mitarbeiter extends benutzer
// * Konstruktor - Uebergibt die Connection und laedt optional einen Mitarbeiter
// * @param $conn Datenbank-Connection
// * $uid Mitarbeiter 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 mitarbeiter($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;
}
//Mitarbeiter laden
//if($uid!=null)
// $this->load($uid);
}
// ************************************************
// * ueberprueft die Variablen auf Gueltigkeit
// * @return true wenn gueltig, false im Fehlerfall
// ************************************************
function validate()
{
{
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
@@ -79,12 +79,12 @@ class mitarbeiter extends benutzer
{
$this->errormsg = 'Ausbildungscode ist ungueltig';
return false;
}
}
if($this->personalnummer!='' && !is_numeric($this->personalnummer))
{
$this->errormsg = 'Personalnummer muss eine gueltige Zahl sein';
return false;
}
}
if(strlen($this->kurzbz)>8)
{
$this->errormsg = 'kurzbz darf nicht laenger als 8 Zeichen sein';
@@ -115,21 +115,21 @@ class mitarbeiter extends benutzer
$this->errormsg = 'updatevon darf nicht laenger als 32 Zeichen sein';
return false;
}
return true;
}
// *************************************************
// * Speichert die Mitarbeiterdaten in die Datenbank
// * @return true wenn ok, false im Fehlerfall
// *************************************************
function save()
{
//Variablen checken
//Variablen checken
if(!$this->validate())
return false;
pg_query($this->conn,'BEGIN;');
//Basisdaten speichern
if(!benutzer::save())
@@ -137,10 +137,10 @@ class mitarbeiter extends benutzer
pg_query($this->conn,'ROLLBACK;');
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
//Neuen Datensatz anlegen
$qry = "INSERT INTO tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor, ort_kurzbz,
fixangestellt, telefonklappe, updateamum, updatevon)
VALUES('".addslashes($this->uid)."',".
@@ -154,7 +154,7 @@ class mitarbeiter extends benutzer
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).');';
}
else
else
{
//Bestehenden Datensatz updaten
$qry = 'UPDATE tbl_mitarbeiter SET'.
@@ -169,19 +169,83 @@ class mitarbeiter extends benutzer
' updatevon='.$this->addslashes($this->updatevon).
" WHERE mitarbeiter_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 Mitarbeiter-Datensatzes'.$qry;
return false;
}
}
/**
* gibt array mit allen Mitarbeitern zurueck
* @return array mit Mitarbeitern
*/
function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null,$fachbereich_id=null)
{
$sql_query='SELECT DISTINCT vw_mitarbeiter.* FROM campus.vw_mitarbeiter
LEFT OUTER JOIN public.tbl_benutzerfunktion USING (uid)
WHERE';
if (!$lektor)
$sql_query.=' NOT';
$sql_query.=' lektor';
if ($fixangestellt!=null)
{
$sql_query.=' AND';
if (!$fixangestellt)
$sql_query.=' NOT';
$sql_query.=' fixangestellt';
}
if ($stg_kz!=null)
$sql_query.=' AND studiengang_kz='.$stg_kz;
if ($fachbereich_id!=null)
$sql_query.=' AND fachbereich_id='.$fachbereich_id;
$sql_query.=' ORDER BY nachname, vornamen, kurzbz';
//echo $sql_query;
if(!($erg=pg_query($this->conn, $sql_query)))
{
$this->errormsg=pg_errormessage($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 mitarbeiter($this->conn);
// Personendaten
$l->uid=$row->uid;
$l->titelpre=$row->titelpre;
$l->titelpost=$row->titelpost;
$l->vorname=$row->vorname;
$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->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
$l->updatevon=$row->updatevon;
// Lektorendaten
$l->personalnummer=$row->personalnummer;
$l->kurzbz=$row->kurzbz;
$l->lektor=$row->lektor=='t'?true:false;
$l->fixangestellt=$row->fixangestellt=='t'?true:false;
$l->telefonklappe=$row->telefonklappe;
//$l->ort_kurzbz=$row->ort_kurzbz;
// Lektor in Array speichern
$result[]=$l;
}
return $result;
}
}
?>
+2 -2
View File
@@ -99,7 +99,7 @@ class wochenplan
* @return gruppe_kurzbz
*
*/
function load_data($type, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $gruppe_kurzbz=NULL)
function load_data($type, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $gruppe=NULL)
{
///////////////////////////////////////////////////////////////////////
// Parameter Checken
@@ -164,7 +164,7 @@ class wochenplan
if ($this->type=='student')
$sql_query="SELECT uid, titelpre, nachname, vornamen, studiengang_kz, semester, verband, gruppe FROM vw_student WHERE uid='$this->pers_uid'";
else
$sql_query="SELECT uid, titelpre, nachname, vornamen FROM vw_mitarbeiter WHERE uid='$this->pers_uid'";
$sql_query="SELECT uid, titelpre, nachname, vornamen FROM campus.vw_mitarbeiter WHERE uid='$this->pers_uid'";
//echo $sql_query;
if (!($result=pg_exec($this->conn, $sql_query)))
{
+68 -15
View File
@@ -15,7 +15,7 @@
* 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 <christian.paminger@technikum-wien.at>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
@@ -26,52 +26,52 @@ class zeitwunsch
var $errormsg; // string
var $new; // boolean
var $zeitwuensche = array(); // zeitwunsch Objekt
//Tabellenspalten
var $stunde; // smalint
var $mitarbeiter_uid; // varchar(16)
var $tag; // smalint
var $gewicht; // smalint
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $uid Uid des Mitarbeiters
// * $tag Tag des Zeitwunsches
// * $stunde Stunde des Zeitwunsches
// * $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 zeitwunsch($conn, $mitarbeiter_uid=null, $tag=null, $stunde=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;
}
if($mitarbeiter_uid != null && $tag!=null && $stunde!=null)
$this->load($mitarbeiter_uid, $tag, $stunde);
}
// *********************************************************
// * Laedt einen Zeitwunsch
// * @param
// * @param
// *********************************************************
function load($mitarbeiter_uid, $tag, $stunde)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
@@ -101,14 +101,14 @@ class zeitwunsch
{
$this->errormsg = 'Tag muss eine gueltige Zahl sein';
return false;
}
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
@@ -139,7 +139,7 @@ class zeitwunsch
{
$qry = 'UPDATE campus.tbl_zeitwunsch SET'.
' gewicht='.$this->gewicht.
" WHERE mitarbeiter_uid='".addslashes($this->mitarbeiter_uid)."' AND
" WHERE mitarbeiter_uid='".addslashes($this->mitarbeiter_uid)."' AND
tag=".$this->tag.' AND stunde='.$this->stunde;
}
@@ -154,5 +154,58 @@ class zeitwunsch
return false;
}
}
/**
* Zeitwunsch einer Person laden
* @return boolean Ergebnis steht in Array $zeitwunsch wenn true
*/
function loadPerson($uid)
{
// Zeitwuensche abfragen
if(!$result=@pg_query($this->conn, "SELECT * FROM lehre.tbl_zeitwunsch WHERE uid='$uid'"))
{
$this->errormsg=pg_last_error($this->conn);
return false;
}
else
{
while ($row=@pg_fetch_object($result))
$this->zeitwunsch[$row->tag][$row->stunde]=$row->gewicht;
return true;
}
}
/**
* Zeitwunsch der Personen in Lehrveranstaltungen laden
* @return array mit Fachbereichen oder false=fehler
*/
function loadLVA($lva_id)
{
// SUB-Select fuer LVAs
$sql_query_lva='SELECT DISTINCT lektor FROM tbl_lehrveranstaltung WHERE ';
for ($i=0;$i<count($lva_id);$i++)
$sql_query_lvaid.=' OR lehrveranstaltung_id='.$lva_id[$i];
$sql_query_lvaid=substr($sql_query_lvaid,3);
$sql_query_lva.=$sql_query_lvaid;
// Schlechteste Zeitwuensche holen
$sql_query='SELECT tag,stunde,min(gewicht) AS gewicht
FROM tbl_zeitwunsch WHERE uid IN ('.$sql_query_lva.') GROUP BY tag,stunde';
// Zeitwuensche abfragen
if(!$result=@pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_last_error($this->conn);
return false;
}
else
{
while ($row=@pg_fetch_object($result))
$this->zeitwunsch[$row->tag][$row->stunde]=$row->gewicht;
return true;
}
}
}
?>
+4 -5
View File
@@ -3,17 +3,16 @@
<head>
<title>CIS - FH Technikum Wien</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style/global.css" rel="stylesheet" type="text/css">
<link href="skin/cis.css" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>
<frameset rows="77,*,1" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="cis/campus/topbar.php" name="topbar" scrolling="NO" noresize>
<frame src="cis/topbar.html" name="topbar" scrolling="NO" noresize>
<frameset rows="*" cols="200,*" framespacing="0" frameborder="NO" border="0">
<frame src="cis/campus/menu.php" name="menu" scrolling="AUTO" noresize>
<frame src="cis/campus/news/news.php" name="content">
<frame src="cis/menu.html" name="menu" scrolling="AUTO" noresize>
<frame src="cis/public/news.php" name="content">
</frameset>
<frame src="" name="otrs_frame">
<noframes>
<body>
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
-22
View File
@@ -1,22 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>CIS - FH Technikum Wien</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="skin/cis.css" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>
<frameset rows="77,*,1" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="cis2/topbar.html" name="topbar" scrolling="NO" noresize>
<frameset rows="*" cols="200,*" framespacing="0" frameborder="NO" border="0">
<frame src="cis2/menu.html" name="menu" scrolling="AUTO" noresize>
<frame src="cis2/public/news.php" name="content">
</frameset>
<noframes>
<body>
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
</body>
</noframes>
</frameset>
</html>
+18 -4
View File
@@ -17,6 +17,7 @@ echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
// DAO
include('../vilesci/config.inc.php');
include_once('../include/person.class.php');
include_once('../include/benutzer.class.php');
include_once('../include/mitarbeiter.class.php');
if (!$conn = @pg_pconnect(CONN_STRING))
@@ -36,9 +37,21 @@ if (isset($_GET['lektor']))
$lektor=$_GET['lektor'];
else
$lektor=true;
$fixangestellt=$_GET['fixangestellt'];
$stg_kz=$_GET['stg_kz'];
$fachbereich_id=$_GET['fachbereich_id'];
if (isset($_GET['fixangestellt']))
$fixangestellt=$_GET['fixangestellt'];
else
$fixangestellt=null;
if (isset($_GET['stg_kz']))
$stg_kz=$_GET['stg_kz'];
else
$stg_kz=null;
if (isset($_GET['fachbereich_id']))
$fachbereich_id=$_GET['fachbereich_id'];
else
$fachbereich_id=null;
// Mitarbeiter holen
$mitarbeiter=new mitarbeiter($conn);
@@ -62,7 +75,8 @@ foreach ($ma as $mitarbeiter)
<RDF:li>
<RDF:Description about="<?php echo $rdf_url.$mitarbeiter->uid; ?>" >
<MITARBEITER:uid><?php echo $mitarbeiter->uid; ?></MITARBEITER:uid>
<MITARBEITER:titel><?php echo $mitarbeiter->titel; ?></MITARBEITER:titel>
<MITARBEITER:titelpre><?php echo $mitarbeiter->titelpre; ?></MITARBEITER:titelpre>
<MITARBEITER:titelpost><?php echo $mitarbeiter->titelpost; ?></MITARBEITER:titelpost>
<MITARBEITER:vornamen><?php echo $mitarbeiter->vornamen; ?></MITARBEITER:vornamen>
<MITARBEITER:nachname><?php echo $mitarbeiter->nachname; ?></MITARBEITER:nachname>
<MITARBEITER:kurzbz><?php echo $mitarbeiter->kurzbz; ?></MITARBEITER:kurzbz>
+13 -12
View File
@@ -18,12 +18,13 @@ $berechtigung=new berechtigung($conn);
$berechtigung->getBerechtigungen($uid);
$berechtigt_studiengang=$berechtigung->getStgKz();
$stg_kz_query='';
if ($berechtigt_studiengang[0]!=0 && count($berechtigt_studiengang)>0)
{
foreach ($berechtigt_studiengang as $b_stg)
$stg_kz_query.=' OR studiengang_kz='.$b_stg;
$stg_kz_query='AND ('.substr($stg_kz_query,3).')';
}
if (count($berechtigt_studiengang)>0)
if ($berechtigt_studiengang[0]!=0)
{
foreach ($berechtigt_studiengang as $b_stg)
$stg_kz_query.=' OR studiengang_kz='.$b_stg;
$stg_kz_query='AND ('.substr($stg_kz_query,3).')';
}
$sql_query="SELECT studiengang_kz, bezeichnung, kurzbz FROM tbl_studiengang WHERE studiengang_kz>=0 $stg_kz_query ORDER BY bezeichnung";
//echo $sql_query;
@@ -98,7 +99,7 @@ for ($i=0;$i<$num_rows_stg;$i++)
<?php
}
}
$sql_query="SELECT bezeichnung, einheit_kurzbz FROM tbl_einheit WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY bezeichnung";
$sql_query="SELECT bezeichnung, gruppe_kurzbz FROM tbl_gruppe WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY bezeichnung";
//echo $sql_query;
if(!($result_einh=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
@@ -107,12 +108,12 @@ for ($i=0;$i<$num_rows_stg;$i++)
{
$row_einh=pg_fetch_object($result_einh, $m);
?>
<RDF:Description RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_einh->einheit_kurzbz; ?>">
<VERBAND:name><?php echo $row_einh->einheit_kurzbz.'-'.$row_einh->bezeichnung; ?></VERBAND:name>
<RDF:Description RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_einh->gruppe_kurzbz; ?>">
<VERBAND:name><?php echo $row_einh->gruppe_kurzbz.'-'.$row_einh->bezeichnung; ?></VERBAND:name>
<VERBAND:stg><?php echo $row_stg->kurzbz; ?></VERBAND:stg>
<VERBAND:stg_kz><?php echo $row_stg->studiengang_kz; ?></VERBAND:stg_kz>
<VERBAND:sem><?php echo $row_sem->semester; ?></VERBAND:sem>
<VERBAND:einheit><?php echo $row_einh->einheit_kurzbz; ?></VERBAND:einheit>
<VERBAND:einheit><?php echo $row_einh->gruppe_kurzbz; ?></VERBAND:einheit>
</RDF:Description>
<?php
}
@@ -171,7 +172,7 @@ for ($i=0;$i<$num_rows_stg;$i++)
<?php
}
$sql_query="SELECT bezeichnung, einheit_kurzbz FROM tbl_einheit WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY bezeichnung";
$sql_query="SELECT bezeichnung, gruppe_kurzbz FROM tbl_gruppe WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY bezeichnung";
//echo $sql_query;
if(!($result_einh=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
@@ -180,7 +181,7 @@ for ($i=0;$i<$num_rows_stg;$i++)
{
$row_einh=pg_fetch_object($result_einh, $m);
?>
<RDF:li RDF:resource="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_einh->einheit_kurzbz; ?>" />
<RDF:li RDF:resource="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_einh->gruppe_kurzbz; ?>" />
<?php
}
?>