diff --git a/CHANGELOG.md b/CHANGELOG.md index 265334eda..08402fd64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,10 @@ - **[CORE]** Update campus.tbl_templates (contentmittitel and contentohnetitel) with system/templates/contentmittitel_xslt_xhtml.xslt andsystem/templates/contentohnetitel_xslt_xhtml.xslt - **[CORE]** Neue Style Anweisungen (div.header_logo, td.headerbar, div.cis_logo) müssen in Custom Stylesheet hinzugefügt werden +### Removed + **[CORE]** Removed Support for XSLFO2PDF Documents - use unoconv instead + **[CORE]** Removed Support for FOP Documents - use unoconv instead + ### Deprecated - **[CORE]** Die folgenden Datenbank Tabellen und Spalten wurden als DEPRECATED markiert und werden mit der nächsten Version entfernt: public.tbl_aufnahmeschluessel, public.tbl_aufnahmetermin, public.tbl_aufnahmetermintyp, public.tbl_preinteressent, diff --git a/cis/private/lehre/anwesenheitsliste_bilder.pdf.php b/cis/private/lehre/anwesenheitsliste_bilder.pdf.php deleted file mode 100644 index 6a44d8daf..000000000 --- a/cis/private/lehre/anwesenheitsliste_bilder.pdf.php +++ /dev/null @@ -1,107 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - /** - * anwesenheitsliste.pdf.php - * - * Erstellt eine Anwesenheitsliste im PDF-Format - * - */ - - require_once('../../../config/cis.config.inc.php'); -// ------------------------------------------------------------------------------------------ -// Datenbankanbindung -// ------------------------------------------------------------------------------------------ - require_once('../../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Fehler beim Herstellen der Datenbankverbindung'); - - // Pfad zu fpdf - define('FPDF_FONTPATH','../../../include/pdf/font/'); - // library einbinden - require_once('../../../include/pdf/fpdf.php'); - - require_once('../../../include/person.class.php'); - require_once('../../../include/studiengang.class.php'); - require_once('../../../include/studiensemester.class.php'); - require_once('../../../include/lehrveranstaltung.class.php'); - require_once('../../../include/pdf.inc.php'); - - //Uebergabeparameter abpruefen - if(isset($_GET['stg'])) //Studiengang - { - if(is_numeric($_GET['stg'])) - $stg=$_GET['stg']; - else - die('Fehler bei der Parameteruebergabe'); - } - else - $stg=''; - if(isset($_GET['sem'])) //Semester - { - if(is_numeric($_GET['sem'])) - $sem=$_GET['sem']; - else - die('Fehler bei der Parameteruebergabe'); - } - else - $sem=''; - - if(isset($_GET['verband'])) //Verband - $verband=$_GET['verband']; - else - $verband=''; - if(isset($_GET['gruppe'])) //Gruppe - $gruppe=$_GET['gruppe']; - else - $gruppe=''; - if(isset($_GET['gruppe_kurzbz'])) //Einheit - $gruppe_kurzbz = $_GET['gruppe_kurzbz']; - else - $gruppe_kurzbz=''; - - if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) - $lvid = $_GET['lvid']; - else - die('Fehler bei der Parameteruebergabe'); - - if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; - else - die('Studiensemester wurde nicht uebergeben'); - - $lehreinheit_id = (isset($_GET['lehreinheit_id'])?$_GET['lehreinheit_id']:''); -/** - * liefert den groesseren der beiden werte - * - */ -function getmax($val1,$val2) -{ - return ($val1>$val2)?$val1:$val2; - -} -if (file_exists('../../../addons/sfu-milano/include/'.EXT_FKT_PATH.'/anwesenheitsliste_bilder.inc.php')) - require_once('../../../addons/sfu-milano/include/'.EXT_FKT_PATH.'/anwesenheitsliste_bilder.inc.php'); -else - require_once('../../../include/'.EXT_FKT_PATH.'/anwesenheitsliste_bilder.inc.php'); - -?> diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index d791768da..851c0c6c8 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -16,19 +16,18 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher and + * Rudolf Hangl . */ /* Erstellt einen Lehrauftrag im PDF Format * * Erstellt ein XML File Transformiert dieses mit * Hilfe der XSL-FO Vorlage aus der DB und generiert - * daraus ein PDF (xslfo2pdf) + * daraus ein PDF */ require_once('../../config/cis.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/benutzerberechtigung.class.php'); -require_once('../../include/xslfo2pdf/xslfo2pdf.php'); require_once('../../include/akte.class.php'); require_once('../../include/konto.class.php'); require_once('../../include/benutzer.class.php'); @@ -37,6 +36,7 @@ require_once('../../include/addon.class.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/student.class.php'); require_once('../../include/prestudent.class.php'); +require_once('../../include/dokument_export.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); @@ -48,112 +48,113 @@ $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); //Parameter holen -if(isset($_GET['xml'])) - $xml=$_GET['xml']; +if (isset($_GET['xml'])) + $xml = $_GET['xml']; else die('Fehlerhafte Parameteruebergabe'); -if(isset($_GET['xsl'])) - $xsl=$_GET['xsl']; +if (isset($_GET['xsl'])) + $xsl = $_GET['xsl']; else die('Fehlerhafte Parameteruebergabe'); // Studiengang ermitteln dessen Vorlage verwendet werden soll -$xsl_stg_kz=0; +$xsl_stg_kz = 0; + +$sign = false; + // Direkte uebergabe des Studienganges dessen Vorlage verwendet werden soll -if(isset($_GET['xsl_stg_kz'])) - $xsl_stg_kz=$_GET['xsl_stg_kz']; +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']; + if (isset($_GET['stg_kz'])) + $xsl_stg_kz = $_GET['stg_kz']; else { // Werden UIDs oder Prestudent_IDs uebergeben, wird die Vorlage des Studiengangs genommen // in dem der 1. Studierende in der Liste ist - if(isset($_GET['uid']) && $_GET['uid']!='') + if (isset($_GET['uid']) && $_GET['uid'] != '') { - if(strstr($_GET['uid'],';')) + if (strstr($_GET['uid'],';')) $uids = explode(';',$_GET['uid']); else $uids[1] = $_GET['uid']; $student_obj = new student(); - if($student_obj->load($uids[1])) + if ($student_obj->load($uids[1])) { - $xsl_stg_kz=$student_obj->studiengang_kz; + $xsl_stg_kz = $student_obj->studiengang_kz; } } - elseif(isset($_GET['prestudent_id']) && $_GET['prestudent_id']!='') + elseif (isset($_GET['prestudent_id']) && $_GET['prestudent_id'] != '') { - if(strstr($_GET['prestudent_id'],';')) + if (strstr($_GET['prestudent_id'],';')) $prestudent_ids = explode(';',$_GET['prestudent_id']); else $prestudent_ids[1] = $_GET['prestudent_id']; $prestudent_obj = new prestudent(); - if($prestudent_obj->load($prestudent_ids[1])) + if ($prestudent_obj->load($prestudent_ids[1])) { - $xsl_stg_kz=$prestudent_obj->studiengang_kz; + $xsl_stg_kz = $prestudent_obj->studiengang_kz; } } } } -if(isset($_GET['version']) && is_numeric($_GET['version'])) +if (isset($_GET['version']) && is_numeric($_GET['version'])) $version = $_GET['version']; else - $version =''; + $version = null; -if(isset($_GET['xsl_oe_kurzbz'])) - $xsl_oe_kurzbz=$_GET['xsl_oe_kurzbz']; +if (isset($_GET['xsl_oe_kurzbz'])) + $xsl_oe_kurzbz = $_GET['xsl_oe_kurzbz']; else - $xsl_oe_kurzbz=''; + $xsl_oe_kurzbz = ''; //Parameter setzen -$params='?xmlformat=xml'; -//if(isset($_GET['uid'])) -// $params.='&uid='.$_GET['uid']; +$params = 'xmlformat=xml'; //Admins duerfen Dokumente anderer Personen drucken -if($rechte->isBerechtigt('admin')) +if ($rechte->isBerechtigt('admin')) $user = $_GET['uid']; -$params.='&uid='.$user; -if(isset($_GET['person_id'])) - $params.='&person_id='.$_GET['person_id']; -if(isset($_GET['buchungsnummern'])) - $params.='&buchungsnummern='.$_GET['buchungsnummern']; -if(isset($_GET['stg_kz'])) - $params.='&stg_kz='.$_GET['stg_kz']; -if(isset($_GET['ss'])) - $params.='&ss='.$_GET['ss']; -if(isset($_GET['abschlusspruefung_id'])) - $params.='&abschlusspruefung_id='.$_GET['abschlusspruefung_id']; -if(isset($_GET['typ'])) - $params.='&typ='.$_GET['typ']; -if(isset($_GET['all'])) - $params.='&all=1'; +$params .= '&uid='.$user; +if (isset($_GET['person_id'])) + $params .= '&person_id='.$_GET['person_id']; +if (isset($_GET['buchungsnummern'])) + $params .= '&buchungsnummern='.$_GET['buchungsnummern']; +if (isset($_GET['stg_kz'])) + $params .= '&stg_kz='.$_GET['stg_kz']; +if (isset($_GET['ss'])) + $params .= '&ss='.$_GET['ss']; +if (isset($_GET['abschlusspruefung_id'])) + $params .= '&abschlusspruefung_id='.$_GET['abschlusspruefung_id']; +if (isset($_GET['typ'])) + $params .= '&typ='.$_GET['typ']; +if (isset($_GET['all'])) + $params .= '&all=1'; //OE fuer Output ermitteln -if ($xsl_oe_kurzbz!='') +if ($xsl_oe_kurzbz != '') { $oe_kurzbz = $xsl_oe_kurzbz; } else { - if($xsl_stg_kz=='') - $xsl_stg_kz='0'; + if ($xsl_stg_kz == '') + $xsl_stg_kz = '0'; $oe = new studiengang(); $oe->load($xsl_stg_kz); $oe_kurzbz = $oe->oe_kurzbz; } //Darf der User Dokumente in einem NICHT-PDF-Format exportieren? -if (isset($_GET['output']) && $_GET['output']!='pdf') +if (isset($_GET['output']) && $_GET['output'] != 'pdf') { - if (!$rechte->isBerechtigt('system/change_outputformat',$oe_kurzbz)) + if (!$rechte->isBerechtigt('system/change_outputformat', $oe_kurzbz)) { $output = 'pdf'; } @@ -167,283 +168,96 @@ else $konto = new konto(); if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) { - $buchungstypen = array(); - if(defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) - { - $buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN); - } - - if(isset($_GET['ss'])) - $stsem_zahlung = $konto->getLastStSemBuchungstypen($user, $buchungstypen, $_GET['ss']); - - if((($xsl=='Inskription') || ($xsl == 'Studienblatt')) && ($_GET["ss"] != $stsem_zahlung)) + $buchungstypen = array(); + if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) { - die('Der Studienbeitrag wurde noch nicht bezahlt'); + $buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN); } - if(isset($_GET['buchungsnummern'])) + + if (isset($_GET['ss'])) + $stsem_zahlung = $konto->getLastStSemBuchungstypen($user, $buchungstypen, $_GET['ss']); + + if ((($xsl=='Inskription') || ($xsl == 'Studienblatt')) && ($_GET["ss"] != $stsem_zahlung)) { - //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!='') + 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) { - $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'); + 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'); + } } - } } - $xml_url=XML_ROOT.$xml.$params; - //echo $xml_url; - // Load the XML source - $xml_doc = new DOMDocument; + $xml_url = XML_ROOT.$xml.$params; - if(!$xml_doc->load($xml_url)) - die('unable to load xml'); - //echo ':'.$xml_doc->saveXML().':'; - - //XSL aus der DB holen - $vorlage = new vorlage(); - if($xsl_oe_kurzbz!='') + if ($xsl_oe_kurzbz == '') { - $vorlage->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version); + if ($xsl_stg_kz == '') + $xsl_stg_kz = '0'; + $stg_obj = new studiengang(); + if (!$stg_obj->load($xsl_stg_kz)) + die($stg_obj->errormsg); + $xsl_oe_kurzbz = $stg_obj->oe_kurzbz; + } + + $dokument = new dokument_export($xsl, $xsl_oe_kurzbz, $version); + $dokument->addDataURL($xml, $params); + + switch($xsl) + { + case 'LV_Informationen': + $studiengang = new studiengang($_GET['stg_kz']); + $studiensemester = new studiensemester($_GET['ss']); + $filename = $filename.'_'.$studiengang->kurzbzlang.'_'.$studiensemester->studiensemester_kurzbz; + break; + case 'Honorarvertrag': + $filename = $filename.'_'.$benutzer_obj->nachname.'_'.$benutzer_obj->vorname; + break; + case 'Studienordnung': + $studienordnung = new studienordnung(); + $studienordnung->loadStudienordnung($_GET['studienordnung_id']); + $filename = 'Studienordnung-Studienplan-'. + $filename .= sprintf("%'.04d",$studienordnung->studiengang_kz). + $filename .= '-'.$studienordnung->studiengangkurzbzlang; + break; + default: + $filename = $xsl; + } + + $dokument->setFilename($filename); + + if (!$dokument->create($output)) + die($dokument->errormsg); + + if ($sign === true) + { + if ($dokument->sign($user)) + { + $dokument->output(); + } + else + { + echo $dokument->errormsg; + } } else - { - if($xsl_stg_kz=='') - $xsl_stg_kz='0'; - - $vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version); - } - - 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; - $tmp = sys_get_temp_dir(); - $tempfolder = $tmp.'/FHC'.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']) || $vorlage->style!='') - { - //Wenn die Spalte style in der DB befuellt ist, wird dieses verwendet - if($vorlage->style!='') - { - $style_xsl_doc = new DOMDocument; - if(!$style_xsl_doc->loadXML($vorlage->style)) - die('unable to load xsl from tbl_vorlagestudiengang'); - } - else - { - $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']) || $vorlage->style!='') - 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(file_exists('styles.xml')) - unlink('styles.xml'); - unlink($tempname_zip); - if($output=='pdf' || $output=='doc') - unlink($tempPdfName); - 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 = ''.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']!='') - { - $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; - } - } - } - $filename=$xsl.$nachname; - - if (!$fo2pdf->generatePdf($buffer, $filename, "D")) - { - echo('Failed to generate PDF'); - } - } + $dokument->output(); + $dokument->close(); } else { - // kein berechtigung + // keine berechtigung echo "

