diff --git a/content/pdfExport.php b/content/pdfExport.php index f981f3a2c..245b14899 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -341,14 +341,24 @@ if (!isset($_REQUEST["archive"])) // 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'])) + if(isset($_GET['style_xsl']) || $vorlage->style!='') { - $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'); + //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; @@ -380,7 +390,7 @@ if (!isset($_REQUEST["archive"])) if(copy($zipfile, $tempname_zip)) { exec("zip $tempname_zip content.xml"); - if(isset($_GET['style_xsl'])) + if(isset($_GET['style_xsl']) || $vorlage->style!='') exec("zip $tempname_zip styles.xml"); clearstatcache(); @@ -464,7 +474,7 @@ if (!isset($_REQUEST["archive"])) fclose($handle); unlink('content.xml'); - if(isset($_GET['style_xsl'])) + if(isset($_GET['style_xsl']) || $vorlage->style!='') unlink('styles.xml'); unlink($tempname_zip); if($output=='pdf' || $output=='doc') @@ -595,12 +605,22 @@ else // 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'); + //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; @@ -632,7 +652,7 @@ else if(copy($zipfile, $tempname_zip)) { exec("zip $tempname_zip content.xml"); - if(isset($_GET['style_xsl'])) + if(isset($_GET['style_xsl']) || $vorlage->style!='') exec("zip $tempname_zip styles.xml"); clearstatcache(); diff --git a/include/service.class.php b/include/service.class.php index 69a8d3f26..da78bc8a5 100755 --- a/include/service.class.php +++ b/include/service.class.php @@ -203,7 +203,6 @@ class service extends basis_db ) AS a GROUP BY service_id,oe_kurzbz,bezeichnung,beschreibung,ext_id,content_id ORDER BY anzahl DESC,bezeichnung,oe_kurzbz"; - echo $qry; if($result = $this->db_query($qry)) { diff --git a/include/vorlage.class.php b/include/vorlage.class.php index d338d107d..5da7d1be2 100644 --- a/include/vorlage.class.php +++ b/include/vorlage.class.php @@ -34,11 +34,18 @@ class vorlage extends basis_db public $new; //Tabellenspalten - public $vorlage_kurzbz; // varchar(16) - public $studiengang_kz; // integer - public $version; // smallint - public $text; // text - public $mimetype; // varchar(64) + public $vorlage_kurzbz; // varchar(16) + public $studiengang_kz; // integer + public $version; // smallint + public $text; // text + public $mimetype; // varchar(64) + public $bezeichnung; // varchar(64) + public $anmerkung; // text + public $style; // text + public $berechtigung; // varchar(32)[] + public $oe_kurzbz; // varchar(32) + public $vorlagestudiengang_id; // bigint + public $anmerkung_vorlagestudiengang; // text /** * Konstruktor @@ -47,7 +54,321 @@ class vorlage extends basis_db { parent::__construct(); } + + /** + * Laedt eine Vorlage + * @param $vorlage_kurzbz + * @return true wenn ok, false im Fehlerfall + */ + public function loadVorlage($vorlage_kurzbz) + { + $qry = "SELECT * FROM public.tbl_vorlage WHERE vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz); + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->vorlage_kurzbz = $row->vorlage_kurzbz; + $this->bezeichnung = $row->bezeichnung; + $this->anmerkung = $row->anmerkung; + $this->mimetype = $row->mimetype; + return true; + } + else + { + $this->errormsg = 'Eintrag wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Speichert eine Vorlage + * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + * angelegt, ansonsten der Datensatz upgedated + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function saveVorlage($new=null) + { + if(is_null($new)) + $new = $this->new; + + if($new) + { + $qry = "INSERT INTO public.tbl_vorlage(vorlage_kurzbz, bezeichnung, anmerkung, mimetype) VALUES(". + $this->db_add_param($this->vorlage_kurzbz).','. + $this->db_add_param($this->bezeichnung).','. + $this->db_add_param($this->anmerkung).','. + $this->db_add_param($this->mimetype).');'; + } + else + { + $qry = 'UPDATE public.tbl_vorlage + SET bezeichnung='.$this->db_add_param($this->bezeichnung).', + anmerkung='.$this->db_add_param($this->anmerkung).', + mimetype='.$this->db_add_param($this->mimetype).', + WHERE vorlage_kurzbz='.$this->db_add_param($this->vorlage_kurzbz).';'; + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern: '.$this->db_last_error(); + return false; + } + } + + /** + * Liefert alle Vorlagen + * @param $order Sortierreihenfolge. Default:vorlage_kurzbz + */ + public function getAllVorlagen($order='vorlage_kurzbz') + { + $qry ="SELECT * FROM public.tbl_vorlage ORDER BY ".$order.";"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new vorlage(); + $obj->vorlage_kurzbz = $row->vorlage_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->anmerkung = $row->anmerkung; + $obj->mimetype = $row->mimetype; + + $this->result[]= $obj; + } + } + else + return false; + } + + /** + * Laedt die Vorlage zu einer OE + * @param $vorlage_kurzbz + * @return true wenn ok, false im Fehlerfall + */ + public function loadVorlageOE($vorlagestudiengang_id) + { + $qry = "SELECT * FROM public.tbl_vorlagestudiengang WHERE vorlagestudiengang_id=".$this->db_add_param($vorlagestudiengang_id); + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->vorlagestudiengang_id = $row->vorlagestudiengang_id; + $this->vorlage_kurzbz = $row->vorlage_kurzbz; + $this->studiengang_kz = $row->studiengang_kz; + $this->version = $row->version; + $this->text = $row->text; + $this->oe_kurzbz = $row->oe_kurzbz; + $this->style = $row->style; + $this->berechtigung = $row->berechtigung; + $this->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang; + return true; + } + else + { + $this->errormsg = 'Eintrag wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Versionen einer Vorlage + * @param $vorlage_kurzbz + * @param $oe_kurzbz Optional. Gibt nur die Vorlagen zu dieser OE aus. + * @return true wenn ok, false im Fehlerfall + */ + public function getAllVersions($vorlage_kurzbz=null, $oe_kurzbz=null) + { + $qry = "SELECT + * + FROM + public.tbl_vorlagestudiengang + WHERE + 1=1"; + if(!is_null($vorlage_kurzbz) && $vorlage_kurzbz!='') + { + $qry.=" AND vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz); + } + if(!is_null($oe_kurzbz) && $oe_kurzbz!='') + { + $qry.=" AND oe_kurzbz=".$this->db_add_param($oe_kurzbz); + } + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new vorlage(); + $obj->vorlagestudiengang_id = $row->vorlagestudiengang_id; + $obj->vorlage_kurzbz = $row->vorlage_kurzbz; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->version = $row->version; + $obj->text = $row->text; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->style = $row->style; + $obj->berechtigung = $row->berechtigung; + $obj->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang; + + $this->result[]= $obj; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Liefert alle OEs, welche die $vorlage_kurzbz verwenden + * @param $vorlage_kurzbz Kurzbezeichnung der Vorlage + */ + public function getOEsFromVorlage($vorlage_kurzbz=null) + { + $qry ="SELECT DISTINCT + tbl_organisationseinheit.* + FROM + public.tbl_vorlagestudiengang + JOIN + public.tbl_organisationseinheit USING (oe_kurzbz) + WHERE + vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz)." + ORDER BY oe_kurzbz"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new vorlage(); + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->oe_parent_kurzbz = $row->oe_parent_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->organisationseinheittyp_kurzbz = $row->organisationseinheittyp_kurzbz; + $obj->aktiv = $this->db_parse_bool($row->aktiv); + $obj->mailverteiler = $this->db_parse_bool($row->mailverteiler); + $obj->lehre = $this->db_parse_bool($row->lehre); + + $this->result[]= $obj; + } + } + else + return false; + } + + /** + * Speichert die Vorlage zu einer OE + * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + * angelegt, ansonsten der Datensatz upgedated + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function saveVorlageOE($new=null) + { + if($new == null) + $new = $this->new; + + if($new) + { + $qry = "INSERT INTO public.tbl_vorlagestudiengang(vorlage_kurzbz,studiengang_kz,version,text,oe_kurzbz,style,berechtigung,anmerkung_vorlagestudiengang) VALUES(". + $this->db_add_param($this->vorlage_kurzbz).','. + $this->db_add_param($this->studiengang_kz).','. + $this->db_add_param($this->version).','. + $this->db_add_param($this->text).','. + $this->db_add_param($this->oe_kurzbz).','. + $this->db_add_param($this->style).','. + $this->db_add_param($this->berechtigung).','. + $this->db_add_param($this->anmerkung_vorlagestudiengang).');'; + } + else + { + $qry = 'UPDATE public.tbl_vorlagestudiengang + SET vorlage_kurzbz='.$this->db_add_param($this->vorlage_kurzbz).', + studiengang_kz='.$this->db_add_param($this->studiengang_kz).', + version='.$this->db_add_param($this->version).', + text='.$this->db_add_param($this->text).', + oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', + style='.$this->db_add_param($this->style).', + berechtigung='.$this->db_add_param($this->berechtigung).', + anmerkung_vorlagestudiengang='.$this->db_add_param($this->anmerkung_vorlagestudiengang).' + WHERE vorlagestudiengang_id='.$this->db_add_param($this->vorlagestudiengang_id).';'; + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern: '.$this->db_last_error(); + return false; + } + } + + /** + * Löscht die Vorlagestudiengagn + * @param type $vorlagestudiengang_id ID der Vorlage + */ + public function deleteVorlagestudiengang($vorlagestudiengang_id) + { + $qry = 'DELETE FROM public.tbl_vorlagestudiengang WHERE vorlagestudiengang_id='.$this->db_add_param($vorlagestudiengang_id).';'; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Vorlage konnte nicht gelöscht werden'; + return false; + } + } + /** + * Liefert die hoechste Version der Vorlage + * + * @param $oe_kurzbz Organisationseinheit der Vorlage + * @param $vorlage_kurzbz Name der Vorlage + */ + public function getMaxVersion($oe_kurzbz, $vorlage_kurzbz) + { + $qry = "SELECT + max(version) maxversion + FROM + public.tbl_vorlagestudiengang + WHERE + vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz)." + AND + oe_kurzbz=".$this->db_add_param($oe_kurzbz); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + return $row->maxversion; + else + return 0; + } + else + { + $this->errormsg='Fehler beim Ermitteln der hoechsten Version'; + return false; + } + } + + /** * Liefert die aktuelle Vorlage * @@ -116,6 +437,10 @@ class vorlage extends basis_db $this->text = $row->text; $this->mimetype = $row->mimetype; $this->bezeichnung = $row->bezeichnung; + $this->style = $row->style; + $this->berechtigung = $row->berechtigung; + $this->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang; + return true; } else diff --git a/system/checksystem.php b/system/checksystem.php index f21ecd937..9c914bbf6 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3146,7 +3146,6 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } - // Spalte anrechnung_id fuer campus.tbl_pruefungsanmeldung if(!$result = @$db->db_query("SELECT anrechnung_id FROM campus.tbl_pruefungsanmeldung")) { @@ -3173,6 +3172,74 @@ if(!$result = @$db->db_query("SELECT warn_semesterstunden_frei FROM public.tbl_o echo ' public.tbl_organisationseinheit: neue Spalte warn_semesterstunden_frei, warn_semesterstunden_fix hinzugefuegt!
'; } +// Gruppe CMS_LOCK anlegen (benoetigt fuer das Sperren von CMS-Content) +if($result = @$db->db_query("SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz='CMS_LOCK' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,WAHR,FALSE,FALSE); + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_gruppe '.$db->db_last_error().'
'; + else + echo ' public.tbl_gruppe: Gruppe CMS_LOCK angelegt (benoetigt fuer das Sperren von CMS-Content)
'; + } +} + +// DMS-Kategorie Akte anlegen und mit CMS_LOCK sperren +if($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz='Akte' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO campus.tbl_dms_kategorie(kategorie_kurzbz,bezeichnung,beschreibung,parent_kategorie_kurzbz) VALUES('Akte','Akten','Akten zu Personen',NULL); + INSERT INTO campus.tbl_dms_kategorie_gruppe(kategorie_kurzbz,gruppe_kurzbz,insertamum,insertvon) VALUES('Akte','CMS_LOCK',now(),'checksystem'); + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_dms_kategorie '.$db->db_last_error().'
'; + else + echo ' campus.tbl_dms_kategorie: Kategorie Akte angelegt und mit Gruppe CMS_LOCK gesperrt
'; + } +} + +// DMS-Kategorie notiz anlegen und mit CMS_LOCK sperren +if($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz='notiz' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO campus.tbl_dms_kategorie(kategorie_kurzbz,bezeichnung,beschreibung,parent_kategorie_kurzbz) VALUES('notiz','Notizen',NULL,NULL); + INSERT INTO campus.tbl_dms_kategorie_gruppe(kategorie_kurzbz,gruppe_kurzbz,insertamum,insertvon) VALUES('notiz','CMS_LOCK',now(),'checksystem'); + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_dms_kategorie '.$db->db_last_error().'
'; + else + echo ' campus.tbl_dms_kategorie: Kategorie Notiz angelegt und mit Gruppe CMS_LOCK gesperrt
'; + } +} + +// Spalte style, berechtigung und anmerkung_vorlagestudiengang fuer public.tbl_vorlagestudiengang und neues Recht basis/dokumente fuer die Dokumentenverwaltung +if(!$result = @$db->db_query("SELECT style FROM public.tbl_vorlagestudiengang")) +{ + $qry = "ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN style text; + ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN berechtigung varchar(32)[]; + ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN anmerkung_vorlagestudiengang text; + + INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('basis/dokumente','Verwaltung der Dokumentvorlagen'); + + GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_vorlagestudiengang TO vilesci; + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_vorlagestudiengang: '.$db->db_last_error().'
'; + else + echo '
public.tbl_vorlagestudiengang: Neue Spalten style, berechtigung und anmerkung_vorlagestudiengang hinzugefuegt. Neues Recht basis/dokumente angelegt'; +} + echo '


