Beginn der Anpassungen an neue Datenbankklasse und neues Config

This commit is contained in:
Andreas Österreicher
2009-05-29 12:35:32 +00:00
parent 7e682b6c7e
commit ece9542527
15 changed files with 358 additions and 441 deletions
+22 -23
View File
@@ -21,40 +21,36 @@
*/
header("Content-type: application/vnd.mozilla.xul+xml");
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
require_once('../vilesci/config.inc.php');
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/fas/benutzer.class.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/variable.class.php');
// Testumgebung
$user=get_uid();
$error_msg='';
//Variablen laden
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
$error_msg.=loadVariables($conn,$user);
//$error_msg.=loadVariables($user);
$variable = new variable();
$variable->loadVariables($user);
$benutzer = new benutzer($conn);
if(!$benutzer->loadVariables($user))
$error_msg = $benutzer->errormsg;
//$benutzer = new benutzer($conn);
//if(!$benutzer->loadVariables($user))
// $error_msg = $benutzer->errormsg;
$rechte = new benutzerberechtigung($conn);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
/*echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';*/
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css" ?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type="text/css"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/fasoverlay.xul.php"?>';
echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
?>
<!DOCTYPE window [
<?php require("../locale/de-AT/fas.dtd"); ?>
]>
<!-- - <?php echo $semester_aktuell; ?> -->
<window
id="fas"
title="&window.title; - Version &window.version;"
@@ -200,16 +196,17 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
label = "Studiensemester">
<menupopup id="menu-properties-popup">
<?php
$stsem_arr = $benutzer->getpossibilities('semester_aktuell');
foreach ($stsem_arr as $stsem)
$stsemobj = new studiensemester();
$stsemobj->getAll();
foreach ($stsemobj->result as $stsem)
{
echo "
<menuitem
id = 'menu-properies-studiensemester-name'
label = '$stsem'
label = '$stsem->studiensemester_kurzbz'
type = 'radio'
command = 'menu-properties-studiensemester:command'
checked = ".($benutzer->variable->semester_aktuell==$stsem?"'true' ":"'false'")." />";
checked = ".($variable->variable->semester_aktuell==$stsem->studiensemester_kurzbz?"'true' ":"'false'")." />";
}
?>
@@ -223,7 +220,7 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
command ="menu-prefs-kontofilterstg:command"
accesskey ="&menu-prefs-kontofilterstg.accesskey;"
checkbox ="true"
checked ="<?php echo $kontofilterstg;?>"
checked ="<?php echo $variable->variable->kontofilterstg;?>"
/>
</menupopup>
</menu>
@@ -465,9 +462,11 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
<?php
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende<now() ORDER BY ende DESC LIMIT 5";
if($result = pg_query($conn, $qry))
$db = new basis_db();
if($db->db_query($qry))
{
while($row = pg_fetch_object($result))
while($row = $db->db_fetch_object())
{
$stsem_kurzbz = $row->studiensemester_kurzbz;
@@ -724,14 +723,14 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
image="../skin/images/left.png"
oncommand="studiensemesterChange('', -1)"
/>
<toolbarbutton id="statusbarpanel-semester" label="<?php echo $semester_aktuell; ?>" oncommand="getStudiensemesterVariable()"/>
<toolbarbutton id="statusbarpanel-semester" label="<?php echo $variable->variable->semester_aktuell; ?>" oncommand="getStudiensemesterVariable()"/>
<toolbarbutton id="statusbarpanel-studiensemester-right"
tooltiptext="1 Studiensemester vor"
image="../skin/images/right.png"
oncommand="studiensemesterChange('', 1)"
/>
</statusbarpanel>
<statusbarpanel id="statusbarpanel-db_table" label="<?php echo substr(CONN_STRING,strpos(CONN_STRING,'dbname=')+7,strpos(CONN_STRING,'user=')-strpos(CONN_STRING,'dbname=')-7); ?>"/>
<statusbarpanel id="statusbarpanel-db_table" label="<?php echo DB_NAME; ?>"/>
<statusbarpanel id="statusbarpanel-text" label="<?php echo htmlspecialchars($error_msg); ?>" flex="4" crop="right" />
<statusbarpanel id="progress-panel" class="statusbarpanel-progress">
<progressmeter id="statusbar-progressmeter" class="progressmeter-statusbar" mode="determined" value="0%"/>
+9 -8
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -16,16 +16,17 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
*/
require_once('../vilesci/config.inc.php');
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/variable.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Connecten zur DB');
$variable = new variable();
$variable->loadVariables(get_uid());
loadVariables($conn, get_uid());
?>
var currentAuswahl=new auswahlValues();
@@ -206,7 +207,7 @@ function LektorFunktionMail()
if(tree.view.getCellText(v,col).length>1)
{
if(mailempfaenger!='')
mailempfaenger=mailempfaenger+'<?php echo $emailadressentrennzeichen; ?>'+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
mailempfaenger=mailempfaenger+'<?php echo $variable->variable->emailadressentrennzeichen; ?>'+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
else
mailempfaenger='mailto:'+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
}
+3 -14
View File
@@ -20,27 +20,20 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
header("Content-type: application/vnd.mozilla.xul+xml");
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
require_once('../vilesci/config.inc.php');
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Herstellen der DB Verbindung');
$user = get_uid();
$rechte = new benutzerberechtigung($conn);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentenoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungoverlay.xul.php"?>';
/*echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentenoverlay.xul.php"?>';*/
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiteroverlay.xul.php"?>';
/*echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-week-overlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-semester-overlay.xul.php"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
?>
@@ -120,7 +113,6 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
<tree id="tree-fachbereich" onmouseup="onFachbereichSelect(event);"
seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/fachbereich/liste">
<!--<?php echo APP_ROOT;?>rdf/fachbereich_menue.rdf.php-->
<treecols>
<treecol id="fachbereich-treecol-bezeichnung" label="Bezeichnung" flex="3" primary="true" />
<splitter class="tree-splitter"/>
@@ -297,7 +289,6 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
<?php
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz'))
{
//echo '<tab id="tab-interessenten" label="PreStudent" onclick="ChangeTabsToVerband()"/>';
echo '<tab id="tab-studenten" label="Studenten" onclick="ChangeTabsToVerband()"/>';
echo '<tab id="tab-lfvt" label="Lehrveranstaltungen" onclick="ChangeTabsToVerband()"/>';
}
@@ -312,8 +303,6 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz'))
{
echo '
<!-- Interessenten -->
<!--<vbox id="InteressentenEditor" />-->
<!-- Studenten -->
<vbox id="studentenEditor" />
<!-- Lehrfachverteilung -->
@@ -20,13 +20,8 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../config/vilesci.config.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
// *********** Globale Variablen *****************//
@@ -522,7 +517,7 @@ function LeDetailReset()
document.getElementById('lehrveranstaltung-detail-menulist-sprache').value='German';
document.getElementById('lehrveranstaltung-detail-menulist-raumtyp').value='Dummy';
document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value='Dummy';
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value='<?php echo $semester_aktuell; ?>';
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=getStudiensemester();
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value='UE';
//mitarbeiterlehreinheit tree leeren
@@ -20,13 +20,13 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
$conn = pg_pconnect(CONN_STRING);
require_once('../../include/variable.class.php');
$user = get_uid();
loadVariables($conn, $user);
$variable = new variable();
$variable->loadVariables($user);
?>
// *********** Globale Variablen *****************//
var MitarbeiterSelectUid=null; //UID des zu selektierenden Mitarbeiters
@@ -957,7 +957,7 @@ function MitarbeiterSendMail()
if(treeMitarbeiter.view.getCellText(v,col).length>1)
{
if(mailempfaenger!='')
mailempfaenger=mailempfaenger+'<?php echo $emailadressentrennzeichen; ?>'+treeMitarbeiter.view.getCellText(v,col)+'@technikum-wien.at';
mailempfaenger=mailempfaenger+'<?php echo $variable->variable->emailadressentrennzeichen; ?>'+treeMitarbeiter.view.getCellText(v,col)+'@technikum-wien.at';
else
mailempfaenger='mailto:'+treeMitarbeiter.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
}
@@ -20,13 +20,8 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../config/vilesci.config.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
// *********** Globale Variablen *****************//
var InteressentDokumentTreeNichtabgegebenDatasource=null; //Datasource fuer Dokumenten tree
+1 -120
View File
@@ -20,130 +20,11 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../config/vilesci.config.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
// *********** Globale Variablen *****************//
var InteressentSelectId=null; //Interessent der nach dem Refresh markiert werden soll
var InteressentTreeLoadDataOnSelect=true; //Gibt an ob beim naechsten Select des Interessenten Trees die Daten geladen werden sollen
var InteressentKontoSelectBuchung=null; //Buchung die nach dem Refresh markiert werden soll
var InteressentKontoTreeDatasource; //Datasource des KontoTrees
// ********** Observer und Listener ************* //
// ****
// * Observer fuer Interessenten Tree
// * startet Rebuild nachdem das Refresh
// * der datasource fertig ist
// ****
var InteressentTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('interessent-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird der Interessent wieder
// * markiert
// ****
var InteressentTreeListener =
{
willRebuild : function(builder)
{
},
didRebuild : function(builder)
{
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
window.setTimeout(InteressentTreeSelectInteressent,10);
// Progressmeter stoppen
document.getElementById('statusbar-progressmeter').setAttribute('mode','determined');
}
};
// ****
// * Observer fuer Konto Tree
// * startet Rebuild nachdem das Refresh
// * der datasource fertig ist
// ****
var InteressentKontoTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('interessent-konto-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird die Buchung wieder
// * markiert
// ****
var InteressentKontoTreeListener =
{
willRebuild : function(builder) { },
didRebuild : function(builder)
{
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
window.setTimeout(InteressentKontoTreeSelectBuchung,10);
}
};
// ***************** KEY Events ************************* //
// ****
// * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus
// * im Interessent-tree ist
// * Beim Druecken von F5 wird der Studententree aktualisiert
// ****
function InteressentTreeKeyPress(event)
{
if(event.keyCode==116) // F5
InteressentTreeRefresh();
}
// ****************** FUNKTIONEN ************************** //
// ****
// * Asynchroner (Nicht blockierender) Refresh des InteressentenTrees
// ****
function InteressentTreeRefresh()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
//markierten Interessenten global speichern damit dieser Interessent nach dem
//refresh wieder markiert werden kann.
var tree = document.getElementById('interessent-tree');
var col = tree.columns ? tree.columns["interessent-treecol-prestudent_id"] : "interessent-treecol-prestudent_id";
try
{
InteressentSelectId=tree.view.getCellText(tree.currentIndex,col);
}
catch(e)
{
InteressentSelectId=null;
}
InteressentTreeDatasource.Refresh(false); //non blocking
}
// ****
// * neuen Interessenten anlegen
// ****
@@ -20,13 +20,8 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../config/vilesci.config.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
// *********** Globale Variablen *****************//
var StudentAbschlusspruefungSelectID=null; //Id der Abschlusspruefung die nach dem Rebuild markiert werden soll
+1 -6
View File
@@ -20,13 +20,8 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../config/vilesci.config.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
// *********** Globale Variablen *****************//
var StudentGruppenTreeDatasource=null; //Datasource fuer den GruppenTree
+6 -5
View File
@@ -20,13 +20,14 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
$conn = pg_pconnect(CONN_STRING);
require_once('../../include/variable.class.php');
$user = get_uid();
loadVariables($conn, $user);
$variable = new variable();
$variable->loadVariables($user);
?>
// *********** Globale Variablen *****************//
var StudentSelectID=null; //Student der nach dem Refresh markiert werden soll
@@ -4002,7 +4003,7 @@ function StudentSendMail()
if(tree.view.getCellText(v,col).length>1)
{
if(mailempfaenger!='')
mailempfaenger=mailempfaenger+'<?php echo $emailadressentrennzeichen; ?>'+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
mailempfaenger=mailempfaenger+'<?php echo $variable->variable->emailadressentrennzeichen; ?>'+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
else
mailempfaenger='mailto:'+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
}
+1 -6
View File
@@ -20,13 +20,8 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../config/vilesci.config.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
// *********** Globale Variablen *****************//
var StudentProjektarbeitSelectID=null; //Id der Projektarbeit die nach dem Rebuild markiert werden soll
+12 -9
View File
@@ -185,30 +185,33 @@ function jahreskalenderjump($link)
echo ' </SMALL></CENTER></SMALL>'.$crlf;
}
function loadVariables($conn, $user)
function loadVariables($user)
{
$db = new basis_db();
$error_msg='';
$num_rows=0;
$sql_query="SELECT * FROM public.tbl_variable WHERE uid='$user'";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn).'<BR>'.$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().'<BR>'.$sql_query;
else
$num_rows=pg_numrows($result);
$num_rows=$db->db_num_rows();
while ($row=pg_fetch_object($result))
while ($row=$db->db_fetch_object())
{
global ${$row->name};
${$row->name}=$row->wert;
}
if (!isset($semester_aktuell))
if(!($result=pg_query($conn, 'SELECT * FROM public.tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1')))
$error_msg.=pg_errormessage($conn).'<BR>'.$sql_query;
if(!$db->db_query('SELECT * FROM public.tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1'))
$error_msg.=$db->db_last_error().'<BR>'.$sql_query;
else
{
$num_rows=pg_numrows($result);
$num_rows=$db->db_num_rows();
if ($num_rows>0)
{
$row=pg_fetch_object($result);
$row=$db->db_fetch_object();
global $semester_aktuell;
$semester_aktuell=$row->studiensemester_kurzbz;
}
+162 -170
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -16,64 +16,53 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
*/
require_once('basis_db.class.php');
class studiensemester
class studiensemester extends basis_db
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $studiensemester = array(); // studiensemester Objekt
public $errormsg; // string
public $new; // boolean
public $studiensemester = array(); // studiensemester Objekt
//Tabellenspalten
var $studiensemester_kurzbz; // varchar(16)
var $start; // date
var $ende; // date
var $bezeichnung;
public $studiensemester_kurzbz; // varchar(16)
public $start; // date
public $ende; // date
public $bezeichnung;
// ***********************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional ein LF
// * @param $conn Datenbank-Connection
// * $studiensemester_kurzbz StSem das geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// ***********************************************************************
function studiensemester($conn, $studiensemester_kurzbz=null, $unicode=false)
/**
* Konstruktor - Laedt optional ein StSem
*
* @param $studiensemester_kurzbz StSem das geladen werden soll (default=null)
*/
public function __construct($studiensemester_kurzbz=null)
{
$this->conn = $conn;
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;
}
parent::__construct();
if($studiensemester_kurzbz != null)
$this->load($studiensemester_kurzbz);
}
// **************************************************************
// * Laedt das Studiensemester mit der uebergebenen ID
// * @param $studiensemester_kurzbz Stsem das geladen werden soll
// **************************************************************
function load($studiensemester_kurzbz)
/**
* Laedt das Studiensemester mit der uebergebenen ID
*
* @param $studiensemester_kurzbz Stsem das geladen werden soll
*/
public function load($studiensemester_kurzbz)
{
$qry = "SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if(!$result=pg_query($this->conn,$qry))
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim lesen des Studiensemesters';
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
return false;
}
if($row = pg_fetch_object($result))
if($row = $this->db_fetch_object())
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
@@ -89,12 +78,13 @@ class studiensemester
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
*
* @return true wenn ok, false im Fehlerfall
*/
private function validate()
{
if(strlen($this->studiensemester_kurzbz)>16)
{
@@ -109,24 +99,14 @@ class studiensemester
return true;
}
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * zeichen mit backslash versehen und das ergbnis
// * unter hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert das Studiensemester in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
/**
* Speichert das Studiensemester in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
* angelegt, ansonsten der Datensatz upgedated
*
* @return true wenn erfolgreich, false im Fehlerfall
*/
public function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
@@ -147,35 +127,36 @@ class studiensemester
" WHERE studiensemester_kurzbz='$this->studiensemester_kurzbz'";
}
if(pg_query($this->conn,$qry))
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Studiensemesters:'.$qry;
$this->errormsg = 'Fehler beim Speichern des Studiensemesters';
return false;
}
}
// ******************************************************************
// * Liefert das Aktuelle Studiensemester
// * @return aktuelles Studiensemester oder false wenn es keines gibt
// ******************************************************************
function getakt()
/**
* Liefert das aktuelle Studiensemester
*
* @return aktuelles Studiensemester oder false wenn es keines gibt
*/
public function getakt()
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start <= now() AND ende >= now()";
if(!$res=pg_query($this->conn,$qry))
if(!$this->db_query($qry))
{
$this->errormsg = pg_errormessage($this->conn);
$this->errormsg = $this->db_last_error();
return false;
}
if(pg_num_rows($res)>0)
if($this->db_num_rows()>0)
{
$erg = pg_fetch_object($res);
$erg = $this->db_fetch_object();
return $erg->studiensemester_kurzbz;
}
else
@@ -185,43 +166,20 @@ class studiensemester
}
}
// ******************************************************************
// * Liefert ein Studiensemester mit Startdatum vom naechstgelegenen Studiensemester und
// * dem Startdatum vom folgeden Studiensemester als Endedatum
// * @return boolean
// ******************************************************************
function getNearestTillNext()
/**
* Liefert ein Studiensemester mit Startdatum vom naechstgelegenen Studiensemester und
* dem Startdatum vom folgeden Studiensemester als Endedatum
*
* @return boolean
*/
public function getNearestTillNext()
{
/*$qry = "SELECT * FROM public.vw_studiensemester ORDER BY delta LIMIT 1";
if(!$res=pg_query($this->conn,$qry))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
if(!$erg1 = pg_fetch_object($res))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
$qry = "SELECT * FROM public.vw_studiensemester WHERE ORDER BY delta LIMIT 1";
if(!$res=pg_query($this->conn,$qry))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
if(!$erg2 = pg_fetch_object($res))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}*/
if(!$nearest=$this->getNearest())
return false;
$start=$this->start;
$studiensemester_kurzbz=$this->studiensemester_kurzbz;
if (!$next=$this->getNextFrom($this->studiensemester_kurzbz))
return false;
$ende=$this->start;
@@ -235,18 +193,19 @@ class studiensemester
/**
* Liefert das Aktuelle Studiensemester oder das darauffolgende
*
* @param $semester wenn das semester uebergeben wird, dann werden nur die studiensemester
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
* @return Studiensemester oder false wenn es keines gibt
*/
function getaktorNext($semester='')
public function getaktorNext($semester='')
{
if(($stsem=$this->getakt()) && $semester=='')
return $stsem;
return $stsem;
else
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE true";
//$qry = "SELECT studiensemester_kurzbz FROM public.vw_studiensemester ";
if($semester!='')
{
if($semester%2==0)
@@ -258,16 +217,15 @@ class studiensemester
}
$qry.= " AND ende >= now() ORDER BY ende LIMIT 1";
if(!$res=pg_query($this->conn,$qry))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
if(pg_num_rows($res)>0)
if(!$this->db_query($qry))
{
$erg = pg_fetch_object($res);
return $erg->studiensemester_kurzbz;
$this->errormsg = $this->db_last_error();
return false;
}
if($erg = $this->db_fetch_object())
{
return $erg->studiensemester_kurzbz;
}
else
{
@@ -279,9 +237,12 @@ class studiensemester
/**
* Liefert das naechstgelegenste Studiensemester
*
* @param semester wenn das semester uebergeben wird, dann werden nur die studiensemester
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
* @return Studiensemester oder false wenn es keines gibt
*/
function getNearest($semester='')
public function getNearest($semester='')
{
$qry = "SELECT studiensemester_kurzbz, start, ende FROM public.vw_studiensemester ";
if($semester!='')
@@ -294,17 +255,15 @@ class studiensemester
$qry.= " WHERE substring(studiensemester_kurzbz from 1 for 2)='$ss' ";
}
$qry.=' ORDER BY delta LIMIT 1';
//echo $qry;
if(!$res=pg_query($this->conn,$qry))
if(!$this->db_query($qry))
{
$this->errormsg = pg_errormessage($this->conn);
$this->errormsg = $this->db_last_error();
return false;
}
if(pg_num_rows($res)>0)
if($erg = $this->db_fetch_object())
{
$erg = pg_fetch_object($res);
$this->studiensemester_kurzbz=$erg->studiensemester_kurzbz;
$this->start=$erg->start;
$this->ende=$erg->ende;
@@ -317,16 +276,20 @@ class studiensemester
}
}
function getAll()
/**
* Liefert alle Studiensemester
*
* @return true wenn ok, sonst false
*/
public function getAll()
{
$qry = "SELECT * FROM public.tbl_studiensemester ORDER BY ende";
if($result = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
while($row = pg_fetch_object($result))
while($row = $this->db_fetch_object())
{
$stsem_obj = new studiensemester($this->conn);
$stsem_obj = new studiensemester();
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
@@ -334,6 +297,7 @@ class studiensemester
$this->studiensemester[] = $stsem_obj;
}
return true;
}
else
{
@@ -342,12 +306,14 @@ class studiensemester
}
}
// ****
// * Liefert das naechste Studiensemester
// * Wenn art=WS dann wird das naechste Wintersemester geliefert
// * Wenn art=SS dann wird das naechste Sommersemester geliefert
// ****
function getNextStudiensemester($art='')
/**
* Liefert das naechste Studiensemester
*
* @param $art Wenn art=WS dann wird das naechste Wintersemester geliefert
* Wenn art=SS dann wird das naechste Sommersemester geliefert
* @return true wenn ok, false wenn kein entsprechendes vorhanden ist
*/
public function getNextStudiensemester($art='')
{
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start>now() ";
@@ -356,13 +322,13 @@ class studiensemester
$qry.=" ORDER BY start LIMIT 1";
if(!$result=pg_query($this->conn,$qry))
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
return false;
}
if($row = pg_fetch_object($result))
if($row = $this->db_fetch_object())
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
@@ -377,16 +343,18 @@ class studiensemester
return true;
}
// ****
// * Liefert das vorige Studiensemester
// ****
function getPrevious()
/**
* Liefert das vorige Studiensemester
*
* @return studiensemester_kurzbz oder false wenn keines vorhanden
*/
public function getPrevious()
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende<now() ORDER BY ende DESC LIMIT 1";
if($result = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
if($row = pg_fetch_object($result))
if($row = $this->db_fetch_object())
{
return $row->studiensemester_kurzbz;
}
@@ -401,18 +369,29 @@ class studiensemester
$this->errormsg = 'Fehler beim Ermitteln des vorangegangenen Studiensemesters';
}
}
// ****
// * Liefert das vorvorige Studiensemester
// ****
function getBeforePrevious()
/**
* Liefert das vorvorige Studiensemester
*
* @return studiensemester_kurzbz oder false wenn keines vorhanden
*/
public function getBeforePrevious()
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende<now() ORDER BY ende DESC LIMIT 2";
if($result = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
if($row = pg_fetch_object($result,1))
if($row = $this->db_fetch_object())
{
return $row->studiensemester_kurzbz;
if($row = $this->db_fetch_object())
{
return $row->studiensemester_kurzbz;
}
else
{
$this->errormsg = 'Es wurde kein vorjähriges Studiensemester gefunden';
return false;
}
}
else
{
@@ -423,22 +402,26 @@ class studiensemester
else
{
$this->errormsg = 'Fehler beim Ermitteln des vorjährigen Studiensemesters';
return false;
}
}
// ****
// * Liefert das Studiensemester vor $studiensemester_kurzbz
// ****
function getPreviousFrom($studiensemester_kurzbz)
/**
* Liefert das Studiensemester vor $studiensemester_kurzbz
*
* @param $studiensemester_kurzbz
* @return $studiensemester_kurzbz oder false wenn Fehler
*/
public function getPreviousFrom($studiensemester_kurzbz)
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester
WHERE ende<(SELECT start FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."')
ORDER BY ende DESC LIMIT 1";
if($result = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
if($row = pg_fetch_object($result))
if($row = $this->db_fetch_object())
{
return $row->studiensemester_kurzbz;
}
@@ -451,22 +434,26 @@ class studiensemester
else
{
$this->errormsg = 'Fehler beim Ermitteln des vorangegangenen Studiensemesters';
return false;
}
}
// ****
// * Liefert das Studiensemester nach $studiensemester_kurzbz
// ****
function getNextFrom($studiensemester_kurzbz)
/**
* Liefert das Studiensemester nach $studiensemester_kurzbz
*
* @param $studiensemester_kurzbz
* @return $studiensemester_kurzbz oder false wenn Fehler
*/
public function getNextFrom($studiensemester_kurzbz)
{
$qry = "SELECT studiensemester_kurzbz, start, ende FROM public.tbl_studiensemester
WHERE start>(SELECT ende FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."')
ORDER BY start LIMIT 1";
if($result = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
if($row = pg_fetch_object($result))
if($row = $this->db_fetch_object())
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
@@ -482,13 +469,18 @@ class studiensemester
else
{
$this->errormsg = 'Fehler beim Ermitteln des folgenden Studiensemesters';
return false;
}
}
// ****
// * Springt von Studiensemester $studiensemester_kurzbz um $wert Studiensemester vor/zurueck
// ****
function jump($studiensemester_kurzbz, $wert)
/**
* Springt von Studiensemester $studiensemester_kurzbz um $wert Studiensemester vor/zurueck
*
* @param $studiensemester_kurzbz
* @param $wert
* @return studiensemester_kurzbz
*/
public function jump($studiensemester_kurzbz, $wert)
{
if($wert>0)
{
@@ -518,9 +510,9 @@ class studiensemester
) as foo
ORDER BY start DESC LIMIT 1";
if($result = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
if($row = pg_fetch_object($result))
if($row = $this->db_fetch_object())
{
return $row->studiensemester_kurzbz;
}
+94 -50
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -16,21 +16,23 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
*/
require_once('basis_db.class.php');
class variable
class variable extends basis_db
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $variables = array(); // variable Objekt
public $errormsg; // string
public $new; // boolean
public $variables = array(); // variable Objekt
public $variable;
//Tabellenspalten
var $uid; // varchar(32)
var $name; // varchar(64)
var $wert; // varchar(64)
public $uid; // varchar(32)
public $name; // varchar(64)
public $wert; // varchar(64)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Variable
@@ -40,35 +42,25 @@ class variable
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function variable($conn, $uid=null, $name=null, $unicode=false)
public function __construct($uid=null, $name=null)
{
$this->conn = $conn;
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;
}
parent::__construct();
if($uid!=null && $name!=null)
$this->load($uid, $name);
}
// *********************************************************
// * Laedt die Variablen
// * @param
// * Laedt eine Variable
// * @param $uid
// * @param $name
// *********************************************************
function load($uid, $name)
public function load($uid, $name)
{
$qry = "SELECT wert FROM public.tbl_variable WHERE uid='".addslashes($uid)."' AND name='".addslashes($name)."'";
if($result = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
if($row = pg_fetch_object($result))
if($row = $this->db_fetch_object())
{
$this->uid = $uid;
$this->name = $name;
@@ -88,7 +80,7 @@ class variable
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
private function validate()
{
if(strlen($this->uid)>32)
{
@@ -109,24 +101,13 @@ class variable
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert Variable in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save($new=null)
public function save($new=null)
{
if(is_null($new))
$new = $this->new;
@@ -149,7 +130,7 @@ class variable
" WHERE uid='".addslashes($this->uid)."' AND name='".addslashes($this->name)."';";
}
if(pg_query($this->conn,$qry))
if($this->db_query($qry))
{
//Log schreiben
return true;
@@ -164,7 +145,7 @@ class variable
// ****
// * Loescht einen Variableneintrag
// ****
function delete($name, $uid)
public function delete($name, $uid)
{
if($name=='' || $uid == '')
{
@@ -174,7 +155,7 @@ class variable
$qry = "DELETE FROM public.tbl_variable WHERE name='".addslashes($name)."' AND uid='".addslashes($uid)."'";
if(pg_query($this->conn, $qry))
if($this->db_query($qry))
return true;
else
{
@@ -186,15 +167,15 @@ class variable
// ******
// * Liefert alle Variablen eines Benutzers
// ******
function getVars($uid)
public function getVars($uid)
{
$qry = "SELECT * FROM public.tbl_variable WHERE uid='".addslashes($uid)."' ORDER BY name";
if($result = pg_query($this->conn, $qry))
if($result = $this->db_query($qry))
{
while($row = pg_fetch_object($result))
while($row = $this->db_fetch_object())
{
$v = new variable($this->conn, null, null, null);
$v = new variable();
$v->uid = $row->uid;
$v->name = $row->name;
@@ -210,6 +191,69 @@ class variable
return false;
}
}
/**
* Laedt die Variablen in ein assoziatives Array
*
* Zugriff von aussen mit $obj->variable->semester_aktuell
*
* @param $user
* @return true wenn ok, sonst false
*/
public function loadVariables($user)
{
if(!$this->db_query("SELECT * FROM public.tbl_variable WHERE uid='".addslashes($user)."'"))
{
$this->errormsg.=$this->db_last_error();
return false;
}
else
$num_rows = $this->db_num_rows();
while($row=$this->db_fetch_object())
{
$this->variable->{$row->name}=$row->wert;
}
if (!isset($this->variable->semester_aktuell))
{
if(!$this->db_query('SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1'))
{
$this->errormsg.=$this->db_last_error();
return false;
}
else
{
if($row = $this->db_fetch_object())
{
$this->variable->semester_aktuell=$row->studiensemester_kurzbz;
}
}
}
if (!isset($this->variable->db_stpl_table))
$this->variable->db_stpl_table='stundenplan';
if (!isset($this->variable->emailadressentrennzeichen))
$this->variable->emailadressentrennzeichen=',';
if (!isset($this->variable->db_stpl_table))
$this->variable->db_stpl_table='stundenplan';
if (!isset($this->variable->kontofilterstg))
$this->variable->kontofilterstg='false';
if (!isset($this->variable->ignore_kollision))
$this->variable->ignore_kollision='false';
if (!isset($this->variable->ignore_zeitsperre))
$this->variable->ignore_zeitsperre='false';
if (!isset($this->variable->ignore_reservierung))
$this->variable->ignore_reservierung='false';
return true;
}
}
?>
+38 -6
View File
@@ -170,7 +170,7 @@
<fo:block font-size="7pt"></fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-size="7pt">non-credit participation (na), participated(t), bestanden (b), approbiert (ap), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea)</fo:block>
<fo:block font-size="7pt">non-credit participation (na), participated(t), passed (b), approbiert (ap), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea)</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
@@ -216,7 +216,7 @@
<fo:table-cell>
<fo:block font-size="8pt" content-width="75mm" text-align="center">
<xsl:value-of select="studiengangsleiter"/>
<xsl:text>\nDirector of Academic Degree Program</xsl:text>
<xsl:text>\nHead of Study Programme</xsl:text>
</fo:block>
</fo:table-cell>
<fo:table-cell>
@@ -256,8 +256,23 @@
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test="bisio_von">
Auslandsaufenthalt: <xsl:value-of select="bisio_von"/>-<xsl:value-of select="bisio_bis"/>, <xsl:value-of select="bisio_ort"/>, <xsl:value-of select="bisio_universitaet"/>
\n Die im Ausland absolvierten Lehrveranstaltungen werden für das <xsl:value-of select="../semester"/>. Semester des Studiums an der Fachhochschule Technikum Wien angerechnet (Details siehe Transcript of Records der Gasthochschule).
International Semester Abroad: <xsl:value-of select="bisio_von"/>-<xsl:value-of select="bisio_bis"/>, at <xsl:value-of select="bisio_ort"/>, <xsl:value-of select="bisio_universitaet"/>
\n All credits earned during the International Semester Abroad (ISA) are fully credited for the
<xsl:value-of select="../semester"/>
<xsl:choose>
<xsl:when test="../semester=1">
<xsl:text>st</xsl:text>
</xsl:when>
<xsl:when test="../semester=2">
<xsl:text>nd</xsl:text>
</xsl:when>
<xsl:when test="../semester=3">
<xsl:text>rd</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>th</xsl:text>
</xsl:otherwise>
</xsl:choose>. semester at the UAS Fachhochschule Technikum Wien. (see Transcript of Records)
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="bezeichnung_englisch"/>
@@ -292,13 +307,30 @@
<xsl:value-of select="fussnotenzeichen"/>
<xsl:text> </xsl:text>
<fo:inline font-weight="bold">
<xsl:value-of select="themenbereich_bezeichnung"/>
<xsl:choose>
<xsl:when test="themenbereich_bezeichnung='Themenbereich: '">
<xsl:text>Subject Area:</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</fo:inline>
<xsl:value-of select="themenbereich"/>
<xsl:text> </xsl:text>
<fo:inline font-weight="bold">
<xsl:value-of select="titel_bezeichnung"/>
<xsl:choose>
<xsl:when test="titel_bezeichnung='Bachelorarbeit:'">
<xsl:text>Bachelor Thesis:</xsl:text>
</xsl:when>
<xsl:when test="titel_bezeichnung='Diplomarbeit:'">
<xsl:text>Diploma Thesis:</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</fo:inline>
<xsl:value-of select="titel"/>