Sie haben keine Berechtigung zum Anzeigen dieser Seite

"; } ?> diff --git a/cis/private/profile/dokumente.php b/cis/private/profile/dokumente.php index 7a5c16f73..b1f6f9442 100644 --- a/cis/private/profile/dokumente.php +++ b/cis/private/profile/dokumente.php @@ -25,7 +25,10 @@ require_once('../../../include/functions.inc.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/konto.class.php'); require_once('../../../include/phrasen.class.php'); +require_once('../../../include/prestudent.class.php'); require_once('../../../include/student.class.php'); +require_once('../../../include/akte.class.php'); +require_once('../../../include/datum.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); $sprache = getSprache(); @@ -49,12 +52,12 @@ if(isset($_GET['uid'])) $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); if($rechte->isBerechtigt('admin')) - { + { $uid = $_GET['uid']; - $getParam = "&uid=" . $uid; - } - else - $getParam = ""; + $getParam = "&uid=" . $uid; + } + else + $getParam = ""; } else $getParam=''; @@ -65,135 +68,186 @@ $xsl_stg_kz = $student_studiengang->studiengang_kz; $stg = ''; -if(!($erg=$db->db_query("SELECT * FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'"))) - die($db->db_last_error()); -$num_rows=$db->db_num_rows($erg); -if ($num_rows==1) +if(isset($_GET['action']) && $_GET['action']=='download') { - $vorname=$db->db_result($erg,0,"vorname"); - $vornamen=$db->db_result($erg,0,"vornamen"); - $nachname=$db->db_result($erg,0,"nachname"); - $gebdatum=$db->db_result($erg,0,"gebdatum"); - $gebort=$db->db_result($erg,0,"gebort"); - $titelpre=$db->db_result($erg,0,"titelpre"); - $titelpost=$db->db_result($erg,0,"titelpost"); - $email=$db->db_result($erg,0,"uid").'@'.DOMAIN; - $email_alias=$db->db_result($erg,0,"alias"); - $hp=$db->db_result($erg,0,"homepage"); + if(isset($_GET['id']) && is_numeric($_GET['id'])) + { + $id = $_GET['id']; + $akte = new akte(); + $akte->load($id); + if ($akte->person_id == $student_studiengang->person_id + && $akte->signiert + && $akte->stud_selfservice) + { + if($akte->inhalt!='') + { + //Header fuer Datei schicken + header("Content-type: $akte->mimetype"); + header('Content-Disposition: attachment; filename="'.$akte->titel.'"'); + echo base64_decode($akte->inhalt); + exit; + } + else + { + die('Id ist ungueltig'); + } + } + else + { + die('Id ist ungueltig'); + } + } + else + { + die('Id ist ungueltig'); + } } -if(!($erg_stud=$db->db_query("SELECT studiengang_kz, semester, verband, gruppe, matrikelnr, typ::varchar(1) || kurzbz AS stgkz, tbl_studiengang.bezeichnung AS stgbz FROM public.tbl_student JOIN public.tbl_studiengang USING(studiengang_kz) WHERE student_uid='".addslashes($uid)."'"))) - die($db->db_last_error()); -$stud_num_rows=$db->db_num_rows($erg_stud); - -if ($stud_num_rows==1) -{ - $stg=$db->db_result($erg_stud,0,"studiengang_kz"); - $stgbez=$db->db_result($erg_stud,0,"stgbz"); - $stgkz=$db->db_result($erg_stud,0,"stgkz"); - $semester=$db->db_result($erg_stud,0,"semester"); - $verband=$db->db_result($erg_stud,0,"verband"); - $gruppe=$db->db_result($erg_stud,0,"gruppe"); - $matrikelnr=$db->db_result($erg_stud,0,"matrikelnr"); -} -if(!($erg_lekt=$db->db_query("SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."'"))) - die($db->db_last_error()); -$lekt_num_rows=$db->db_num_rows($erg_lekt); -if ($lekt_num_rows==1) -{ - $row=$db->db_fetch_object($erg_lekt,0); - $kurzbz=$row->kurzbz; - $tel=$row->telefonklappe; -} - -// Mail-Groups -if(!($erg_mg=$db->db_query("SELECT gruppe_kurzbz, beschreibung FROM campus.vw_persongruppe WHERE mailgrp AND uid='".addslashes($uid)."' ORDER BY gruppe_kurzbz"))) - die($db->db_last_error()); -$nr_mg=$db->db_num_rows($erg_mg); - -echo ' - +echo ' -'.$p->t('tools/dokumente').' - - - + $(document).ready(function() + { + $("#t1").tablesorter( + { + sortList: [[0,1]], + widgets: ["zebra"] + }); + }); + + function changeSemester(obj) + { + self.location = obj.options[obj.selectedIndex].value + "'.$getParam.'"; + } + - -