'; $tabellen=array( @@ -3386,7 +3453,7 @@ $tabellen=array( "public.tbl_tag" => array("tag"), "public.tbl_variable" => array("name","uid","wert"), "public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype"), - "public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz"), + "public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz","style","berechtigung","anmerkung_vorlagestudiengang"), "testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "insertamum","insertvon","updateamum", "updatevon","ablauf_vorgaben_id"), "testtool.tbl_ablauf_vorgaben" => array("ablauf_vorgaben_id","studiengang_kz","sprache","sprachwahl","content_id","insertamum","insertvon","updateamum", "updatevon"), "testtool.tbl_antwort" => array("antwort_id","pruefling_id","vorschlag_id"), diff --git a/vilesci/stammdaten/dokumentvorlagen_verwaltung.php b/vilesci/stammdaten/dokumentvorlagen_verwaltung.php new file mode 100644 index 000000000..acb05a424 --- /dev/null +++ b/vilesci/stammdaten/dokumentvorlagen_verwaltung.php @@ -0,0 +1,381 @@ + + */ +/** + * Dokumentvorlagen + * + * - Anlegen und Bearbeiten von Dokumentvorlagen + * + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/vorlage.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/organisationseinheit.class.php'); +require_once('../../include/studiengang.class.php'); + +if (!$db = new basis_db()) +{ + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); +} + +$user = get_uid(); +$oe_kurzbz = (isset($_REQUEST['oe_kurzbz']) ? $_REQUEST['oe_kurzbz'] : null); +$vorlage_kurzbz = (isset($_REQUEST['vorlage_kurzbz']) ? $_REQUEST['vorlage_kurzbz'] : null); +$vorlagestudiengang_id = (isset($_REQUEST['vorlagestudiengang_id']) ? $_REQUEST['vorlagestudiengang_id'] : null); +$neu = (isset($_REQUEST['neu']) ? true : false); + +$studiengang = new studiengang(); +$studiengang->load('0'); +$default_oe = $studiengang->oe_kurzbz; + + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('basis/dokumente')) +{ + die($rechte->errormsg); +} + +echo ' + + + + Dokumentvorlagen Verwaltung + + + + + + + + + +

