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 '
";
+
+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($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 '
+
+
+ | Vorlage |
+ Organisationseinheit |
+ Studiengang |
+ Version |
+ Anmerkung |
+ |
+
+
+ ';
+
+ 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 '
+
+ | '.$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).' |
+ Edit |
+ Delete |
+
+
';
+ }
+ echo '
';
+}
+
+echo '
+';