From 8a87e28affee37e991ababcc0f3d37ee878aec7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 25 Apr 2014 15:26:26 +0000 Subject: [PATCH] =?UTF-8?q?Performanceproblem=20beim=20Infoterminal=20beho?= =?UTF-8?q?ben;=20Unn=C3=B6tige=20Datenbankzugriffe=20in=20Klasse=20Studie?= =?UTF-8?q?ngang=20minimiert;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/createAusbildungsvertrag.php | 25 -- content/pdfExport.php | 218 ++++++++++-------- content/student/studentDBDML.php | 24 -- include/functions.inc.php | 27 +-- include/studiengang.class.php | 15 +- include/zeugnisnote.class.php | 2 +- rdf/erfolgsnachweis.rdf.php | 19 +- rdf/lehrveranstaltung_einheiten.rdf.php | 2 +- system/.htaccess | 12 +- system/checksystem.php | 75 ++++++ system/xsl/FHB_erfolgsnachweis_0_v1.xsl | 75 +++--- system/xsl/FHB_erfolgsnachweis_head_0.xsl | 17 +- .../personen/import/interessentenimport.php | 23 -- vilesci/personen/incoming_detail.php | 33 +-- 14 files changed, 289 insertions(+), 278 deletions(-) diff --git a/content/createAusbildungsvertrag.php b/content/createAusbildungsvertrag.php index 55728bfcd..6b93f70a7 100755 --- a/content/createAusbildungsvertrag.php +++ b/content/createAusbildungsvertrag.php @@ -38,31 +38,6 @@ require_once('../include/vorlage.class.php'); $user = get_uid(); $db = new basis_db(); -function clean_string($string) - { - $trans = array("ä" => "ae", - "Ä" => "Ae", - "ö" => "oe", - "Ö" => "Oe", - "ü" => "ue", - "Ü" => "Ue", - "á" => "a", - "à" => "a", - "é" => "e", - "è" => "e", - "ó" => "o", - "ò" => "o", - "í" => "i", - "ì" => "i", - "ù" => "u", - "ú" => "u", - "ß" => "ss"); - - $string = strtr($string, $trans); - return mb_ereg_replace("[^a-zA-Z0-9]", "", $string); - //[:space:] - } - //Parameter holen if(isset($_GET['xml'])) $xml=$_GET['xml']; diff --git a/content/pdfExport.php b/content/pdfExport.php index 17f7860b5..227437a0d 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -19,11 +19,11 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ -/* Erstellt einen Lehrauftrag im PDF Format - * +/* Erstellt diverse Dokumente + * * Erstellt ein XML File Transformiert dieses mit * Hilfe der XSL-FO Vorlage aus der DB und generiert - * daraus ein PDF (xslfo2pdf) + * daraus ein PDF mittels xslfo2pdf bzw unoconv */ session_cache_limiter('none'); //muss gesetzt werden sonst funktioniert der Download mit IE8 nicht session_start(); @@ -36,35 +36,13 @@ require_once('../include/akte.class.php'); require_once('../include/vorlage.class.php'); require_once('../include/student.class.php'); require_once('../include/prestudent.class.php'); +require_once('../include/variable.class.php'); $user = get_uid(); $db = new basis_db(); -loadVariables($user); -function clean_string($string) - { - $trans = array("ä" => "ae", - "Ä" => "Ae", - "ö" => "oe", - "Ö" => "Oe", - "ü" => "ue", - "Ü" => "Ue", - "á" => "a", - "à" => "a", - "é" => "e", - "è" => "e", - "ó" => "o", - "ò" => "o", - "í" => "i", - "ì" => "i", - "ù" => "u", - "ú" => "u", - "ß" => "ss"); - - $string = strtr($string, $trans); - return mb_ereg_replace("[^a-zA-Z0-9]", "", $string); - //[:space:] - } +$variable_obj = new variable(); +$variable_obj->loadVariables($user); //Parameter holen if(isset($_GET['xml'])) @@ -76,29 +54,35 @@ if(isset($_GET['xsl'])) else die('Fehlerhafte Parameteruebergabe'); +// Studiengang ermitteln dessen Vorlage verwendet werden soll $xsl_stg_kz=0; -if(isset($_GET['xsl_stg_kz'])) +// Direkte uebergabe des Studienganges dessen Vorlage verwendet werden soll +if(isset($_GET['xsl_stg_kz'])) $xsl_stg_kz=$_GET['xsl_stg_kz']; else +{ + // Wenn eine Studiengangskennzahl uebergeben wird, wird die Vorlage dieses Studiengangs verwendet if(isset($_GET['stg_kz'])) $xsl_stg_kz=$_GET['stg_kz']; else + { + // Werden UIDs uebergeben, wird die Vorlage des Studiengangs genommen + // in dem der 1. Studierende in der Liste ist if(isset($_GET['uid']) && $_GET['uid']!='') { if(strstr(';',$_GET['uid'])) $uids = explode(';',$_GET['uid']); else $uids = $_GET['uid']; - //var_dump($uids); - $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE student_uid='".addslashes($uids[1])."'"; - if($result_std = $db->db_query($qry)) - if($db->db_num_rows($result_std)==1) - { - $row_std = $db->db_fetch_object($result_std); - $xsl_stg_kz=$row_std->studiengang_kz; - } - } + $student_obj = new student(); + if($student_obj->load($uids[1])) + { + $xsl_stg_kz=$student_obj->studiengang_kz; + } + } + } +} if(isset($_GET['xsl_oe_kurzbz'])) $xsl_oe_kurzbz=$_GET['xsl_oe_kurzbz']; else @@ -107,33 +91,31 @@ else //Parameter setzen $params='?xmlformat=xml'; if(isset($_GET['uid'])) - $params.='&uid='.$_GET['uid']; -if(isseT($_GET['stg_kz'])) - $params.='&stg_kz='.$_GET['stg_kz']; -if(isset($_GET['person_id'])) - $params.='&person_id='.$_GET['person_id']; -if(isset($_GET['id'])) - $params.='&id='.$_GET['id']; -if(isset($_GET['prestudent_id'])) - $params.='&prestudent_id='.$_GET['prestudent_id']; -if(isset($_GET['buchungsnummern'])) - $params.='&buchungsnummern='.$_GET['buchungsnummern']; + $params.='&uid='.urlencode($_GET['uid']); if(isset($_GET['stg_kz'])) - $params.='&stg_kz='.$_GET['stg_kz']; + $params.='&stg_kz='.urlencode($_GET['stg_kz']); +if(isset($_GET['person_id'])) + $params.='&person_id='.urlencode($_GET['person_id']); +if(isset($_GET['id'])) + $params.='&id='.urlencode($_GET['id']); +if(isset($_GET['prestudent_id'])) + $params.='&prestudent_id='.urlencode($_GET['prestudent_id']); +if(isset($_GET['buchungsnummern'])) + $params.='&buchungsnummern='.urlencode($_GET['buchungsnummern']); if(isset($_GET['ss'])) - $params.='&ss='.$_GET['ss']; + $params.='&ss='.urlencode($_GET['ss']); if(isset($_GET['abschlusspruefung_id'])) - $params.='&abschlusspruefung_id='.$_GET['abschlusspruefung_id']; + $params.='&abschlusspruefung_id='.urlencode($_GET['abschlusspruefung_id']); if(isset($_GET['typ'])) - $params.='&typ='.$_GET['typ']; + $params.='&typ='.urlencode($_GET['typ']); if(isset($_GET['all'])) - $params.='&all='.$_GET['all']; + $params.='&all='.urlencode($_GET['all']); if(isset($_GET['preoutgoing_id'])) - $params.='&preoutgoing_id='.$_GET['preoutgoing_id']; + $params.='&preoutgoing_id='.urlencode($_GET['preoutgoing_id']); if(isset($_GET["lvid"])) - $params.='&lvid='.$_GET["lvid"]; + $params.='&lvid='.urlencode($_GET["lvid"]); if(isset($_GET['projekt_kurzbz'])) - $params.='&projekt_kurzbz='.$_GET['projekt_kurzbz']; + $params.='&projekt_kurzbz='.urlencode($_GET['projekt_kurzbz']); if(isset($_GET['version']) && is_numeric($_GET['version'])) $version = $_GET['version']; else @@ -141,11 +123,13 @@ else $output = (isset($_GET['output'])?$_GET['output']:'odt'); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +//Berechtigung pruefen if($xsl=='AccountInfo') { $isberechtigt = false; - $rechte = new benutzerberechtigung(); - $rechte->getBerechtigungen($user); $uids = explode(';',$_GET['uid']); foreach ($uids as $uid) @@ -189,10 +173,41 @@ if($xsl=='AccountInfo') exit; } } +elseif(in_array($xsl,array('Zertifikat','Diplomurkunde','Diplomzeugnis','Bakkurkunde','BakkurkundeEng','Bakkzeugnis', +'PrProtokollBakk','PrProtokollDipl','Lehrauftrag','DiplomurkundeEng','Zeugnis','ZeugnisEng','StudienerfolgEng', +'Sammelzeugnis','PrProtDiplEng','PrProtBakkEng','BakkzeugnisEng','DiplomzeugnisEng','statusbericht','Uebernahme', +'DiplSupplement','Zutrittskarte','Projektbeschr','Ausbildungsver','AusbildStatus','PrProtBA','PrProtMA', +'PrProtBAEng','PrProtMAEng','Studienordnung','Erfolgsnachweis','ErfolgsnwHead'))) +{ + if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) + { + echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen'; + exit; + } +} +elseif(in_array($xsl,array('Inskription','Studienerfolg','OutgoingLearning','OutgoingChangeL','LearningAgree','Zahlung'))) +{ + if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) + { + echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen'; + exit; + } +} +elseif($xsl=='Bestellung') +{ + if(!$rechte->isBerechtigt('wawi/bestellung')) + { + echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen'; + exit; + } +} +else +{ + echo 'unbekanntes Dokument oder keine Berechtigung'; + exit; +} + -//Berechtigung pruefen -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); $xml_url=XML_ROOT.$xml.$params; @@ -215,18 +230,6 @@ else $vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version); } -//$qry = "SELECT text FROM public.tbl_vorlagestudiengang WHERE (studiengang_kz=0"; -//if($xsl_stg_kz!='') -//$qry.=" OR studiengang_kz='".addslashes($xsl_stg_kz)."'"; -//$qry.=") AND vorlage_kurzbz='$xsl'"; -//if(isset($version) && $version!='') -// $qry.=" AND version='$version'"; -//$qry.=" ORDER BY studiengang_kz DESC, version DESC LIMIT 1"; -//echo $qry; -//if(!$result = $db->db_query($qry)) -// die('Fehler beim Laden der Vorlage'.$db->db_last_error()); -//if(!$row = $db->db_fetch_object($result)) -// die('Vorlage wurde nicht gefunden'.$qry); $xsl_content = $vorlage->text; @@ -237,15 +240,10 @@ $nachname=''; if(isset($_GET['uid']) && $_GET['uid']!='') { $uid = str_replace(';','',$_GET['uid']); - $qry = "SELECT nachname FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'"; + $benutzer_obj = new benutzer(); + if($benutzer_obj->load($uid)) + $nachname = '_'.convertProblemChars($benutzer_obj->nachname); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $nachname = '_'.clean_string($row->nachname); - } - } } $filename=$xsl.$nachname; @@ -281,12 +279,35 @@ if (!isset($_REQUEST["archive"])) mkdir($tempfolder); chdir($tempfolder); file_put_contents('content.xml', $buffer); - + + // Wenn ein Style XSL uebergeben wurde wird ein zweites XML File erstellt mit den + // Styleanweisungen und ebenfalls zum Zip hinzugefuegt + if(isset($_GET['style_xsl'])) + { + $style_xsl=$_GET['style_xsl']; + $style_vorlage = new vorlage(); + $style_vorlage->getAktuelleVorlage($xsl_stg_kz, $style_xsl, $version); + $style_xsl_doc = new DOMDocument; + if(!$style_xsl_doc->loadXML($style_vorlage->text)) + die('unable to load xsl'); + + // Configure the transformer + $style_proc = new XSLTProcessor; + $style_proc->importStyleSheet($style_xsl_doc); // attach the xsl rules + + $stylebuffer = $style_proc->transformToXml($xml_doc); + + file_put_contents('styles.xml', $stylebuffer); + } + $zipfile = DOC_ROOT.'system/vorlage_zip/'.$vorlage->vorlage_kurzbz.'.'.$endung; $tempname_zip = 'out.zip'; if(copy($zipfile, $tempname_zip)) { exec("zip $tempname_zip content.xml"); + if(isset($_GET['style_xsl'])) + exec("zip $tempname_zip styles.xml"); + clearstatcache(); if($output == 'pdf') { @@ -307,7 +328,17 @@ if (!isset($_REQUEST["archive"])) header('Content-Disposition: attachment; filename="'.$vorlage->vorlage_kurzbz.'.'.$endung.'"'); header('Content-Length: '.$fsize); } - + else if($output =='doc') + { + $tempPdfName = $vorlage->vorlage_kurzbz.'.doc'; + exec("unoconv -e IsSkipEmptyPages=false --stdout -f doc $tempname_zip > $tempPdfName"); + + $fsize = filesize($tempPdfName); + $handle = fopen($tempPdfName,'r'); + header('Content-type: application/vnd.ms-word'); + header('Content-Disposition: attachment; filename="'.$tempPdfName.'"'); + header('Content-Length: '.$fsize); + } while (!feof($handle)) { echo fread($handle, 8192); @@ -315,8 +346,10 @@ if (!isset($_REQUEST["archive"])) fclose($handle); unlink('content.xml'); + if(isset($_GET['style_xsl'])) + unlink('styles.xml'); unlink($tempname_zip); - if($output=='pdf') + if($output=='pdf' || $output=='doc') unlink($tempPdfName); rmdir($tempfolder); } @@ -373,19 +406,8 @@ else tbl_studentlehrverband.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id AND tbl_studentlehrverband.studiengang_kz = tbl_studiengang.studiengang_kz - AND tbl_studentlehrverband.student_uid = '".addslashes($uid)."' - AND tbl_studentlehrverband.studiensemester_kurzbz = '".addslashes($ss)."'"; -/* $query = "SELECT - tbl_studiengang.studiengang_kz, tbl_prestudentstatus.ausbildungssemester as semester, tbl_studiengang.typ, - tbl_studiengang.kurzbz, tbl_person.person_id FROM tbl_person, tbl_benutzer, - tbl_studentlehrverband, tbl_prestudentstatus, tbl_studiengang - WHERE - tbl_prestutendstatus.prestudent_id = - tbl_studentlehrverband.student_uid = tbl_benutzer.uid - AND tbl_benutzer.person_id = tbl_person.person_id - AND tbl_studentlehrverband.studiengang_kz = tbl_studiengang.studiengang_kz - AND tbl_studentlehrverband.student_uid = '".addslashes($uid)."' - AND tbl_studentlehrverband.studiensemester_kurzbz = '".addslashes($ss)."'"; */ + AND tbl_studentlehrverband.student_uid = ".$db->db_add_param($uid)." + AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($ss); if($result = $db->db_query($query)) { diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index bf4900f2b..b776f9055 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -144,30 +144,6 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) } } -// *** -function clean_string($string) - { - $trans = array("ä" => "ae", - "Ä" => "Ae", - "ö" => "oe", - "Ö" => "Oe", - "ü" => "ue", - "Ü" => "Ue", - "á" => "a", - "à" => "a", - "é" => "e", - "è" => "e", - "ó" => "o", - "ò" => "o", - "í" => "i", - "ì" => "i", - "ù" => "u", - "ú" => "u", - "ß" => "ss"); - $string = strtr($string, $trans); - return ereg_replace("[^a-zA-Z0-9]", "", $string); - //[:space:] - } if(!$error) { diff --git a/include/functions.inc.php b/include/functions.inc.php index 291903235..2fa143234 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -21,7 +21,7 @@ */ require_once(dirname(__FILE__).'/basis_db.class.php'); require_once(dirname(__FILE__).'/authentication.class.php'); -require_once('betriebsmittelperson.class.php'); +require_once(dirname(__FILE__).'/betriebsmittelperson.class.php'); // Auth: Benutzer des Webportals /** @@ -122,31 +122,6 @@ function check_lektor($uid) return 0; } -function check_lektor_lehreinheit($uid, $lehreinheit_id) -{ - $db = new basis_db(); - - // uid von View 'Lektor' holen - $sql_query="SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter - WHERE mitarbeiter_uid='".addslashes($uid)."' AND lehreinheit_id = '".addslashes($lehreinheit_id)."'"; - //echo $sql_query; - if($db->db_query($sql_query)) - { - - $num_rows = $db->db_num_rows(); - // Wenn kein ergebnis return 0 sonst ID - if ($num_rows>0) - { - $row = $db->db_fetch_object(); - return $row->mitarbeiter_uid; - } - else - return 0; - } - else - return 0; -} - function check_lektor_lehrveranstaltung($uid, $lehrveranstaltung_id, $studiensemester_kurzbz) { $db = new basis_db(); diff --git a/include/studiengang.class.php b/include/studiengang.class.php index 9c475e234..2697060e8 100644 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -75,7 +75,7 @@ class studiengang extends basis_db if(!is_null($studiengang_kz)) $this->load($studiengang_kz); - $this->getAllTypes(); + //$this->getAllTypes(); /* $this->studiengang_typ_arr["b"] = "Bachelor"; $this->studiengang_typ_arr["d"] = "Diplom"; $this->studiengang_typ_arr["m"] = "Master"; @@ -83,6 +83,19 @@ class studiengang extends basis_db $this->studiengang_typ_arr["e"] = "Erhalter"; */ } + public function __get($value) + { + switch($value) + { + case 'studiengang_typ_arr': + if(count($this->studiengang_typ_arr)==0) + { + $this->getAllTypes(); + } + } + return $this->$value; + } + /** * Laedt einen Studiengang * @param studiengang_kz KZ des Studienganges der zu Laden ist diff --git a/include/zeugnisnote.class.php b/include/zeugnisnote.class.php index dc3e473d9..d0dc018d0 100644 --- a/include/zeugnisnote.class.php +++ b/include/zeugnisnote.class.php @@ -406,7 +406,7 @@ class zeugnisnote extends basis_db tbl_note.bezeichnung as note_bezeichnung, tbl_zeugnisnote.bemerkung, tbl_lehrveranstaltung.lvnr FROM lehre.tbl_lehrveranstaltung - LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND student_uid=".$this->db_add_param($student_uid).") + LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=".$this->db_add_param($student_uid)." AND tbl_zeugnisnote.studiensemester_kurzbz IN(".$stsem.")) LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id AND tbl_studienplan_lehrveranstaltung.studienplan_id=".$this->db_add_param($studienplan_id).") LEFT JOIN lehre.tbl_note USING(note) WHERE diff --git a/rdf/erfolgsnachweis.rdf.php b/rdf/erfolgsnachweis.rdf.php index 16b01c13a..68655a660 100755 --- a/rdf/erfolgsnachweis.rdf.php +++ b/rdf/erfolgsnachweis.rdf.php @@ -62,8 +62,8 @@ $db = new basis_db(); // Studienjahr ermitteln if(isset($_GET['ss'])) $studiensemester_kurzbz = $_GET['ss']; - else - $studiensemester_kurzbz = $semester_aktuell; + else + die('Parameter SS fehlt'); $studiensemester = new studiensemester(); $studiensemester_kurzbz2 = $studiensemester->getStudienjahrStudiensemester($studiensemester_kurzbz); @@ -109,8 +109,8 @@ $db = new basis_db(); $student_studienjahr = round($ausbildungssemester/2); - $jahr1=mb_substr($studiensemester_kurzbz,1); - $jahr2=mb_substr($studiensemester_kurzbz2,1); + $jahr1=mb_substr($studiensemester_kurzbz,2); + $jahr2=mb_substr($studiensemester_kurzbz2,2); $studienjahr = ($jahr1>$jahr2?$jahr2.'/'.$jahr1:$jahr1.'/'.$jahr2); $studiengang = new studiengang(); @@ -218,11 +218,20 @@ function getLVRow($obj) $wochen = $studienplan->semesterwochen; + $stsem_kurz = mb_substr($row->studiensemester_kurzbz,0,2); + if($stsem_kurz=='') + { + // Das Studiensemester kommt aus der Note, wenn keine Note vorhanden ist, + // wird SS und WS aufgrund der Semesterzuteilung der LV ermittelt + // TODO passt nicht wenn studiengang im Sommersemester startet + $stsem_kurz= ($row->studienplan_lehrveranstaltung_semester%2==0?'SS':'WS'); + } + $xml .= "\n "; $xml .= "\n "; $xml .= "\n "; $xml .= "\n ".$row->lehrveranstaltung_lvnr.""; - $xml .= "\n studiensemester_kurzbz,0,2)."]]>"; + $xml .= "\n "; $xml .= "\n studienplan_lehrveranstaltung_semester."]]>"; $xml .= "\n ".$note.""; $xml .= "\n ".($note_arr[$row->note]['positiv']?'Ja':'Nein').""; diff --git a/rdf/lehrveranstaltung_einheiten.rdf.php b/rdf/lehrveranstaltung_einheiten.rdf.php index 2dc682175..422e5c2f7 100644 --- a/rdf/lehrveranstaltung_einheiten.rdf.php +++ b/rdf/lehrveranstaltung_einheiten.rdf.php @@ -207,7 +207,7 @@ else { // Ohne die vom Studienplan, da diese sonst doppelt sind $qry.=" AND NOT EXISTS (SELECT 1 FROM lehre.tbl_studienplan_lehrveranstaltung where studienplan_id in (".$db->db_implode4SQL($stp_ids).") - AND lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id)"; + AND lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.aktiv)"; } //$qry = 'SELECT distinct on(lehrveranstaltung_id) * FROM ('.$qry.' ORDER BY studienplan_id DESC) a'; } diff --git a/system/.htaccess b/system/.htaccess index 7e837c991..ebdd0183a 100644 --- a/system/.htaccess +++ b/system/.htaccess @@ -1,10 +1,6 @@ AuthBasicProvider ldap -AuthName "Technikum-Wien" +AuthName "FHComplete" AuthType Basic -AuthBasicAuthoritative Off -AuthLDAPURL "ldap://ldap.technikum-wien.at:389/ou=People,dc=technikum-wien,dc=at?uid?one?objectclass=posixAccount" -#AuthLDAPURL "ldap://ldap.technikum-wien.at:389/ou=People,dc=technikum,dc=at?uid?sub?(objectClass=*)" -AuthLDAPGroupAttributeIsDN Off -AuthLDAPGroupAttribute memberuid -Require ldap-group cn=fhadmin,ou=Group,dc=technikum-wien,dc=at -require ldap-group cn=hadesadm,ou=Group,dc=technikum-wien,dc=at \ No newline at end of file +AuthBasicAuthoritative On +AuthLDAPURL "ldap://localhost:389/ou=People,dc=oesi,dc=org?cn" +Require valid-user diff --git a/system/checksystem.php b/system/checksystem.php index 1597d529b..3bdb7da4a 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -41,6 +41,64 @@ echo '

DB-Updates!

'; // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; +// **************** Spalte scrumsprint_id Tabelle fue.tbl_projekttask +if(!$result = @$db->db_query("SELECT scrumsprint_id FROM fue.tbl_projekttask LIMIT 1;")) +{ + $qry = 'ALTER TABLE fue.tbl_projekttask ADD COLUMN scrumsprint_id bigint; + CREATE TABLE fue.tbl_scrumteam + ( + scrumteam_kurzbz character varying(16) NOT NULL, + bezeichnung character varying(256), + punkteprosprint integer DEFAULT 160, + tasksprosprint integer DEFAULT 15, + gruppe_kurzbz character varying(32), + CONSTRAINT tbl_scrumteam_pkey PRIMARY KEY (scrumteam_kurzbz) + ) + WITH ( + OIDS=FALSE + ); + CREATE TABLE fue.tbl_scrumsprint + ( + + scrumsprint_id serial NOT NULL, + scrumteam_kurzbz character varying(16) NOT NULL, + sprint_kurzbz character varying(32), + sprintstart date, + sprintende date, + insertamum Timestamp DEFAULT now(), + insertvon Character varying(32), + updateamum Timestamp DEFAULT now(), + updatevon Character varying(32), + CONSTRAINT tbl_scrumsprint_pkey PRIMARY KEY (scrumsprint_id), + CONSTRAINT fk_scrumsprint_scrumteam FOREIGN KEY (scrumteam_kurzbz) + REFERENCES fue.tbl_scrumteam (scrumteam_kurzbz) MATCH SIMPLE + ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT uk_scrumteam_sprintkurzbz UNIQUE (scrumteam_kurzbz, sprint_kurzbz) + ) + WITH ( + OIDS=FALSE + ); + ALTER TABLE fue.tbl_projekttask + ADD CONSTRAINT fk_projekttask_scrumsprint FOREIGN KEY (scrumsprint_id) + REFERENCES fue.tbl_scrumsprint (scrumsprint_id) MATCH SIMPLE + ON UPDATE CASCADE ON DELETE RESTRICT; + '; + if(!$db->db_query($qry)) + echo 'fue.tbl_projekttask: '.$db->db_last_error().'
'; + else + echo ' fue.tbl_projekttask: Spalte scrumsprint_id hinzugefuegt!
'; +} + +// tbl_gruppe neues attribut zutrittssystem +if(!$result = @$db->db_query("SELECT zutrittssystem from public.tbl_gruppe LIMIT 1;")) +{ + $qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN zutrittssystem boolean NOT NULL DEFAULT false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_gruppe: '.$db->db_last_error().'
'; + else + echo 'public.tbl_gruppe: Spalte zutrittssystem hinzugefuegt'; +} // ** Studiengangsverwaltung // Tabelle Studienordnung @@ -1429,6 +1487,23 @@ if(!$result = @$db->db_query("SELECT pruefungsanmeldung_id FROM lehre.tbl_pruefu echo 'lehre.tbl_pruefung: Spalte pruefungsanmeldung_id hinzugefuegt'; } +// Indizes für Tabelle Reservierung +if($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_reservierung_datum'")) +{ + if($db->db_num_rows($result)==0) + { + + $qry = "CREATE INDEX idx_reservierung_datum ON campus.tbl_reservierung USING btree (datum); + CREATE INDEX idx_reservierung_ort ON campus.tbl_reservierung USING btree (ort_kurzbz); + CREATE INDEX idx_reservierung_stunde ON campus.tbl_reservierung USING btree (stunde);"; + + if(!$db->db_query($qry)) + echo 'Indizes: '.$db->db_last_error().'
'; + else + echo 'Diverse Indizes fuer Tabelle Reservierung hinzugefügt'; + } +} + echo '


'; $tabellen=array( diff --git a/system/xsl/FHB_erfolgsnachweis_0_v1.xsl b/system/xsl/FHB_erfolgsnachweis_0_v1.xsl index cb6a2a097..349b91521 100755 --- a/system/xsl/FHB_erfolgsnachweis_0_v1.xsl +++ b/system/xsl/FHB_erfolgsnachweis_0_v1.xsl @@ -274,6 +274,31 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + + + + + + + + + + + + + + + + + + + + + + + + + @@ -372,58 +397,36 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Legende: WS=Wintersemester, SS=Sommersemester, SWS=Semesterwochenstunden, LV-Art=Lehrveranstaltungsart, VO=Vorlesung, UE=Übung, BP=Praktikum, SE=Seminar, EX=Exkursion, PT=Projekt, AWPF=Wahlpflichtfach, RU=Rechenübung, ILV=integr. LV, LB=Laborübung, PS=Proseminar, WK=Workshop, WA=Wiss. Arbeit, WP=Wirtschaftspraktikum, MT=Managementtechniken, MODUL=gemeinsame Bewertung mehrerer Lehrveranstaltungen mit einer Modulnote - - 1 SWS=15 Lehrveranstaltungsstunden, m.E.tg.=mit Erfolg teilgenommen, o.E.tg.=ohne Erfolg teilgenommen - Nationale Beurteilung: 1=Sehr Gut, 2=Gut, 3=Befriedigend, 4=Genügend, 5=Nicht Genügend - Internationale Beurteilung (ECTS Notenskala): A/B=Sehr Gut, C=Gut, D=Befriedigend, E=Genügend, F=Nicht Genügend - - - Pinkafeld, am + Legende: WS=Wintersemester, SS=Sommersemester, SWS=Semesterwochenstunden, LV-Art=Lehrveranstaltungsart, VO=Vorlesung, UE=Übung, BP=Praktikum, SE=Seminar, EX=Exkursion, PT=Projekt, AWPF=Wahlpflichtfach, RU=Rechenübung, ILV=integr. LV, LB=Laborübung, PS=Proseminar, WK=Workshop, WA=Wiss. Arbeit, WP=Wirtschaftspraktikum, MT=Managementtechniken, MODUL=gemeinsame Bewertung mehrerer Lehrveranstaltungen mit einer Modulnote + + 1 SWS=15 Lehrveranstaltungsstunden, m.E.tg.=mit Erfolg teilgenommen, o.E.tg.=ohne Erfolg teilgenommen + Nationale Beurteilung: 1=Sehr Gut, 2=Gut, 3=Befriedigend, 4=Genügend, 5=Nicht Genügend + Internationale Beurteilung (ECTS Notenskala): A/B=Sehr Gut, C=Gut, D=Befriedigend, E=Genügend, F=Nicht Genügend + + + Pinkafeld, am + - + - + - + - Leitung Fachhochschul-Studiengang + Leitung Fachhochschul-Studiengang - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/system/xsl/FHB_erfolgsnachweis_head_0.xsl b/system/xsl/FHB_erfolgsnachweis_head_0.xsl index fc24224a8..f44a0aa24 100755 --- a/system/xsl/FHB_erfolgsnachweis_head_0.xsl +++ b/system/xsl/FHB_erfolgsnachweis_head_0.xsl @@ -205,7 +205,22 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Erfolgsnachweis - Fachhochschul-Masterstudiengang + + + + Fachhochschul-Bachelorstudiengang + + + Fachhochschul-Masterstudiengang + + + Fachhochschul-Studiengang + + + + + + Studienjahr diff --git a/vilesci/personen/import/interessentenimport.php b/vilesci/personen/import/interessentenimport.php index af419a9f3..38969931f 100644 --- a/vilesci/personen/import/interessentenimport.php +++ b/vilesci/personen/import/interessentenimport.php @@ -544,29 +544,6 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) } } -function clean_string($string) - { - $trans = array("ä" => "ae", - "Ä" => "Ae", - "ö" => "oe", - "Ö" => "Oe", - "ü" => "ue", - "Ü" => "Ue", - "á" => "a", - "à" => "a", - "é" => "e", - "è" => "e", - "ó" => "o", - "ò" => "o", - "í" => "i", - "ì" => "i", - "ù" => "u", - "ú" => "u", - "ß" => "ss"); - $string = strtr($string, $trans); - return ereg_replace("[^a-zA-Z0-9]", "", $string); - //[:space:] - } if($studiensemester_kurzbz == '') { diff --git a/vilesci/personen/incoming_detail.php b/vilesci/personen/incoming_detail.php index 538541776..61e17b095 100644 --- a/vilesci/personen/incoming_detail.php +++ b/vilesci/personen/incoming_detail.php @@ -336,13 +336,14 @@ if($method!='') $benutzer->uid = $uid; $benutzer->person_id = $inc->person_id; $benutzer->aktiv = true; + $benutzer->aktivierungscode=generateActivationKey(); $nachname_clean = mb_strtolower(convertProblemChars($person->nachname)); $vorname_clean = mb_strtolower(convertProblemChars($person->vorname)); $nachname_clean = str_replace(' ','_', $nachname_clean); $vorname_clean = str_replace(' ','_', $vorname_clean); - $qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias=LOWER('".$vorname_clean.".".$nachname_clean."')"; + $qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias=LOWER(".$db->db_add_param($vorname_clean.".".$nachname_clean).")"; $result_alias = $db->db_query($qry_alias); if($db->db_num_rows($result_alias)==0) $benutzer->alias =$vorname_clean.'.'.$nachname_clean; @@ -1125,7 +1126,7 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) $matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); - $qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1"; + $qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '".$db->db_escape($matrikelnummer)."%' ORDER BY matrikelnr DESC LIMIT 1"; if($db->db_query($qry)) { @@ -1144,30 +1145,4 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) return false; } } - -function clean_string($string) - { - $trans = array("ä" => "ae", - "Ä" => "Ae", - "ö" => "oe", - "Ö" => "Oe", - "ü" => "ue", - "Ü" => "Ue", - "á" => "a", - "à" => "a", - "é" => "e", - "è" => "e", - "ó" => "o", - "ò" => "o", - "í" => "i", - "ì" => "i", - "ù" => "u", - "ú" => "u", - "ß" => "ss"); - $string = strtr($string, $trans); - return ereg_replace("[^a-zA-Z0-9]", "", $string); - //[:space:] - } - - -?> \ No newline at end of file +?>