Dokumentvorlagen Verwaltung

'; + +// Speichern einer Dokumentvorlage +if(isset($_POST['speichern'])) +{ + + if(!$rechte->isBerechtigt('basis/dokumente', $oe_kurzbz, 'sui')) + { + die($rechte->errormsg); + } + + $dokumentvorlage = new vorlage(); + + if(isset($_POST['vorlagestudiengang_id']) && $_POST['vorlagestudiengang_id']!='') + { + //Vorlage laden + if(!$dokumentvorlage->loadVorlageOE($_POST['vorlagestudiengang_id'])) + { + die($dokumentvorlage->errormsg); + } + + $dokumentvorlage->new=false; + $dokumentvorlage->vorlagestudiengang_id = $_POST['vorlagestudiengang_id']; + } + else + { + //Neue Vorlage anlegen + $dokumentvorlage->new=true; + } + + $studiengang = new studiengang(); + $studiengang->getStudiengangFromOe($_POST['oe_kurzbz']); + + if ($studiengang->studiengang_kz=='') + $studiengang_kz = 0; + else + $studiengang_kz = $studiengang->studiengang_kz; + + $dokumentvorlage->vorlage_kurzbz = $_POST['vorlage_kurzbz']; + $dokumentvorlage->studiengang_kz = $studiengang_kz; + $dokumentvorlage->version = $_POST['version']; + $dokumentvorlage->text = $_POST['content']; + $dokumentvorlage->oe_kurzbz = $_POST['oe_kurzbz']; + $dokumentvorlage->style = $_POST['style']; + $dokumentvorlage->berechtigung = $_POST['berechtigung']; + $dokumentvorlage->anmerkung_vorlagestudiengang = $_POST['anmerkung']; + + if($dokumentvorlage->saveVorlageOE()) + { + echo 'Daten wurden erfolgreich gespeichert'; + //$reihungstest_id = $reihungstest->reihungstest_id; + //$stg_kz = $reihungstest->studiengang_kz; + } + else + { + echo ''.$db->convert_html_chars($dokumentvorlage->errormsg).''; + } + $neu=false; +} + +// Speichern einer Dokumentvorlage +if(isset($_GET['delete'])) +{ + + if(!$rechte->isBerechtigt('basis/dokumente', $oe_kurzbz, 'suid')) + { + die($rechte->errormsg); + } + + if(isset($_GET['vorlagestudiengang_id']) && $_GET['vorlagestudiengang_id']!='') + { + $dokumentvorlage = new vorlage(); + if($dokumentvorlage->deleteVorlagestudiengang($_GET['vorlagestudiengang_id'])) + echo 'Vorlage wurde erfolgreich gelöscht'; + else + echo ''.$dokumentvorlage->errormsg.''; + } + else + echo 'Vorlagestudiengang_ID ist nicht gesetzt'; + + $neu=true; +} + + +echo '
'; + +//Vorlagen DropDown +$vorlage = new vorlage(); +$vorlage->getAllVorlagen('bezeichnung'); + +echo "'; + +//OE-Dropdown +$organisationseinheit = new vorlage(); +$organisationseinheit->getOEsFromVorlage($vorlage_kurzbz); + +if ($organisationseinheit->result=='') +{ + $organisationseinheit = new organisationseinheit(); + $organisationseinheit->getAll(); +} + +echo ""; +echo ""; +echo "

