This commit is contained in:
kindlm
2015-04-10 15:53:11 +02:00
42 changed files with 5875 additions and 4806 deletions
+4 -1
View File
@@ -533,8 +533,10 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em
else
{
// Lageplan
if(defined('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN') && CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN)
{
echo '
<tr class="cursor_hand">
<tr class="cursor_hand">
<td>
<a href="'.htmlspecialchars($_SERVER['PHP_SELF']).'?work=lageplan&amp;standort_id='.$standort_id.'">
<span class="blau_mitteText">
@@ -543,6 +545,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em
</a>
</td>
</tr>';
}
}
echo '<tr><td>&nbsp;</td></tr>';
@@ -25,56 +25,61 @@
* @create 20-03-2006
* Aufruf: zipdownload.php?stg=255&sem=1$short=eng
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
$user = get_uid();
$user = get_uid();
//Gueltigkeit der Parameter pruefen
if(!isset($_GET['uebung_id']) || !is_numeric($_GET['uebung_id']))
{
die('Fehler bei der Parameteruebergabe');
}
if(!isset($_GET['lehreinheit_id']) || !is_numeric($_GET['lehreinheit_id']))
{
die('Fehler bei der Parameteruebergabe');
}
if(!isset($_GET['stsem']))
{
die('Fehler bei der Parameteruebergabe');
}
if(!isset($_GET['downloadname']))
{
die('Fehler bei der Parameteruebergabe');
}
if(!check_lektor($user))
die('Sie haben keine Berechtigung fuer diese Seite');
$uebung_id = $_GET['uebung_id'];
$lehreinheit_id = $_GET['lehreinheit_id'];
$stsem = $_GET['stsem'];
$downloadname = $_GET['downloadname'];
//Gueltigkeit der Parameter pruefen
if(!isset($_GET['uebung_id']) || !is_numeric($_GET['uebung_id']))
{
die('Fehler bei der Parameteruebergabe');
}
if(!isset($_GET['lehreinheit_id']) || !is_numeric($_GET['lehreinheit_id']))
{
die('Fehler bei der Parameteruebergabe');
}
if(!isset($_GET['stsem']))
{
die('Fehler bei der Parameteruebergabe');
}
if(!isset($_GET['downloadname']))
{
die('Fehler bei der Parameteruebergabe');
}
//Pfade bauen
$pfad = BENOTUNGSTOOL_PATH.'abgabe/';
$filename = 'download_'.$user.'_'.$downloadname.'.zip';
//Pfad wechseln
chdir($pfad);
//File loeschen falls es existiert
//if(file_exists("download_".$user."*"))
exec("rm download_".$user."*");
//Zip File erstellen
exec("zip -r ".$filename." *_[WS]S[0-9][0-9][0-9][0-9]_".$uebung_id."_*");
$uebung_id = $_GET['uebung_id'];
$lehreinheit_id = $_GET['lehreinheit_id'];
$stsem = $_GET['stsem'];
$downloadname = $_GET['downloadname'];
//Auf Zip File Verweisen
//header("Location: $pfad$filename");
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="'.$filename.'"');
readfile($filename);
unlink($filename);
?>
if(mb_strstr($downloadname,'..'))
die('Ungueltiger Parameter gefunden');
//Pfade bauen
$pfad = BENOTUNGSTOOL_PATH.'abgabe/';
$filename = 'download_'.$user.'_'.$downloadname.'.zip';
if(!check_filename($filename))
die('Ungueltiger Parameter gefunden');
//Pfad wechseln
chdir($pfad);
//File loeschen falls es existiert
//if(file_exists("download_".$user."*"))
exec('rm download_'.$user.'*');
//Zip File erstellen
exec("zip -r ".escapeshellarg($filename).' *_[WS]S[0-9][0-9][0-9][0-9]_'.$uebung_id.'_*');
//Auf Zip File Verweisen
//header("Location: $pfad$filename");
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="'.$filename.'"');
readfile($filename);
unlink($filename);
?>
+32 -1
View File
@@ -92,11 +92,42 @@ if (isset($_GET["handbuch"])){
readfile($filename);
exit;
}
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
?><!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<link href="../../../skin/jquery.css" rel="stylesheet" type="text/css"/>
<script src="../../../include/js/jquery1.9.min.js" type="text/javascript" ></script>
<?php
// ADDONS laden
$addon_obj = new addon();
$addon_obj->loadAddons();
foreach($addon_obj->result as $addon)
{
if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php'))
echo '<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php" ></script>';
}
// Wenn Seite fertig geladen ist Addons aufrufen
echo '
<script>
$( document ).ready(function()
{
if(typeof addon !== \'undefined\')
{
for(i in addon)
{
addon[i].init("cis/private/lehre/lesson.php", {uid:\''.$user.'\',lvid:\''.$lvid.'\',studiensemester_kurzbz:\''.$studiensemester_kurzbz.'\'});
}
}
});
</script>
';
?>
<style type="text/css">
.transparent {
filter:alpha(opacity=90);
+36 -8
View File
@@ -453,9 +453,14 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
*/
function saveAnmeldung(lehrveranstaltung_id, termin_id)
{
var lehrveranstaltung_id = $("#lehrveranstaltungHidden").val();
var termin_id = $("#terminHidden").val();
var uid = $("#anmeldung_hinzufuegen_uid").val();
if(lehrveranstaltung_id === undefined)
lehrveranstaltung_id = $("#lehrveranstaltungHidden").val();
if(termin_id === undefined)
termin_id = $("#terminHidden").val();
var bemerkungen = $("#anmeldungBemerkung").val();
if(bemerkungen === undefined)
bemerkungen = "von Lektor hinzugefügt";
$.ajax({
dataType: 'json',
@@ -465,7 +470,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
method: "saveAnmeldung",
termin_id: termin_id,
lehrveranstaltung_id: lehrveranstaltung_id,
bemerkung: bemerkungen
bemerkung: bemerkungen,
uid: uid
},
error: loadError
}).success(function(data){
@@ -480,7 +486,17 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
resetForm();
}).complete(function(event, xhr, settings){
$("#saveDialog").dialog("close");
refresh();
if(uid === undefined)
{
//Wenn Anmeldung durch Student
refresh();
}
else
{
//Wenn Anmeldung durch Lektor
showAnmeldungen(termin_id, lehrveranstaltung_id);
}
});
}
@@ -653,6 +669,7 @@ function writeAnmeldungen(data)
var ort_kurzbz = data.result.ort_kurzbz;
var liste = "<ul id='sortable'>";
var count = 0;
var studiensemester = $("#filter_studiensemester option:selected").val();
data.result.anmeldungen.forEach(function(d){
count++;
var vorname = d.student.vorname !== "null" ? d.student.vorname : "";
@@ -683,8 +700,10 @@ function writeAnmeldungen(data)
});
liste += "</ul>";
$("#anmeldung_hinzufuegen").html("<input id='anmeldung_hinzufuegen_uid' type='text' placeholder='StudentIn-UID' /><input type='button' value='hinzufügen' onclick='saveAnmeldung(\""+lehrveranstaltung_id+"\",\""+terminId+"\");'/>");
$("#reihungSpeichernButton").html("<input type='button' value='Reihung speichern' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
$("#anmeldeDaten").html(liste);
$("#listeDrucken").html("<a href='./pruefungsanmeldungen_liste.php?termin_id="+terminId+"&lehrveranstaltung_id="+lehrveranstaltung_id+"&studiensemester="+studiensemester+"' target='_blank'>Liste drucken</a>");
if(ort_kurzbz !== null)
{
$("#raumLink").html("<span>Prüfungsraum: </span>"+ort_kurzbz);
@@ -829,11 +848,12 @@ function loadStudiengaenge()
$("#stgListe").empty();
if(data.error === 'false')
{
var liste = "";
var liste = "<select id='select_studiengang' onchange='loadPruefungStudiengang();'><option>Studiengang auswählen</option>";
data.result.forEach(function(e){
var kuerzel = e.typ+e.kurzbz
liste += "<li id='stg"+e.studiengang_kz+"'><span class='studiengang'><a href='#' onclick='loadPruefungStudiengang(\""+e.studiengang_kz+"\");'>"+e.bezeichnung+" ("+kuerzel.toUpperCase()+")</a></span></li>";
liste += "<option id='stg"+e.studiengang_kz+"' value='"+e.studiengang_kz+"'>"+e.bezeichnung+" ("+kuerzel.toUpperCase()+")</option>";
});
liste += "</select>";
$("#stgListe").append(liste);
}
else
@@ -848,15 +868,22 @@ function loadStudiengaenge()
* @param {type} studiengang_kz Studiengangskennzahl
* @returns {undefined}
*/
function loadPruefungStudiengang(studiengang_kz)
function loadPruefungStudiengang(studiengang_kz, studiensemester)
{
if(studiengang_kz === undefined)
studiengang_kz = $("#select_studiengang option:selected").val();
if(studiensemester === undefined)
studiensemester = $("#filter_studiensemester option:selected").val();
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getPruefungenStudiengang",
studiengang_kz: studiengang_kz
studiengang_kz: studiengang_kz,
studiensemester: studiensemester
},
error: loadError
}).success(function(data){
@@ -867,6 +894,7 @@ function loadPruefungStudiengang(studiengang_kz)
{
var liste = "";
data.result.forEach(function(e){
console.log(e);
liste += "<ul><li>"+e.bezeichnung+"<ul>";
e.pruefung[0].termine.forEach(function(d){
liste += "<li> <a onclick='showAnmeldungen(\""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\");'>"+convertDateTime(d.von)+" "+convertDateTime(d.von, "time")+" - "+convertDateTime(d.bis, "time")+"</a></li>";
File diff suppressed because it is too large Load Diff
@@ -32,6 +32,9 @@ require_once('../../../../include/student.class.php');
$uid = get_uid();
//TODO uid entfernen
$uid="p20132443";
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
@@ -0,0 +1,264 @@
<!DOCTYPE html>
<?php
/*
* Copyright 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <[email protected]>
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/pruefungsanmeldung.class.php');
require_once('../../../../include/pruefungCis.class.php');
require_once('../../../../include/pruefungstermin.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/lehrveranstaltung.class.php');
require_once('../../../../include/mitarbeiter.class.php');
require_once('../../../../include/student.class.php');
require_once('../../../../include/datum.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
?>
<html moznomarginboxes="">
<head>
<meta charset="UTF-8">
<script src="../../../../include/js/jquery1.9.min.js"></script>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
-moz-box-sizing: border-box;
}
#page {
width: 210mm;
min-height: 297mm;
padding: 20mm;
margin: 10mm auto;
border: 1px #D3D3D3 solid;
border-radius: 5px;
background: white;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
font-family: Arial, Helvetica;
}
#subpage {
padding: 10mm;
border: 1px black solid;
height: 256mm;
outline: 20mm
}
#liste {
border: 1px solid black;
border-collapse: collapse;
width: 100%;
margin-top: 5mm;
font-size: 11pt;
}
h1 {
text-align: center;
}
.bold {
font-weight: bold;
}
td {
border: 1px solid black;
padding: 1mm;
}
th {
border: 1px solid black;
}
thead > tr {
background-color: white !important;
}
tr:nth-child(odd){
background-color: lightgrey;
}
span {
line-height: 16pt;
font-size: 12pt;
}
@page {
size: A4;
margin: 0;
}
@media print {
html, body {
width: 210mm;
height: 250mm;
}
#page {
margin: 0;
border: initial;
border-radius: initial;
width: initial;
min-height: initial;
box-shadow: initial;
background: initial;
page-break-after: auto;
}
/*
* Workaround um beim Drucken jede zweite Zeile der Tabelle
* grau darzustellen. Standardmäßig werden von Browsern keine
* Hintergrundfarben gedruckt.
*/
tr:nth-child(odd) > td{
box-shadow: inset 0 0 0 1000px lightgrey;
}
//Veranlasst Chrome Hintergrundfarben zu drucken
body{
-webkit-print-color-adjust:exact;
background-color: #FFFFFF;
margin: 0;
}
//Anweisungen nur für Firefox
@-moz-document url-prefix() {
html, body {
height: 280mm;
}
}
@-moz-document url-prefix() {
#page {
padding: 15mm 25mm 25mm 15mm !important;
}
}
}
</style>
</head>
<body>
<script>
$(document).ready(function(){
window.print();
});
</script>
<div id="page">
<div id="subpage">
<h1>Anmeldungsliste</h1>
<?php
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
die('Sie haben keine Berechtigung für diese Seite');
$termin_id = filter_input(INPUT_GET,"termin_id");
$lehrveranstaltung_id = filter_input(INPUT_GET,"lehrveranstaltung_id");
$studiensemester = filter_input(INPUT_GET, "studiensemester");
if(is_null($lehrveranstaltung_id))
{
die('Fehlender Parameter lehrveranstaltung_id');
}
else if(is_null($termin_id))
{
die('Fehlender Parameter termin_id');
}
else if(is_null($studiensemester))
{
die('Fehlender Parameter studiensemester');
}
else
{
$datum = new datum();
$stdsem = new studiensemester($studiensemester);
$pruefungsanmeldung = new pruefungsanmeldung();
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt");
$lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id);
$einzeln = FALSE;
if(!empty($anmeldungen))
{
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
if($pruefung->einzeln)
{
$einzeln = TRUE;
$pruefungsintervall = $pruefung->pruefungsintervall;
}
}
?>
<span class="bold">Lehrveranstaltung: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
<span class="bold">Studiensemester: </span><span><?=$stdsem->bezeichnung?></span><br/>
<span class="bold">Prüfer: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
<table id="liste">
<thead>
<tr>
<th>#</th>
<th>Vorname</th>
<th>Nachname</th>
<th>Matrikelnummer</th>
<th>Datum</th>
</tr>
</thead>
<tbody>
<?php
$count = 0;
/*@var $anmeldung pruefungsanmeldung */
foreach($anmeldungen as $anmeldung)
{
$student = new student($anmeldung->uid);
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
if($einzeln)
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
$date = $date+(60*$pruefungsintervall*($count));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("h:i",$date);
$count++;
}
else
{
$date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i");
}
echo '<tr>';
echo '<td>'.$anmeldung->reihung.'</td>';
echo '<td>'.$student->vorname.'</td>';
echo '<td>'.$student->nachname.'</td>';
echo '<td>'.$student->matrikelnr.'</td>';
echo '<td>'.$date.'</td>';
echo '</tr>';
}
?>
</tbody>
<?php
}
?>
</table>
</div>
</div>
</body>
</html>
@@ -1,269 +1,306 @@
<!DOCTYPE html>
<?php
/*
* Copyright 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <[email protected]>
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/pruefungCis.class.php');
require_once('../../../../include/studiensemester.class.php');
$uid = get_uid();
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$studiensemester = new studiensemester();
$pruefung = new pruefungCis();
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
die('Sie haben keine Berechtigung für diese Seite');
?>
<html>
<head>
<meta charset="UTF-8">
<title>Prüfungsanmeldung Verwaltung</title>
<script src="../../../../include/js/datecheck.js"></script>
<script src="../../../../include/js/jquery1.9.min.js"></script>
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
<script src="./pruefung.js"></script>
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
<link rel="stylesheet" href="../../../../skin/style.css.php">
<link rel="stylesheet" href="../../../../skin/tablesort.css">
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<style type="text/css">
body {
padding: 10px 0 0 10px;
}
#stgWrapper {
position: absolute;
height: 80%;
width: 450px;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#studiengaenge {
/*border: 1px solid black;*/
width: 94%;
position: relative;
float: left;
padding: 0 1em 0em 1em;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#prfWrapper {
position: absolute;
height: 80%;
width: 200px;
left: 510px;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#pruefungen {
/*border: 1px solid black;*/
width: 94%;
position: relative;
float: left;
padding: 0 1em 0em 1em;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#anmWrapper {
position: absolute;
/*top: 45px;*/
left: 760px;
width: 400px;
height: 80%;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#anmeldungen {
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#anmeldungen > * {
padding: 0.5em;
}
#raum > * {
margin-bottom: 0.5em;
}
#message {
position: fixed;
bottom: 0px;
width: 100%;
height: 2em;
font-size: 1.5em;
font-weight: bold;
}
#sortable {
list-style-type: none;
margin: 0;
padding: 0;
width: 100%;
}
#sortable li {
margin: 0 3px 3px 3px;
padding: 0.2em 0.4em 0.4em;
padding-left: 1.5em;
font-size: 1.4em;
height: 18px;
list-style-image: none;
display: block;
}
#sortable li span {
/*position: absolute;*/
margin-left: -1.3em;
float:left;
}
.resultOK {
color: green;
}
.resultNotOK {
color: red;
}
#sortable li a {
float: left;
}
#sortable li div {
float: right;
margin-left: 5px;
font-size: 0.8em;
}
.anmerkungInfo {
text-align: right;
width: 10%;
}
#progressbar {
position: fixed;
width: 300px;
top: 30%;
left: 50%;
margin-left: -150px;
z-index: 100;
background: '#9CFF29';
}
.modalOverlay {
position: fixed;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
}
.studiengang {
font-size: 1em;
font-weight: bold;
}
</style>
</head>
<body>
<script>
$(document).ready(function(){
loadStudiengaenge();
$("#raumDialog").dialog({
modal: true,
autoOpen: false,
width: "400px"
});
});
</script>
<h1>Anmeldungen Verwalten</h1>
<div id='stgWrapper'>
<div id='studiengaenge'>
<h2>Studiengänge</h2>
<ul id='stgListe'>
</ul>
</div>
</div>
<div id='prfWrapper'>
<div id='pruefungen'>
<h2>Prüfungen</h2>
<ul id="pruefungenListe">
</ul>
</div>
</div>
<div id='anmWrapper'>
<div id="anmeldungen">
<h2>Anmeldungen</h2>
<div id="anmeldeDaten">
</div>
<div id="reihungSpeichernButton">
</div>
<div id="kommentar">
</div>
<div id="kommentarSpeichernButton">
</div>
<div id="raumLink">
</div>
<div id="raumDialog">
<div id="raum">
</div>
<div id="raumSpeichernButton">
</div>
</div>
</div>
</div>
<div id="message"></div>
<div id="progressbar"></div>
</body>
</html>
<!DOCTYPE html>
<?php
/*
* Copyright 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <[email protected]>
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/pruefungCis.class.php');
require_once('../../../../include/studiensemester.class.php');
$uid = get_uid();
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$studiensemester = new studiensemester();
$pruefung = new pruefungCis();
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
die('Sie haben keine Berechtigung für diese Seite');
?>
<html>
<head>
<meta charset="UTF-8">
<title>Prüfungsanmeldung Verwaltung</title>
<script src="../../../../include/js/datecheck.js"></script>
<script src="../../../../include/js/jquery1.9.min.js"></script>
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
<script src="./pruefung.js"></script>
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
<link rel="stylesheet" href="../../../../skin/style.css.php">
<link rel="stylesheet" href="../../../../skin/tablesort.css">
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<style type="text/css">
body {
padding: 10px 0 0 10px;
}
#stgWrapper {
position: absolute;
height: 70px;
width: 850px;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#studiengaenge {
/*border: 1px solid black;*/
width: 94%;
position: relative;
float: left;
padding: 0 1em 0em 1em;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#prfWrapper {
position: absolute;
height: 70%;
width: 300px;
top: 180px;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#pruefungen {
/*border: 1px solid black;*/
width: 94%;
position: relative;
float: left;
padding: 0 1em 0em 1em;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#anmWrapper {
position: absolute;
/*top: 45px;*/
left: 350px;
top: 180px;
width: 500px;
height: 70%;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#anmeldungen {
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#anmeldungen > * {
padding: 0.5em;
}
#raum > * {
margin-bottom: 0.5em;
}
#message {
position: fixed;
bottom: 0px;
width: 100%;
height: 2em;
font-size: 1.5em;
font-weight: bold;
}
#sortable {
list-style-type: none;
margin: 0;
padding: 0;
width: 100%;
}
#sortable li {
margin: 0 3px 3px 3px;
padding: 0.2em 0.4em 0.4em;
padding-left: 1.5em;
font-size: 1.4em;
height: 18px;
list-style-image: none;
display: block;
}
#sortable li span {
/*position: absolute;*/
margin-left: -1.3em;
float:left;
}
.resultOK {
color: green;
}
.resultNotOK {
color: red;
}
#sortable li a {
float: left;
}
#sortable li div {
float: right;
margin-left: 5px;
font-size: 0.8em;
}
.anmerkungInfo {
text-align: right;
width: 10%;
}
#progressbar {
position: fixed;
width: 300px;
top: 30%;
left: 50%;
margin-left: -150px;
z-index: 100;
background: '#9CFF29';
}
.modalOverlay {
position: fixed;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
}
.studiengang {
font-size: 1em;
font-weight: bold;
}
#studiengaenge > div {
float: left;
width: 50%;
}
</style>
</head>
<body>
<script>
$(document).ready(function(){
loadStudiengaenge();
$("#filter_studiensemester").css("visibility","visible");
console.log($("#filter_studiensemester"));
$("#raumDialog").dialog({
modal: true,
autoOpen: false,
width: "400px"
});
});
</script>
<h1>Anmeldungen Verwalten</h1>
<div id='stgWrapper'>
<div id='studiengaenge'>
<div>
<h2>Studiengänge</h2>
<div id='stgListe'>
</div>
</div>
<div>
<h2>Studiensemester</h2>
<?php
echo '<select id="filter_studiensemester" onchange="loadPruefungStudiengang();" style="visibility: hidden;">';
$aktuellesSemester = $studiensemester->getaktorNext();
$studiensemester->getAll();
foreach($studiensemester->studiensemester as $sem)
{
/*@var $sem studiensemester */
if($aktuellesSemester == $sem->studiensemester_kurzbz)
{
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
}
else
{
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
}
}
echo '</select></p>';
?>
</div>
</div>
</div>
<div id='prfWrapper'>
<div id='pruefungen'>
<h2>Prüfungen</h2>
<ul id="pruefungenListe">
</ul>
</div>
</div>
<div id='anmWrapper'>
<div id="anmeldungen">
<h2>Anmeldungen</h2>
<div id="anmeldung_hinzufuegen">
</div>
<div id="anmeldeDaten">
</div>
<div id="reihungSpeichernButton">
</div>
<div id="kommentar">
</div>
<div id="kommentarSpeichernButton">
</div>
<div id="raumLink">
</div>
<div id="listeDrucken">
</div>
<div id="raumDialog">
<div id="raum">
</div>
<div id="raumSpeichernButton">
</div>
</div>
</div>
</div>
<div id="message"></div>
<div id="progressbar"></div>
</body>
</html>
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -102,7 +102,7 @@ $openpath = DOC_ROOT.'/documents/'.strtolower($stg_obj->kuerzel).'/'.$lv_obj->se
if(is_file($openpath . $inhalt))
{
writeCISlog('DELETE', "rm -r '$openpath$inhalt'");
exec("rm -r '$openpath$inhalt'");
exec("rm -r ".escapeshellarg($openpath.$inhalt));
echo '<center>'.$p->t('global/erfolgreichgelöscht').'</center>';
}
else
@@ -132,11 +132,11 @@ $openpath = DOC_ROOT.'/documents/'.strtolower($stg_obj->kuerzel).'/'.$lv_obj->se
{
if(!stristr($fn, '.php') && !stristr($fn, '.php3') &&
!stristr($fn,'.php4') && !stristr($fn, '.php5') &&
!stristr($fn, '.cgi') && !stristr($fn, '.pl'))
!stristr($fn, '.cgi') && !stristr($fn, '.pl') && !stristr($fn, '.phtml'))
{
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$openpath . $fn))
{
exec('sudo chown www-data:teacher "'.$openpath.$fn.'"');
exec('sudo chown www-data:teacher '.escapeshellarg($openpath.$fn));
echo '<center>'.$p->t('semesterplan/fileErfolgreichHochgeladen').'</center>';
}
else
@@ -181,4 +181,4 @@ $openpath = DOC_ROOT.'/documents/'.strtolower($stg_obj->kuerzel).'/'.$lv_obj->se
?>
</table>
</body>
</html>
</html>
+5 -5
View File
@@ -623,7 +623,7 @@
}
else
{
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && $file_name!='.htaccess')
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && !stristr($uploadfile, '.phtml') && $file_name!='.htaccess')
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
@@ -646,7 +646,7 @@
}
else
{
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && $file_name!='.htaccess')
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && !stristr($uploadfile, '.phtml') && $file_name!='.htaccess')
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
@@ -679,7 +679,7 @@
}
else
{
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && $file_name!='.htaccess')
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && !stristr($uploadfile, '.phtml') && $file_name!='.htaccess')
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
@@ -702,7 +702,7 @@
}
else
{
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && $file_name!='.htaccess')
if(!stristr($uploadfile, '.php') && !stristr($uploadfile, '.cgi') && !stristr($uploadfile, '.pl') && !stristr($uploadfile, '.phtml') && $file_name!='.htaccess')
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
@@ -1331,7 +1331,7 @@
{
if(!@file_exists($dest_dir->path.'/'.$new_file_name_) && !@is_dir($dest_dir->path.'/'.$new_file_name_))
{
if(!stristr($new_file_name_, '.php') && !stristr($new_file_name_, '.cgi') && !stristr($new_file_name_, '.pl') && $new_file_name_!='.htaccess')
if(!stristr($new_file_name_, '.php') && !stristr($new_file_name_, '.cgi') && !stristr($new_file_name_, '.pl') && !stristr($new_file_name_, '.phtml') && $new_file_name_!='.htaccess')
{
rename($dest_dir->path.'/'.$entry, $dest_dir->path.'/'.$new_file_name_);
+221 -49
View File
@@ -33,6 +33,7 @@ require_once('../../include/akte.class.php');
require_once('../../include/konto.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/vorlage.class.php');
require_once('../../include/addon.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -89,31 +90,34 @@ if(isset($_GET['abschlusspruefung_id']))
$params.='&abschlusspruefung_id='.$_GET['abschlusspruefung_id'];
if(isset($_GET['typ']))
$params.='&typ='.$_GET['typ'];
if(isset($_GET['output']))
$output=$_GET['output'];
else
$output='pdf';
$konto = new konto();
if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
{
if($xsl=='Inskription' && (!$konto->checkStudienbeitrag($user, $_GET["ss"])))
die('Der Studienbeitrag wurde noch nicht bezahlt');
if(($xsl=='Inskription' || $xsl == 'Studienblatt') && (!$konto->checkStudienbeitrag($user, $_GET["ss"])))
die('Der Studienbeitrag wurde noch nicht bezahlt');
if(isset($_GET['buchungsnummern']))
{
//Beim Drucken von Buchungsbestaetigungen pruefen ob diese Buchungen auch zu diesem Benutzer gehoeren
$buchungsnr = explode(';',$_GET['buchungsnummern']);
$user_obj = new benutzer();
$user_obj->load($user);
foreach($buchungsnr as $bnr)
//Beim Drucken von Buchungsbestaetigungen pruefen ob diese Buchungen auch zu diesem Benutzer gehoeren
$buchungsnr = explode(';',$_GET['buchungsnummern']);
$user_obj = new benutzer();
$user_obj->load($user);
foreach($buchungsnr as $bnr)
{
if($bnr!='')
{
if($bnr!='')
{
$konto->load($bnr);
if($konto->person_id!=$user_obj->person_id)
die('Sie haben keine Berechtigung fuer diese Buchung');
if($konto->getDifferenz($bnr)!=0)
die('Diese Zahlung wurde noch nicht beglichen');
}
$konto->load($bnr);
if($konto->person_id!=$user_obj->person_id)
die('Sie haben keine Berechtigung fuer diese Buchung');
if($konto->getDifferenz($bnr)!=0)
die('Diese Zahlung wurde noch nicht beglichen');
}
}
}
$xml_url=XML_ROOT.$xml.$params;
//echo $xml_url;
@@ -134,49 +138,217 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
{
if($xsl_stg_kz=='')
$xsl_stg_kz='0';
$vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version);
}
// Load the XSL source
$xsl_doc = new DOMDocument;
if(!$xsl_doc->loadXML($vorlage->text))
die('unable to load xsl');
// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl_doc); // attach the xsl rules
$buffer = $proc->transformToXml($xml_doc);
//in $buffer steht nun das xsl-fo file mit den daten
$buffer = '<?xml version="1.0" encoding="utf-8" ?>'.substr($buffer, strpos($buffer,"\n"),strlen($buffer));
//Pdf erstellen
$fo2pdf = new XslFo2Pdf();
//wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen
$nachname='';
if(mb_strstr($vorlage->mimetype, 'application/vnd.oasis.opendocument'))
{
switch($vorlage->mimetype)
{
case 'application/vnd.oasis.opendocument.text':
$endung = 'odt';
break;
case 'application/vnd.oasis.opendocument.spreadsheet':
$endung = 'ods';
break;
default:
$endung = 'pdf';
}
// Load the XSL source
$xsl_doc = new DOMDocument;
if(!$xsl_doc->loadXML($vorlage->text))
die('unable to load xsl');
// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl_doc); // attach the xsl rules
$buffer = $proc->transformToXml($xml_doc);
//echo $buffer;
//exit;
$tempfolder = '/tmp/'.uniqid();
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);
}
$vorlage_found=false;
$addons = new addon();
foreach($addons->aktive_addons as $addon)
{
$zipfile = DOC_ROOT.'addons/'.$addon.'/system/vorlage_zip/'.$vorlage->vorlage_kurzbz.'.'.$endung;
if(file_exists($zipfile))
{
$vorlage_found=true;
break;
}
}
if(!$vorlage_found)
$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($vorlage->bezeichnung!='')
$filename = $vorlage->bezeichnung;
else
$filename = $vorlage->vorlage_kurzbz;
if($output == 'pdf')
{
if($xsl == 'LV_Informationen')
{
$studiengang = new studiengang($_GET['stg_kz']);
$studiensemester = new studiensemester($_GET['ss']);
$tempPdfName = $vorlage->vorlage_kurzbz.'_'.$studiengang->kurzbzlang.'_'.$studiensemester->studiensemester_kurzbz.'.pdf';
$filename = $filename.'_'.$studiengang->kurzbzlang.'_'.$studiensemester->studiensemester_kurzbz.'.pdf';
}
elseif($xsl == "Honorarvertrag")
{
$tempPdfName = $vorlage->vorlage_kurzbz.'_'.$benutzer_obj->nachname.'_'.$benutzer_obj->vorname.'.pdf';
$filename = $filename.'_'.$benutzer_obj->nachname.'_'.$benutzer_obj->vorname.'.pdf';
}
elseif($xsl == "Studienordnung")
{
$studienordnung = new studienordnung();
$studienordnung->loadStudienordnung($_GET['studienordnung_id']);
$filename = $filename.'_'.$studienordnung->studiengangkurzbzlang.'.pdf';
$tempPdfName = $vorlage->vorlage_kurzbz.'.pdf';
}
else
{
$tempPdfName = $vorlage->vorlage_kurzbz.'.pdf';
$filename = $filename.'.pdf';
}
exec("unoconv -e IsSkipEmptyPages=false --stdout -f pdf $tempname_zip > $tempPdfName");
$fsize = filesize($tempPdfName);
$handle = fopen($tempPdfName,'r');
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Length: '.$fsize);
}
else if($output =='odt')
{
if($xsl == "Studienordnung")
{
$studienordnung = new studienordnung();
$studienordnung->loadStudienordnung($_GET['studienordnung_id']);
$filename = $filename.'_'.$studienordnung->studiengangkurzbzlang;
}
$fsize = filesize($tempname_zip);
$handle = fopen($tempname_zip,'r');
header('Content-type: '.$vorlage->mimetype);
header('Content-Disposition: attachment; filename="'.$filename.'.'.$endung.'"');
header('Content-Length: '.$fsize);
}
else if($output =='doc')
{
$tempPdfName = $vorlage->vorlage_kurzbz.'.doc';
if($xsl == "Studienordnung")
{
$studienordnung = new studienordnung();
$studienordnung->loadStudienordnung($_GET['studienordnung_id']);
$filename = $filename.'_'.$studienordnung->studiengangkurzbzlang.'.doc';
}
else
{
$filename = $filename.'.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="'.$filename.'"');
header('Content-Length: '.$fsize);
}
while (!feof($handle))
{
echo fread($handle, 8192);
}
fclose($handle);
unlink('content.xml');
if(isset($_GET['style_xsl']))
unlink('styles.xml');
unlink($tempname_zip);
if($output=='pdf' || $output=='doc')
unlink($filename);
rmdir($tempfolder);
}
}
else
{
// Load the XSL source
$xsl_doc = new DOMDocument;
if(!$xsl_doc->loadXML($vorlage->text))
die('unable to load xsl');
// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl_doc); // attach the xsl rules
$buffer = $proc->transformToXml($xml_doc);
//in $buffer steht nun das xsl-fo file mit den daten
$buffer = '<?xml version="1.0" encoding="utf-8" ?>'.substr($buffer, strpos($buffer,"\n"),strlen($buffer));
//Pdf erstellen
$fo2pdf = new XslFo2Pdf();
//wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen
$nachname='';
if(isset($_GET['uid']) && $_GET['uid']!='')
{
if(isset($_GET['uid']) && $_GET['uid']!='')
{
$uid = str_replace(';','',$_GET['uid']);
$qry = "SELECT nachname FROM campus.vw_benutzer WHERE uid=".$db->db_add_param($uid);
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$nachname = '_'.$row->nachname;
}
if($row = $db->db_fetch_object($result))
{
$nachname = '_'.$row->nachname;
}
}
}
$filename=$xsl.$nachname;
if (!$fo2pdf->generatePdf($buffer, $filename, "D"))
{
}
$filename=$xsl.$nachname;
if (!$fo2pdf->generatePdf($buffer, $filename, "D"))
{
echo('Failed to generate PDF');
}
}
}
else
+14
View File
@@ -135,6 +135,7 @@ echo $p->t('global/studiensemester')."</b> <SELECT name='stsem' onChange=\"MM_ju
echo "</SELECT><br />";
$konto = new konto();
if ($konto->checkStudienbeitrag($uid, $stsem))
{
echo "<a href='../pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=".$stsem."&uid=".$uid."&xsl_stg_kz=".$xsl_stg_kz."'>".$p->t('tools/inskriptionsbestaetigung')."</a>";
@@ -145,6 +146,19 @@ else
echo "<hr>";
if(defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN)
{
if ($konto->checkStudienbeitrag($uid, $stsem))
{
echo "<a href='../pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=".$stsem."&uid=".$uid."'>".$p->t('tools/studienbuchblatt')."</a>";
echo ' - '.$p->t('tools/studienbeitragFuerSSBezahltAmDatum',array($stsem, $konto->buchungsdatum));
}
else
echo $p->t('tools/studienbuchblatt')." - ".$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem));
echo "<hr>";
}
echo "<a href='studienerfolgsbestaetigung.php' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Deutsch</a><br>";
echo "<a href='studienerfolgsbestaetigung.php?lang=en' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Englisch</a>";
echo "<hr><br>";
-250
View File
@@ -1,250 +0,0 @@
<?php
/* Copyright (C) 2006 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
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* 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 <[email protected]>,
* Andreas Oesterreicher <[email protected]>,
* Rudolf Hangl <[email protected]>,
* Karl Burkhart <[email protected]>.
*/
// Oberflaeche zur Aenderung von Beispielen und Upload von Bildern
require_once('../../config/cis.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/akte.class.php');
require_once('../../include/dokument.class.php');
require_once('../../include/mail.class.php');
require_once('../../include/phrasen.class.php');
require_once('../../include/dms.class.php');
header("Content-Type: text/html; charset=utf-8");
session_cache_limiter('none'); //muss gesetzt werden sonst funktioniert der Download mit IE8 nicht
session_start();
if (!isset($_SESSION['bewerbung/user']) || $_SESSION['bewerbung/user']=='')
{
header('Location: registration.php?method=allgemein');
exit;
}
if(isset($_GET['lang']))
setSprache($_GET['lang']);
$person_id = isset($_GET['person_id'])?$_GET['person_id']:'';
if(!isset($_SESSION['bewerbung/personId']))
die('Sie haben keine Berechtigung für diese Seite');
if($person_id!=$_SESSION['bewerbung/personId'])
die('Sie haben keine Berechtigung für diese Seite');
$dokumenttyp = (isset($_GET['dokumenttyp']))? $_GET['dokumenttyp'] : '';
$kategorie_kurzbz = isset($_REQUEST['kategorie_kurzbz'])?$_REQUEST['kategorie_kurzbz']:'';
$sprache = getSprache();
$p=new phrasen($sprache);
$PHP_SELF = $_SERVER['PHP_SELF'];
echo "<html>
<head><title>File-Upload</title></head>
<body>";
//Bei Upload des Bildes
if(isset($_POST['submitbild']))
{
$error = false;
// dms Eintrag anlegen
if(isset($_POST['fileupload']))
{
$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$filename = uniqid();
$filename.=".".$ext;
$uploadfile = DMS_PATH.$filename;
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
if(!chgrp($uploadfile,'dms'))
echo 'CHGRP failed';
if(!chmod($uploadfile, 0774))
echo 'CHMOD failed';
exec('sudo chown wwwrun '.$uploadfile);
$dms = new dms();
$dms->version='0';
$dms->kategorie_kurzbz=$kategorie_kurzbz;
$dms->insertamum=date('Y-m-d H:i:s');
//$dms->insertvon = $user;
$dms->mimetype=$_FILES['file']['type'];
$dms->filename = $filename;
$dms->name = $_FILES['file']['name'];
if($dms->save(true))
{
$dms_id=$dms->dms_id;
}
else
{
echo 'Fehler beim Speichern der Daten';
$error = true;
}
}
else
{
echo 'Fehler beim Hochladen der Datei';
$error = true;
}
}
if(isset($_FILES['file']['tmp_name']) && !$error)
{
//Extension herausfiltern
$ext = explode('.',$_FILES['file']['name']);
$ext = mb_strtolower($ext[count($ext)-1]);
$filename = $_FILES['file']['tmp_name'];
//$fp = fopen($filename,'r');
//auslesen
//$content = fread($fp, filesize($filename));
//fclose($fp);
$akte = new akte();
if($akte->getAkten($_GET['person_id'], 'Lichtbil'))
{
if(count($akte->result)>0)
{
$akte = $akte->result[0];
$akte->new = false;
}
else
$akte->new = true;
}
else
{
$akte->new = true;
}
$dokument = new dokument();
$dokument->loadDokumenttyp($_REQUEST['dokumenttyp']);
$extension = end(explode(".",strtolower($_FILES['file']['name'])));
$titel = '';
// da nur 32 zeichen gespeichert werden dürfen, muss anhand vom typ gekürzt werden
if($_REQUEST['dokumenttyp']=='Lebenslf')
$titel = $p->t('incoming/lebenslauf').".".$extension;
if($_REQUEST['dokumenttyp']=='LearnAgr')
$titel = $p->t('incoming/learningAgreement').".".$extension;
if($_REQUEST['dokumenttyp']=='Motivat')
$titel = $p->t('incoming/motivationsschreiben').".".$extension;
if($_REQUEST['dokumenttyp']=='Zeugnis')
$titel = $p->t('incoming/zeugnis').".".$extension;
if($_REQUEST['dokumenttyp']=='Lichtbil')
$titel = $p->t('incoming/lichtbild').".".$extension;
$akte->dokument_kurzbz = $_REQUEST['dokumenttyp'];
$akte->bezeichnung = $_FILES['file']['name'];
$akte->person_id = $_GET['person_id'];
//$akte->inhalt = base64_encode($content);
$akte->mimetype = $_FILES['file']['type'];
$akte->erstelltam = date('Y-m-d H:i:s');
$akte->gedruckt = false;
$akte->titel = $titel;
//$akte->bezeichnung = $dokument->bezeichnung;
$akte->updateamum = date('Y-m-d H:i:s');
// $akte->updatevon = $user;
$akte->insertamum = date('Y-m-d H:i:s');
$akte->nachgereicht = false;
$akte->anmerkung = '';
// $akte->insertvon = $user;
$akte->uid = '';
$akte->dms_id = $dms_id;
$akte->new = true;
if (!$akte->save()) {
echo "<b>Fehler: $akte->errormsg</b>";
} else {
echo "<b>" . $p->t('global/erfolgreichgespeichert') . "</b>";
}
echo "<script>
var loc = window.opener.location;
if(!/active/.test(loc.href)) {
window.opener.location = loc + '?active=dokumente';
} else {
window.opener.location.reload();
}
</script>";
}
}
if($person_id !='')
{
$dokument = new dokument();
$dokument->getAllDokumenteForPerson($person_id);
echo " <form method='POST' enctype='multipart/form-data' action='$PHP_SELF?person_id=".$_GET['person_id']."'>
<table>
<tr>
<td>".$p->t('incoming/dokument').":</td>
<td>
<input type='file' name='file' />
</td>
</tr>
<tr>
<td>".$p->t('incoming/dokumenttyp').":</td>
<td>
<SELECT name='dokumenttyp'>";
foreach ($dokument->result as $dok)
{
$selected=($dokumenttyp == $dok->dokument_kurzbz)?'selected':'';
echo '<option '.$selected.' value="'.$dok->dokument_kurzbz.'" >'.$dok->bezeichnung."</option>\n";
}
echo " </select>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td><input type='hidden' name='kategorie_kurzbz' id='kategorie_kurzbz' value='Akte'>
<td><input type='hidden' name='fileupload' id='fileupload'></td>
<td><input type='submit' name='submitbild' value='Upload'></td>
</tr>
</table>
</form>";
}
else
{
echo "Es wurde keine Person_id angegeben";
}
?>
</body>
</html>
+1 -1
View File
@@ -518,7 +518,7 @@ echo '<table width="100%"><tr><td>';
//Liste der Studiengänge
echo 'Studiengang: <select onchange="window.location.href=this.value">';
echo '<option value="'.$PHP_SELF.'?" '.$selected.'>Alle Studiengänge</option>';
echo '<option value="'.$PHP_SELF.'?" >Alle Studiengänge</option>';
foreach ($studiengang->result as $row)
{
$stg_arr[$row->studiengang_kz] = $row->kuerzel;