'.$p->t('tools/dokumente').'

'; +

'.$p->t('tools/dokumente').'

+

Bestätigungen

'; -//Aktuelles Studiensemester oder gewaehltes Studiensemester +$prestudent = new prestudent(); +$prestudent->getPrestudentRolle($student_studiengang->prestudent_id); + +$stsem_arr = array(); +$laststsem = ''; +foreach($prestudent->result as $row) +{ + $stsem_arr[] = $row->studiensemester_kurzbz; + $laststsem = $row->studiensemester_kurzbz; +} +$stsem_arr = array_unique($stsem_arr); +if($stsem == '') + $stsem = $laststsem; + +/*//Aktuelles Studiensemester oder gewaehltes Studiensemester $stsem_obj = new studiensemester(); - if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); +if($stsem == '') + $stsem = $stsem_obj->getaktorNext(); $stsem_obj->getAll(); +*/ +echo $p->t('global/studiensemester'); +echo ' "; - foreach ($stsem_obj->studiensemester as $semrow) +foreach ($stsem_arr as $semrow) +{ + if ($stsem == $semrow) { - if($stsem == $semrow->studiensemester_kurzbz) - echo ""; - else - echo ""; + echo ''; } - echo "
"; + else + { + echo ''; + } +} +echo '

'; $konto = new konto(); $buchungstypen = array(); -if(defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) +if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) { - $buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN); + $buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN); } $stsem_zahlung = $konto->getLastStSemBuchungstypen($uid, $buchungstypen, $stsem); if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung) { - echo "".$p->t('tools/inskriptionsbestaetigung').""; + $path = "../pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=".$stsem."&uid=".$uid."&xsl_stg_kz=".$xsl_stg_kz; + echo ''.$p->t('tools/inskriptionsbestaetigung').''; echo ' - '.$p->t('tools/studienbeitragFuerSSBezahlt',array($stsem)); + echo '

'; } else - echo $p->t('tools/inskriptionsbestaetigung')." - ".$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)); - -echo "
"; - -if(defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN) { - if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung) - { - echo "".$p->t('tools/studienbuchblatt').""; - echo ' - '.$p->t('tools/studienbeitragFuerSSBezahlt',array($stsem)); - } - else - echo $p->t('tools/studienbuchblatt')." - ".$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)); - - echo "
"; + echo $p->t('tools/inskriptionsbestaetigung'); + echo ' - '.$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)); + echo '

'; } -if(defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN) +if (defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN) +{ + if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung) + { + $pfad = "../pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=".$stsem."&uid=".$uid; + echo ''.$p->t('tools/studienbuchblatt').''; + echo ' - '.$p->t('tools/studienbeitragFuerSSBezahlt',array($stsem)); + } + else + echo $p->t('tools/studienbuchblatt')." - ".$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)); + + echo '

'; +} + +if (defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN) { echo "".$p->t('tools/studienerfolgsbestaetigung')." Deutsch
"; echo "".$p->t('tools/studienerfolgsbestaetigung')." Englisch"; - echo "
"; + echo "
"; } -echo "
"; +echo "
"; +$akte = new akte(); +if($akte->getArchiv($student_studiengang->person_id, true, true) && count($akte->result)>0) +{ + echo ' +

Abschlussdokumente