"; + +if($vorlagestudiengang_id=='') + $neu=true; +$vorlageOE = new vorlage(); + +if(!$neu) +{ + if(!$vorlageOE->loadVorlageOE($vorlagestudiengang_id)) + die('Vorlage existiert nicht'); +} +else +{ + $vorlageOE->vorlage_kurzbz = $vorlage_kurzbz; + $vorlageOE->oe_kurzbz = $oe_kurzbz; + $vorlageOE->version = ($vorlageOE->getMaxVersion($oe_kurzbz, $vorlage_kurzbz))+1; +} + +//Formular zum Bearbeiten der Vorlage +echo ' + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + '; + if(!$neu) + $val = 'Änderung Speichern'; + else + $val = 'Neu anlegen'; + + echo ' + + + +
Vorlage'; + + if($vorlageOE->oe_kurzbz!='') + $oe=$vorlageOE->oe_kurzbz; + elseif($oe_kurzbz!='') + $oe=$oe_kurzbz; + else + $oe=$default_oe; + //Vorlagen DropDown + $vorlage = new vorlage(); + $vorlage->getAllVorlagen('bezeichnung'); + + echo ' + +
Organisationseinheit'; + //OE-Dropdown + $organisationseinheit = new organisationseinheit(); + $organisationseinheit->getAll(true, true); + + echo " +
Version
Content (XML)
Style (XML)
Berechtigung
Anmerkung
+ + + +
+
+ +
'; + +if($vorlage_kurzbz!='' || $oe_kurzbz!='') +{ + + $vorlage_version = new vorlage(); + $vorlage_version->getAllVersions($vorlage_kurzbz, $oe_kurzbz); + $oe = new organisationseinheit(); + $vorlage = new vorlage(); + //echo 'Anzahl: '.$db->db_num_rows($vorlage_version->result).''; + + echo ' + + + + + + + + + + + '; + + foreach($vorlage_version->result as $row) + { + $oe->load($row->oe_kurzbz); + $vorlage->loadVorlage($row->vorlage_kurzbz); + $vorlage_bezeichnung = ($vorlage->bezeichnung==''?$vorlage->vorlage_kurzbz:$vorlage->bezeichnung); + + echo ' + + + + + + + + + + '; + } + echo '
VorlageOrganisationseinheitStudiengangVersionAnmerkung
'.$db->convert_html_chars($vorlage_bezeichnung).''.$db->convert_html_chars($oe->organisationseinheittyp_kurzbz.' '.$oe->bezeichnung).''.$db->convert_html_chars($row->studiengang_kz).''.$db->convert_html_chars($row->version).''.$db->convert_html_chars($row->anmerkung_vorlagestudiengang).'EditDelete
'; +} + +echo ' +';