+ + + + + + + + + '; + + $datum_obj = new datum(); + + foreach($akte->result as $row) + { + $pfad = 'dokumente.php?action=download&id='.$row->akte_id.'&uid='.$uid; + echo ''; + echo ''; + echo ''; + echo ''; + } + + echo '
ErstelldatumDokument
'.$datum_obj->formatDatum($row->erstelltam,'d.m.Y').' '.$row->bezeichnung.'
'; +} echo ' '; -?> \ No newline at end of file +?> diff --git a/content/createAusbildungsvertrag.php b/content/createAusbildungsvertrag.php deleted file mode 100644 index f1cd5dffc..000000000 --- a/content/createAusbildungsvertrag.php +++ /dev/null @@ -1,219 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* Erstellt einen Lehrauftrag im PDF Format - * - * Erstellt ein XML File Transformiert dieses mit - * Hilfe der XSL-FO Vorlage aus der DB und generiert - * daraus ein PDF (xslfo2pdf) - */ -session_cache_limiter('none'); //muss gesetzt werden sonst funktioniert der Download mit IE8 nicht -session_start(); -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/benutzerberechtigung.class.php'); -require_once('../include/xslfo2pdf/xslfo2pdf.php'); -require_once('../include/fop.class.php'); -require_once('../include/akte.class.php'); -require_once('../include/vorlage.class.php'); - -$user = get_uid(); -$db = new basis_db(); - -//Parameter holen -if(isset($_GET['xml'])) - $xml=$_GET['xml']; -else - die('Fehlerhafte1 Parameteruebergabe'); - - -if(isset($_GET['xsl'])) - $xsl=$_GET['xsl']; -else - die('Fehlerhafte2 Parameteruebergabe'); - -$xsl_stg_kz=0; -if(isset($_GET['xsl_stg_kz'])) - $xsl_stg_kz=$_GET['xsl_stg_kz']; -else - if(isset($_GET['stg_kz'])) - $xsl_stg_kz=$_GET['stg_kz']; - else - if(isset($_GET['uid']) && $_GET['uid']!='') - { - if(strstr($_GET['uid'],';')) - $uids = explode(';',$_GET['uid']); - else - $uids = $_GET['uid']; - - $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($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; - } - } - -if(isset($_GET['xsl_oe_kurzbz'])) - $xsl_oe_kurzbz=$_GET['xsl_oe_kurzbz']; -else - $xsl_oe_kurzbz=''; - -//Parameter setzen -$params='?xmlformat=xml'; -if(isset($_GET['uid'])) - $params.='&uid='.$_GET['uid']; -if(isset($_GET['version']) && is_numeric($_GET['version'])) - $version = $_GET['version']; -else - $version =''; - -$output = (isset($_GET['output'])?$_GET['output']:'odt'); - -//Berechtigung pruefen -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -$xml_url=XML_ROOT.$xml.$params; - -// Load the XML source -$xml_doc = new DOMDocument; - -if(!$xml_doc->load($xml_url)) - die('unable to load xml: '.$xml_url); - -//XSL aus der DB holen -$vorlage = new vorlage(); -if($xsl_oe_kurzbz!='') -{ - $vorlage->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version); -} -else -{ - if($xsl_stg_kz=='') - $xsl_stg_kz='0'; - - $vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version); -} - -$xsl_content = $vorlage->text; -loadVariables($user); - -if (!isset($_REQUEST["archive"])) -{ - 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($xsl_content)) - 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); - - - $vorlage->getAktuelleVorlage($xsl_stg_kz, 'AusbildStatus', $version); - $xsl_content = $vorlage->text; - - - $xsl_doc = new DOMDocument; - if(!$xsl_doc->loadXML($xsl_content)) - die('unable to load xsl'); - - // Configure the transformer - $proc = new XSLTProcessor; - $proc->importStyleSheet($xsl_doc); // attach the xsl rules - - $buffer1 = $proc->transformToXml($xml_doc); - //echo $buffer; - //exit; - chdir($tempfolder); - file_put_contents('styles.xml', $buffer1); - - - - $zipfile = DOC_ROOT.'system/vorlage_zip/Ausbildungsver.'.$endung; - $tempname_zip = 'out.zip'; - if(copy($zipfile, $tempname_zip)) - { - exec("zip $tempname_zip content.xml"); - exec("zip $tempname_zip styles.xml"); - clearstatcache(); - - if($output == 'pdf') - { - $tempPdfName = 'Ausbildungsver.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="'.$tempPdfName.'"'); - header('Content-Length: '.$fsize); - } - else if($output =='odt') - { - $fsize = filesize($tempname_zip); - $handle = fopen($tempname_zip,'r'); - header('Content-type: '.$vorlage->mimetype); - header('Content-Disposition: attachment; filename="Ausbildungsver.odt"'); - header('Content-Length: '.$fsize); - } - - while (!feof($handle)) - { - echo fread($handle, 8192); - } - fclose($handle); - - unlink('content.xml'); - unlink('styles.xml'); - unlink($tempname_zip); - if($output=='pdf') - unlink($tempPdfName); - rmdir($tempfolder); - } - } - -} -?> diff --git a/content/pdfExport.php b/content/pdfExport.php index a48679948..44e30c7a0 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -16,14 +16,14 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher and + * Rudolf Hangl . */ /* Erstellt diverse Dokumente * * Erstellt ein XML File Transformiert dieses mit * Hilfe der XSL-FO Vorlage aus der DB und generiert - * daraus ein PDF mittels xslfo2pdf bzw unoconv + * daraus ein PDF mittels unoconv */ /* @@ -34,18 +34,17 @@ session_start();*/ require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/benutzerberechtigung.class.php'); -require_once('../include/xslfo2pdf/xslfo2pdf.php'); -require_once('../include/fop.class.php'); 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'); require_once('../include/addon.class.php'); +require_once('../include/mitarbeiter.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/studiensemester.class.php'); require_once('../include/studienordnung.class.php'); -//require_once('../include/betriebsmittel.class.php'); +require_once('../include/dokument_export.class.php'); $user = get_uid(); $db = new basis_db(); @@ -54,125 +53,97 @@ $variable_obj = new variable(); $variable_obj->loadVariables($user); //Parameter holen -if(isset($_GET['xml'])) - $xml=$_GET['xml']; +if (isset($_GET['xml'])) + $xml = $_GET['xml']; else die('Fehlerhafte Parameteruebergabe'); -if(isset($_GET['xsl'])) - $xsl=$_GET['xsl']; +if (isset($_GET['xsl'])) + $xsl = $_GET['xsl']; else die('Fehlerhafte Parameteruebergabe'); +if(isset($_GET['sign'])) + $sign = true; +else + $sign = false; + // Studiengang ermitteln dessen Vorlage verwendet werden soll -$xsl_stg_kz=0; +$xsl_stg_kz = 0; // Direkte uebergabe des Studienganges dessen Vorlage verwendet werden soll -if(isset($_GET['xsl_stg_kz'])) - $xsl_stg_kz=$_GET['xsl_stg_kz']; +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']; + if (isset($_GET['stg_kz'])) + $xsl_stg_kz = $_GET['stg_kz']; else { // Werden UIDs oder Prestudent_IDs uebergeben, wird die Vorlage des Studiengangs genommen // in dem der 1. Studierende in der Liste ist - if(isset($_GET['uid']) && $_GET['uid']!='') + if (isset($_GET['uid']) && $_GET['uid']!='') { - if(strstr($_GET['uid'],';')) + if (strstr($_GET['uid'],';')) $uids = explode(';',$_GET['uid']); else $uids[1] = $_GET['uid']; $student_obj = new student(); - if($student_obj->load($uids[1])) + if ($student_obj->load($uids[1])) { - $xsl_stg_kz=$student_obj->studiengang_kz; + $xsl_stg_kz = $student_obj->studiengang_kz; } } - elseif(isset($_GET['prestudent_id']) && $_GET['prestudent_id']!='') + elseif (isset($_GET['prestudent_id']) && $_GET['prestudent_id']!='') { - if(strstr($_GET['prestudent_id'],';')) + if (strstr($_GET['prestudent_id'],';')) $prestudent_ids = explode(';',$_GET['prestudent_id']); else $prestudent_ids[1] = $_GET['prestudent_id']; $prestudent_obj = new prestudent(); - if($prestudent_obj->load($prestudent_ids[1])) + if ($prestudent_obj->load($prestudent_ids[1])) { - $xsl_stg_kz=$prestudent_obj->studiengang_kz; + $xsl_stg_kz = $prestudent_obj->studiengang_kz; } } } } -if(isset($_GET['xsl_oe_kurzbz'])) - $xsl_oe_kurzbz=$_GET['xsl_oe_kurzbz']; +if (isset($_GET['xsl_oe_kurzbz'])) + $xsl_oe_kurzbz = $_GET['xsl_oe_kurzbz']; else - $xsl_oe_kurzbz=''; + $xsl_oe_kurzbz = ''; //Parameter setzen -$params='?xmlformat=xml'; -if(isset($_GET['uid'])) - $params.='&uid='.urlencode($_GET['uid']); -if(isset($_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='.urlencode($_GET['ss']); -if(isset($_GET['abschlusspruefung_id'])) - $params.='&abschlusspruefung_id='.urlencode($_GET['abschlusspruefung_id']); -if(isset($_GET['typ'])) - $params.='&typ='.urlencode($_GET['typ']); -if(isset($_GET['all'])) - $params.='&all='.urlencode($_GET['all']); -if(isset($_GET['preoutgoing_id'])) - $params.='&preoutgoing_id='.urlencode($_GET['preoutgoing_id']); -if(isset($_GET["lvid"])) - $params.='&lvid='.urlencode($_GET["lvid"]); -if(isset($_GET['projekt_kurzbz'])) - $params.='&projekt_kurzbz='.urlencode($_GET['projekt_kurzbz']); -if(isset($_GET['version']) && is_numeric($_GET['version'])) +$params = 'xmlformat=xml'; + +// GET Parameter die an XML durchgereicht werden +foreach ($_GET as $getkey=>$getvalue) +{ + if (in_array($getkey, + array('uid', 'stg_kz', 'person_id', 'id', 'prestudent_id', 'buchungsnummern', 'ss', 'abschlusspruefung_id', + 'typ', 'all', 'preoutgoing_id', 'lvid', 'projekt_kurzbz', 'von', 'bis', 'stundevon', 'stundebis', + 'sem', 'lehreinheit', 'mitarbeiter_uid', 'studienordnung_id', 'fixangestellt', 'standort', + 'abrechnungsmonat', 'form') + ) + ) + { + $params .= '&'.$getkey.'='.urlencode($getvalue); + } +} + +if (isset($_GET['vertrag_id'])) +{ + foreach($_GET['vertrag_id'] as $id) + { + $params .= '&vertrag_id[]='.urlencode($id); + } +} +if (isset($_GET['version']) && is_numeric($_GET['version'])) $version = $_GET['version']; else - $version =''; -if(isset($_GET['von'])) - $params.='&von='.urlencode($_GET['von']); -if(isset($_GET['bis'])) - $params.='&bis='.urlencode($_GET['bis']); -if(isset($_GET['stundevon'])) - $params.='&stundevon='.urlencode($_GET['stundevon']); -if(isset($_GET['stundebis'])) - $params.='&stundebis='.urlencode($_GET['stundebis']); -if(isset($_GET['sem'])) - $params.='&sem='.urlencode($_GET['sem']); -if(isset($_GET['lehreinheit'])) - $params.='&lehreinheit='.urlencode($_GET['lehreinheit']); -if(isset($_GET['mitarbeiter_uid'])) - $params.='&mitarbeiter_uid='.urlencode($_GET['mitarbeiter_uid']); -if(isset($_GET['vertrag_id'])) -{ - foreach($_GET['vertrag_id'] as $id) - { - $params.='&vertrag_id[]='.urlencode($id); - } -} -if(isset($_GET['studienordnung_id'])) - $params.='&studienordnung_id='.urlencode($_GET['studienordnung_id']); -if(isset($_GET['fixangestellt'])) - $params.='&fixangestellt='.urlencode($_GET['fixangestellt']); -if(isset($_GET['standort'])) - $params.='&standort='.urlencode($_GET['standort']); -if(isset($_GET['abrechnungsmonat'])) - $params.='&abrechnungsmonat='.urlencode($_GET['abrechnungsmonat']); -if(isset($_GET['form'])) - $params.='&form='.urlencode($_GET['form']); + $version = null; + $output = (isset($_GET['output'])?$_GET['output']:'odt'); $rechte = new benutzerberechtigung(); @@ -180,21 +151,21 @@ $rechte->getBerechtigungen($user); //OE fuer Output ermitteln -if ($xsl_oe_kurzbz!='') +if ($xsl_oe_kurzbz != '') { $oe_kurzbz = $xsl_oe_kurzbz; } else { - if($xsl_stg_kz=='') - $xsl_stg_kz='0'; + if ($xsl_stg_kz == '') + $xsl_stg_kz = '0'; $oe = new studiengang(); $oe->load($xsl_stg_kz); $oe_kurzbz = $oe->oe_kurzbz; } //Darf der User Dokumente in einem NICHT-PDF-Format exportieren? -if (isset($_GET['output']) && $_GET['output']!='pdf') +if (isset($_GET['output']) && $_GET['output'] != 'pdf') { if (!$rechte->isBerechtigt('system/change_outputformat',$oe_kurzbz)) { @@ -206,28 +177,12 @@ if (isset($_GET['output']) && $_GET['output']!='pdf') else $output = 'pdf'; - -//XSL aus der DB holen $vorlage = new vorlage(); -if($xsl_oe_kurzbz!='') -{ - $vorlage->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version); -} -else -{ - if($xsl_stg_kz=='') - $xsl_stg_kz='0'; - - $vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version); -} - -$xsl_content = $vorlage->text; - -if($xsl_content=='') - die('Für diese Organisationseinheit ist keine Vorlage im System hinterlegt'); +if(!$vorlage->loadVorlage($xsl)) + die('Vorlage wurde nicht gefunden'); //Berechtigung pruefen -if($xsl=='AccountInfo') +if ($xsl == 'AccountInfo') { $isberechtigt = false; @@ -235,102 +190,61 @@ if($xsl=='AccountInfo') foreach ($uids as $uid) { //Berechtigung fuer das Drucken des Accountinfoblattes pruefen - $qry = "SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."'"; - if($result_ma = $db->db_query($qry)) + $ma = new mitarbeiter(); + if($ma->load($uid)) { - if($db->db_num_rows($result_ma)==1) + //Mitarbeiterrechte erforderlich + if ($rechte->isBerechtigt('admin', 0, 'suid') || $rechte->isBerechtigt('mitarbeiter', 0, 'suid')) { - //Mitarbeiterrechte erforderlich - if($rechte->isBerechtigt('admin', 0, 'suid') || $rechte->isBerechtigt('mitarbeiter', 0, 'suid')) - { - $isberechtigt=true; - } + $isberechtigt = true; } } - $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE student_uid='".addslashes($uid)."'"; - if($result_std = $db->db_query($qry)) + $stud = new student(); + if ($stud->load($uid)) { - if($db->db_num_rows($result_std)==1) + //Rechte pruefen + if ($rechte->isBerechtigt('admin', $stud->studiengang_kz, 'suid') || + $rechte->isBerechtigt('admin', 0, 'suid') || + $rechte->isBerechtigt('assistenz', $stud->studiengang_kz, 'suid') || + $rechte->isBerechtigt('assistenz', 0, 'suid') || + $rechte->isBerechtigt('support', 0, 'suid')) { - $row_std = $db->db_fetch_object($result_std); - //Rechte pruefen - if($rechte->isBerechtigt('admin', $row_std->studiengang_kz, 'suid') || - $rechte->isBerechtigt('admin', 0, 'suid') || - $rechte->isBerechtigt('assistenz', $row_std->studiengang_kz, 'suid') || - $rechte->isBerechtigt('assistenz', 0, 'suid') || - $rechte->isBerechtigt('support', 0, 'suid')) - { - $isberechtigt=true; - } + $isberechtigt=true; } } } - if(!$isberechtigt) + if (!$isberechtigt) { echo 'Sie haben keine Berechtigung um dieses AccountInfoBlatt zu drucken'; exit; } } -elseif(in_array($xsl,array('Lehrveranstaltungszeugnis','Zertifikat','Diplomurkunde','Diplomzeugnis','Bescheid', 'BescheidEng','Bakkurkunde','BakkurkundeEng','Bakkzeugnis', -'PrProtokollBakk','PrProtokollDipl','Lehrauftrag','DiplomurkundeEng','Zeugnis','ZeugnisEng','StudienerfolgEng', -'Sammelzeugnis','PrProtDiplEng','PrProtBakkEng','BakkzeugnisEng','DiplomzeugnisEng','statusbericht', -'DiplSupplement','Zutrittskarte','Projektbeschr','Ausbildungsver','AusbildStatus','PrProtBA','PrProtMA', -'PrProtBAEng','PrProtMAEng','Studienordnung','Erfolgsnachweis','ErfolgsnwHead','Studienblatt','LV_Informationen', -'LVZeugnis','AnwListBarcode','Honorarvertrag','AusbVerEng','AusbVerEngHead','Zeugnis','ZeugnisNeu','ZeugnisEngNeu','ErfolgsnachweisE','ErfolgsnwHeadE','Magisterurkunde','Masterurkunde', -'Defensiourkunde','Magisterzeugnis','Laufzettel','StudienblattEng','Zahlung1','Terminliste','Studienbuchblatt','Veranstaltungen'))) -{ - if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) - { - echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen'; - exit; - } -} -elseif(in_array($xsl,array('Ressource'))) -{ - if(!$rechte->isBerechtigt('lehre/lvplan')) - { - echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen'; - exit; - } -} -elseif(in_array($xsl,array('Inskription','Studienerfolg','OutgoingLearning','OutgoingChangeL','LearningAgree','Zahlung','DichiaSost'))) -{ - if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) - { - echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen'; - exit; - } -} -elseif($xsl=='Uebernahme') -{ - if(!$rechte->isBerechtigt('wawi/inventar') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('basis/betriebsmittel')) - { - 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 { - // Wenn Berechtigung direkt beim der Vorlage angegeben ist - if(count($vorlage->berechtigung)>0) + $vorlagestudiengang = new vorlage(); + if ($xsl_oe_kurzbz != '') { - $allowed=false; - foreach($vorlage->berechtigung as $berechtigung_kurzbz) + $vorlagestudiengang->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version); + } + else + { + if ($xsl_stg_kz == '') + $xsl_stg_kz = '0'; + + $vorlagestudiengang->getAktuelleVorlage($xsl_stg_kz, $xsl, $version); + } + // Wenn Berechtigung direkt beim der Vorlage angegeben ist + if (count($vorlagestudiengang->berechtigung)>0) + { + $allowed = false; + foreach($vorlagestudiengang->berechtigung as $berechtigung_kurzbz) { - if($rechte->isBerechtigt($berechtigung_kurzbz)) - $allowed=true; + if ($rechte->isBerechtigt($berechtigung_kurzbz)) + $allowed = true; } - if(!$allowed) + if (!$allowed) { echo 'unbekanntes Dokument oder keine Berechtigung'; exit; @@ -343,272 +257,100 @@ else } } - -$xml_found = false; -$addons = new addon(); - -foreach($addons->aktive_addons as $addon) -{ - $xmlfile = DOC_ROOT.'addons/'.$addon.'/rdf/'.$xml; - if(file_exists($xmlfile)) - { - $xml_found = true; - $xml_url = XML_ROOT.'../addons/'.$addon.'/rdf/'.$xml.$params; - break; - } -} -if(!$xml_found) - $xml_url=XML_ROOT.$xml.$params; - - -// Load the XML source -$xml_doc = new DOMDocument; - -//echo $xml_url; -if(!$xml_doc->load($xml_url)) - die('unable to load xml: '.$xml_url); - -//Pdf erstellen - //wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen -$nachname=''; -if(isset($_GET['uid']) && $_GET['uid']!='') +$nachname = ''; +if (isset($_GET['uid']) && $_GET['uid']!='') { $uid = str_replace(';','',$_GET['uid']); $benutzer_obj = new benutzer(); - if($benutzer_obj->load($uid)) + if ($benutzer_obj->load($uid)) $nachname = '_'.convertProblemChars($benutzer_obj->nachname); } -$filename=$xsl.$nachname; +$filename = $xsl.$nachname; + +if ($xsl_oe_kurzbz == '') +{ + if ($xsl_stg_kz == '') + $xsl_stg_kz = '0'; + $stg_obj = new studiengang(); + if (!$stg_obj->load($xsl_stg_kz)) + die($stg_obj->errormsg); + $xsl_oe_kurzbz = $stg_obj->oe_kurzbz; +} + +if($sign === true && $vorlage->signierbar === false) +{ + die('Diese Vorlage darf nicht signiert werden'); +} if (!isset($_REQUEST["archive"])) { - if(mb_strstr($vorlage->mimetype, 'application/vnd.oasis.opendocument')) + 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; + $dokument = new dokument_export($xsl, $xsl_oe_kurzbz, $version); + $dokument->addDataURL($xml, $params); - if(!$xsl_doc->loadXML($xsl_content)) - 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; - $tmp = sys_get_temp_dir(); - $tempfolder = $tmp.'/FHC'.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']) || $vorlage->style!='') - { - //Wenn die Spalte style in der DB befuellt ist, wird dieses verwendet - if($vorlage->style!='') - { - $style_xsl_doc = new DOMDocument; - if(!$style_xsl_doc->loadXML($vorlage->style)) - die('unable to load xsl from tbl_vorlagestudiengang'); - } - else - { - $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']) || $vorlage->style!='') - exec("zip $tempname_zip styles.xml"); - - clearstatcache(); - if($vorlage->bezeichnung!='') - $filename = $vorlage->bezeichnung.$nachname; - else - $filename = $vorlage->vorlage_kurzbz.$nachname; - 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 = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$studienordnung->studiengangkurzbzlang; - $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 = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$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 = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$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']) || $vorlage->style!='') - unlink('styles.xml'); - unlink($tempname_zip); - if($output=='pdf' || $output=='doc') - unlink($tempPdfName); - rmdir($tempfolder); - } - } - else - { - if(PDF_CREATE_FUNCTION=='FOP') - { - $fop = new fop(); - $xml = $xml_doc->saveXML(); - //$xml = ''; - //$xsl='foobar'; - $fop->generatePdf($xml, $xsl_content, $filename, "D"); - } + /** + * Get Filename + * TODO cleanup + */ + if ($vorlage->bezeichnung!='') + $filename = $vorlage->bezeichnung.$nachname; else + $filename = $vorlage->vorlage_kurzbz.$nachname; + + switch($xsl) { - $fo2pdf = new XslFo2Pdf(); - - // Load the XSL source - $xsl_doc = new DOMDocument; - - if(!$xsl_doc->loadXML($xsl_content)) - die('unable to load xsl'); - - // Configure the transformer - $proc = new XSLTProcessor; - $proc->importStyleSheet($xsl_doc); // attach the xsl rules - - $buffer = $proc->transformToXml($xml_doc); - if (!$fo2pdf->generatePdf($buffer, $filename, "D")) - { - echo('Failed to generate PDF'); - } + case 'LV_Informationen': + $studiengang = new studiengang($_GET['stg_kz']); + $studiensemester = new studiensemester($_GET['ss']); + $filename = $filename.'_'.$studiengang->kurzbzlang.'_'.$studiensemester->studiensemester_kurzbz; + break; + case 'Honorarvertrag': + $filename = $filename.'_'.$benutzer_obj->nachname.'_'.$benutzer_obj->vorname; + break; + case 'Studienordnung': + $studienordnung = new studienordnung(); + $studienordnung->loadStudienordnung($_GET['studienordnung_id']); + $filename = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$studienordnung->studiengangkurzbzlang; + break; } + + $dokument->setFilename($filename); + + if ($sign === true) + { + $dokument->sign($user); + } + + if ($dokument->create($output)) + $dokument->output(); + else + echo $dokument->errormsg; + + $dokument->close(); } } else { + if(!$vorlage->archivierbar) + die('Dieses Dokument ist nicht archivierbar'); + // Archivieren von Dokumenten $uid = $_REQUEST["uid"]; $heute = date('Y-m-d'); - $student=new student(); + $student = new student(); $student->load($uid); - if(isset($_REQUEST['ss'])) + if (isset($_REQUEST['ss'])) { $ss = $_REQUEST["ss"]; - $prestudent=new prestudent(); + $prestudent = new prestudent(); $prestudent->getLastStatus($student->prestudent_id,$ss); - $semester=$prestudent->ausbildungssemester; + $semester = $prestudent->ausbildungssemester; $query = "SELECT tbl_studiengang.studiengang_kz, tbl_studentlehrverband.semester, tbl_studiengang.typ, @@ -621,9 +363,9 @@ else 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)) + if ($result = $db->db_query($query)) { - if($row = $db->db_fetch_object($result)) + if ($row = $db->db_fetch_object($result)) { $person_id = $row->person_id; $titel = $xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester; @@ -632,7 +374,7 @@ else } else { - $echo = 'Datensatz wurde nicht gefunden'; + die('Student hat keinen Status in diesem Semester'); } } } @@ -646,170 +388,75 @@ else $bezeichnung = $vorlage->bezeichnung.'_'.$studiengang->kuerzel; } - if($rechte->isBerechtigt('admin', $studiengang_kz, 'suid') || $rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid')) + if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid') + || $rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid')) { - if(mb_strstr($vorlage->mimetype, 'application/vnd.oasis.opendocument')) + $dokument = new dokument_export($xsl, $xsl_oe_kurzbz, $version); + $dokument->addDataURL($xml, $params); + + $dokument->setFilename($filename); + + $error = false; + + // Beim Archivieren wird das Dokument immer signiert wenn moeglich + if($vorlage->signierbar) + $sign = true; + + if ($sign === true) { - 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($xsl_content)) - 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; - $tmp = sys_get_temp_dir(); - $tempfolder = $tmp.'/FHC'.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']) || $vorlage->style!='') - { - //Wenn die Spalte style in der DB befuellt ist, wird dieses verwendet - if($vorlage->style!='') - { - $style_xsl_doc = new DOMDocument; - if(!$style_xsl_doc->loadXML($vorlage->style)) - die('unable to load xsl from tbl_vorlagestudiengang'); - } - else - { - $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']) || $vorlage->style!='') - exec("zip $tempname_zip styles.xml"); - - clearstatcache(); - - $tempPdfName = $vorlage->vorlage_kurzbz.'.pdf'; - exec("unoconv -e IsSkipEmptyPages=false --stdout -f pdf $tempname_zip > $tempPdfName"); - } - $file = $tempfolder.'/'.$tempPdfName; + $dokument->sign($user); } + + if ($dokument->create($output)) + $doc = $dokument->output(false); else { - if(PDF_CREATE_FUNCTION=='FOP') + $errormsg = $dokument->errormsg; + $error = true; + } + + $dokument->close(); + + if(!$error) + { + $hex = base64_encode($doc); + $akte = new akte(); + $akte->person_id = $person_id; + if($vorlage->dokument_kurzbz!='') + $akte->dokument_kurzbz = $vorlage->dokument_kurzbz; + else + $akte->dokument_kurzbz = 'Zeugnis'; + $akte->inhalt = $hex; + $akte->mimetype = 'application/pdf'; + $akte->erstelltam = $heute; + $akte->gedruckt = true; + $akte->titel = $titel.'.pdf'; + $akte->bezeichnung = $bezeichnung; + $akte->updateamum = ''; + $akte->updatevon = ''; + $akte->insertamum = date('Y-m-d H:i:s'); + $akte->insertvon = $user; + $akte->ext_id = ''; + $akte->uid = $uid; + $akte->new = true; + $akte->archiv = true; + $akte->signiert = $sign; + $akte->stud_selfservice = $vorlage->stud_selfservice; + + if (!$akte->save()) { - $fop = new fop(); - $file = $fop->generatePdf($xml_doc->saveXML(), $xsl_content, $filename, "F"); + echo 'Erstellen Fehlgeschlagen: '.$akte->errormsg; + return false; } else { - $filename = $user; - $fo2pdf = new XslFo2Pdf(); - - // Load the XSL source - $xsl_doc = new DOMDocument; - - if(!$xsl_doc->loadXML($xsl_content)) - die('unable to load xsl'); - - // Configure the transformer - $proc = new XSLTProcessor; - $proc->importStyleSheet($xsl_doc); // attach the xsl rules - - $buffer = $proc->transformToXml($xml_doc); - - if (!$fo2pdf->generatePdf($buffer, $filename, 'F')) - { - echo('Failed to generate PDF'); - } - $tmp = sys_get_temp_dir(); - $file = $tmp."/FHC".$filename.".pdf"; + return true; } } - - $handle = fopen($file, "rb"); - $string = fread($handle, filesize($file)); - fclose($handle); - //$string = file_get_contents($file); - unlink($file); - - $hex=""; - //for ($i=0;$iperson_id = $person_id; - $akte->dokument_kurzbz = "Zeugnis"; - $akte->inhalt = $hex; - $akte->mimetype = "application/octet-stream"; - $akte->erstelltam = $heute; - $akte->gedruckt = true; - $akte->titel = $titel.".pdf"; - $akte->bezeichnung = $bezeichnung; - $akte->updateamum = ""; - $akte->updatevon = ""; - $akte->insertamum = date('Y-m-d h:m:s'); - $akte->insertvon = $user; - $akte->ext_id = ""; - $akte->uid = $uid; - $akte->new = true; - if (!$akte->save()) - { - echo 'Erstellen Fehlgeschlagen: '.$akte->errormsg; - return false; - } else { - return true; + echo $errormsg; + return false; } } else diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 655363f3e..99f3c2768 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1274,7 +1274,7 @@ function StudentAuswahl() { // *** Zeugnis *** zeugnistree = document.getElementById('student-zeugnis-tree'); - url='rdf/akte.rdf.php?person_id='+person_id+"&dokument_kurzbz=Zeugnis&"+gettimestamp(); + url='rdf/akte.rdf.php?person_id='+person_id+"&"+gettimestamp(); try { @@ -2933,7 +2933,9 @@ function StudentAkteDel() // **** function StudentAkteDisableFields(val) { - document.getElementById('student-zeugnis-button-archivieren').disabled=val; + document.getElementById('student-zeugnis-button-archive').disabled=val; + // Zeugnis als Default markieren + document.getElementById('student-zeugnis-menulist-dokument').value='Zeugnis'; } // **** @@ -2962,14 +2964,8 @@ function StudentAkteUpload() window.open('../vilesci/personen/akteupdate.php?akte_id='+akte_id); } -// **** -// * Startet das Script zum Archivieren des Zeugnisses und -// * Refresht dann den Tree -// **** -function StudentZeugnisArchivieren(lang) +function StudentZeugnisDokumentArchivieren() { - lang = lang || 'ger'; - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-tree'); @@ -2988,6 +2984,47 @@ function StudentZeugnisArchivieren(lang) var errormsg = ''; var stsem = getStudiensemester(); + var vorlage = document.getElementById('student-zeugnis-menulist-dokument').value; + var url = 'content/pdfExport.php'; + var xml = ''; + + switch(vorlage) + { + case 'Zeugnis': + case 'ZeugnisEng': + xml = 'zeugnis.rdf.php' + break; + + case 'PrProtokollBakk': + case 'PrProtBakkEng': + case 'PrProtBA': + case 'PrProtBAEng': + case 'PrProtokollDipl': + case 'PrProtDiplEng': + case 'PrProtMA': + case 'PrProtMAEng': + case 'Bescheid': + case 'BescheidEng': + xml = 'abschlusspruefung.rdf.php'; + break; + + case 'DiplSupplement': + xml = 'diplomasupplement.xml.php'; + break; + + case 'Studienblatt': + case 'StudienblattEng': + xml = 'studienblatt.xml.php'; + break; + default: + alert('Das archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt'); + return + break; + } + + var labelalt = document.getElementById('student-zeugnis-button-archive').label; + document.getElementById('student-zeugnis-button-archive').label='Loading...'; + //Zeugnis fuer alle markierten Studenten archivieren for (var t=0; tcontent/notizdialog.xul.php?anrechnung_id="+anrechnung_id,"","chrome, status=no, width=500, height=500, centerscreen, resizable"); @@ -4565,7 +4515,7 @@ function StudentAnrechnungNeu() document.getElementById("student-anrechnungen-menulist-kompatible_lehrveranstaltung-row").hidden = true; StudentAnrechnungDetailDisableFields(false); - StudentAnrechnungResetNotizLabel(); + StudentAnrechnungResetNotizLabel(); // Prestudent-ID in hidden field speichern var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; @@ -4751,7 +4701,7 @@ function StudentAnrechnungDelete() } //Ausgewaehlte ID holen - var col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id"; + var col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id"; var anrechnung_id = tree.view.getCellText(tree.currentIndex,col); // Studiengang ermitteln @@ -4793,7 +4743,7 @@ function StudentAnrechnungDelete() // **** function StudentAnrechnungResetNotizLabel() { - document.getElementById('student-anrechnungen-button-notiz').label = "Notiz hinzufügen"; + document.getElementById('student-anrechnungen-button-notiz').label = "Notiz hinzufügen"; } // **** @@ -4809,7 +4759,7 @@ function StudentAnrechnungAuswahl() StudentAnrechnungDetailDisableFields(false); //Ausgewaehlte ID holen - var col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id"; + var col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id"; var anrechnung_id = tree.view.getCellText(tree.currentIndex,col); // Prestudent-ID in hidden field speichern @@ -4821,7 +4771,7 @@ function StudentAnrechnungAuswahl() var url = 'rdf/anrechnung.rdf.php?anrechnung_id='+anrechnung_id+'&'+gettimestamp(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - var dsource = rdfService.GetDataSourceBlocking(url); + var dsource = rdfService.GetDataSourceBlocking(url); var subject = rdfService.GetResource("http://www.technikum-wien.at/anrechnung/" + anrechnung_id); var predicateNS = "http://www.technikum-wien.at/anrechnung/rdf"; @@ -5198,46 +5148,6 @@ function StudentCreateDiplSupplement(event) window.open('content/pdfExport.php?xml=diplomasupplement.xml.php&output='+output+'&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&uid='+paramList,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } -// **** -// * Archiviert das Diplomasupplement einer Person -// **** -function StudentDiplomasupplementArchivieren() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - tree = document.getElementById('student-tree'); - - //Markierte Studenten holen - var start = new Object(); - var end = new Object(); - var numRanges = tree.view.selection.getRangeCount(); - var paramList= ''; - var errormsg=''; - - var labelalt = document.getElementById('student-zeugnis-button-archivieren-diplomasupplement').label; - document.getElementById('student-zeugnis-button-archivieren-diplomasupplement').label='Loading...'; - for (var t = 0; t < numRanges; t++) - { - tree.view.selection.getRangeAt(t,start,end); - for (var v = start.value; v <= end.value; v++) - { - var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; - var uid=tree.view.getCellText(v,col); - stg_kz=getTreeCellText(tree,"student-treecol-studiengang_kz", v); - - url = 'content/pdfExport.php?xml=diplomasupplement.xml.php&output=pdf&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&uid='+uid+'&archive=true'; - var req = new phpRequest(url,'',''); - - var response = req.execute(); - if(response!='') - errormsg = errormsg + response; - } - } - - document.getElementById('student-zeugnis-button-archivieren-diplomasupplement').label=labelalt; - StudentAkteTreeDatasource.Refresh(false); -} - // **** // * Erstellt den Ausbildungsvertrag fuer einen oder mehrere Studenten // **** @@ -5284,7 +5194,7 @@ function StudentPrintAusbildungsvertrag(event) } //PDF erzeugen - window.open('content/pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=Ausbildungsver&style_xsl=AusbildStatus&output='+output+'&prestudent_id='+paramList,'Ausbildungsvertrag', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); + window.open('content/pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=Ausbildungsver&output='+output+'&prestudent_id='+paramList,'Ausbildungsvertrag', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } //**** @@ -5333,7 +5243,7 @@ function StudentPrintAusbildungsvertragEnglisch(event) } //PDF erzeugen - window.open('content/pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&style_xsl=AusbVerEngHead&output='+output+'&prestudent_id='+paramList,'AusbildungsvertragEng', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); + window.open('content/pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&output='+output+'&prestudent_id='+paramList,'AusbildungsvertragEng', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** @@ -5558,7 +5468,7 @@ function StudentPrestudentRolleVorruecken() if (tree.currentIndex==-1) { - return; + return; } //markierte Rolle holen diff --git a/content/student/studentzeugnisoverlay.xul.php b/content/student/studentzeugnisoverlay.xul.php index 53a27174d..3337dd888 100644 --- a/content/student/studentzeugnisoverlay.xul.php +++ b/content/student/studentzeugnisoverlay.xul.php @@ -77,7 +77,7 @@ echo ''; class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/akte/rdf#erstelltam" /> -