Merge checksystem with dokumentvorlagen

This commit is contained in:
kindlm
2015-07-24 15:59:08 +02:00
5 changed files with 816 additions and 24 deletions
+36 -16
View File
@@ -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();
-1
View File
@@ -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))
{
+330 -5
View File
@@ -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
+69 -2
View File
@@ -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!<br>';
}
// 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 '<strong>public.tbl_gruppe '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_gruppe: Gruppe CMS_LOCK angelegt (benoetigt fuer das Sperren von CMS-Content)<br>';
}
}
// 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 '<strong>campus.tbl_dms_kategorie '.$db->db_last_error().'</strong><br>';
else
echo ' campus.tbl_dms_kategorie: Kategorie Akte angelegt und mit Gruppe CMS_LOCK gesperrt<br>';
}
}
// 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 '<strong>campus.tbl_dms_kategorie '.$db->db_last_error().'</strong><br>';
else
echo ' campus.tbl_dms_kategorie: Kategorie Notiz angelegt und mit Gruppe CMS_LOCK gesperrt<br>';
}
}
// 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 '<strong>public.tbl_vorlagestudiengang: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_vorlagestudiengang: Neue Spalten style, berechtigung und anmerkung_vorlagestudiengang hinzugefuegt. Neues Recht basis/dokumente angelegt';
}
echo '<br><br><br>';
$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"),
@@ -0,0 +1,381 @@
<?php
/* Copyright (C) 2015 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Manfred Kindl < manfred.kindl@technikum-wien.at >
*/
/**
* 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 '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Dokumentvorlagen Verwaltung</title>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="../../include/js/jquery.js"></script>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<script src="../../include/js/jquery1.9.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[1,0],[0,0],[3,1]],
widgets: ["zebra"]
});
});
function confdel(val1,val2)
{
return confirm("Wollen Sie die Vorlage "+val1+" Version "+val2+" wirklich loeschen?");
}
</script>
</head>
<body class="Background_main">
<h2>Dokumentvorlagen Verwaltung</h2>';
// 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 '<b>Daten wurden erfolgreich gespeichert</b>';
//$reihungstest_id = $reihungstest->reihungstest_id;
//$stg_kz = $reihungstest->studiengang_kz;
}
else
{
echo '<span class="input_error">'.$db->convert_html_chars($dokumentvorlage->errormsg).'</span>';
}
$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 '<b>Vorlage wurde erfolgreich gelöscht</b>';
else
echo '<span class="input_error">'.$dokumentvorlage->errormsg.'</span>';
}
else
echo '<span class="input_error">Vorlagestudiengang_ID ist nicht gesetzt</span>';
$neu=true;
}
echo '<br><table width="100%"><tr><td>';
//Vorlagen DropDown
$vorlage = new vorlage();
$vorlage->getAllVorlagen('bezeichnung');
echo "<SELECT name='vorlage_kurzbz' id='vorlage' onchange='window.location.href=this.value'>";
if($vorlage_kurzbz=='')
$selected='selected';
else
$selected='';
echo "<OPTION value='".$_SERVER['PHP_SELF']."?vorlage_kurzbz=&oe_kurzbz=$oe_kurzbz' $selected>Alle Vorlagen</OPTION>";
foreach ($vorlage->result as $row)
{
//if($reihungstest_id=='')
// $reihungstest_id=$row->reihungstest_id;
if($row->vorlage_kurzbz==$vorlage_kurzbz)
$selected='selected';
else
$selected='';
echo '<OPTION value="'.$_SERVER['PHP_SELF'].'?vorlage_kurzbz='.$row->vorlage_kurzbz.'" '.$selected.'>'.$db->convert_html_chars(($row->bezeichnung==''?$row->vorlage_kurzbz:$row->bezeichnung)).'</OPTION>';
echo "\n";
}
echo '</SELECT>';
//OE-Dropdown
$organisationseinheit = new vorlage();
$organisationseinheit->getOEsFromVorlage($vorlage_kurzbz);
if ($organisationseinheit->result=='')
{
$organisationseinheit = new organisationseinheit();
$organisationseinheit->getAll();
}
echo "<SELECT name='oe_kurzbz' id='organisationseinheit' onchange='window.location.href=this.value'>";
if($oe_kurzbz==$default_oe)
$selected='selected';
else
$selected='';
echo "<OPTION value='".$_SERVER['PHP_SELF']."?vorlage_kurzbz=$vorlage_kurzbz&oe_kurzbz=' $selected>Alle Organisationseinheiten</OPTION>";
foreach ($organisationseinheit->result as $row)
{
if($row->oe_kurzbz==$oe_kurzbz)
$selected='selected';
else
$selected='';
echo "<OPTION value='".$_SERVER['PHP_SELF']."?vorlage_kurzbz=$vorlage_kurzbz&oe_kurzbz=$row->oe_kurzbz' $selected>".$db->convert_html_chars($row->organisationseinheittyp_kurzbz." ".$row->bezeichnung)."</OPTION>"."\n";
}
echo "</SELECT>";
echo "<INPUT type='button' value='Anzeigen' onclick='window.location.href=document.getElementById(\"organisationseinheit\").value;'>";
echo "</td></tr></table><br>";
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 '
<input type="button" value="Neue OE-Vorlage anlegen" onclick="window.location.href=\''.$_SERVER['PHP_SELF'].'?vorlage_kurzbz='.$vorlage_kurzbz.'&oe_kurzbz='.$oe_kurzbz.'&neu=true\'" >
<hr>
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
<table>
<tr>
<td>Vorlage</td>
<td>';
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 '<SELECT name="vorlage_kurzbz" id="vorlage">';
foreach ($vorlage->result as $row)
{
//if($reihungstest_id=='')
// $reihungstest_id=$row->reihungstest_id;
if($row->vorlage_kurzbz==$vorlageOE->vorlage_kurzbz)
$selected='selected';
else
$selected='';
echo '<OPTION value="'.$row->vorlage_kurzbz.'" '.$selected.'>'.$db->convert_html_chars(($row->bezeichnung==''?$row->vorlage_kurzbz:$row->bezeichnung)).'</OPTION>';
echo "\n";
}
echo '</SELECT>
</td>
<tr>
<td>Organisationseinheit</td>
<td>';
//OE-Dropdown
$organisationseinheit = new organisationseinheit();
$organisationseinheit->getAll(true, true);
echo "<SELECT name='oe_kurzbz'>";
foreach ($organisationseinheit->result as $row)
{
//Wenn keine OE uebergeben wurde, nimm die OE vom Studiengang 0
if($row->oe_kurzbz==$oe)
$selected='selected';
else
$selected='';
echo '<OPTION value="'.$row->oe_kurzbz.'" '.$selected.'>'.$db->convert_html_chars($row->organisationseinheittyp_kurzbz.' '.$row->bezeichnung).'</OPTION>';
echo "\n";
}
echo '</SELECT>
</td>
</tr>
<tr>
<td>Version</td>
<td><input type="text" size="4" maxlength="3" name="version" id="version" value="'.$db->convert_html_chars($vorlageOE->version).'"></td>
</tr>
<tr>
<td>Content (XML)</td>
<td><textarea cols="80" rows="8" name="content">'.$db->convert_html_chars($vorlageOE->text).'</textarea></td>
</tr>
<tr>
<td>Style (XML)</td>
<td><textarea cols="80" rows="8" name="style">'.$db->convert_html_chars($vorlageOE->style).'</textarea></td>
</tr>
<tr>
<td>Berechtigung</td>
<td><input type="text" size="64" maxlength="64" name="berechtigung" value="'.$db->convert_html_chars($vorlageOE->berechtigung).'"></td>
</tr>
<tr>
<td>Anmerkung</td>
<td><textarea cols="80" rows="2" name="anmerkung">'.$db->convert_html_chars($vorlageOE->anmerkung_vorlagestudiengang).'</textarea></td>
</tr>';
if(!$neu)
$val = 'Änderung Speichern';
else
$val = 'Neu anlegen';
echo '<tr>
<td></td>
<td>
<input type="hidden" value="'.$vorlageOE->vorlagestudiengang_id.'" name="vorlagestudiengang_id" />
<input type="hidden" value="'.$vorlageOE->vorlage_kurzbz.'" name="vorlage_kurzbz" />
<input type="submit" name="speichern" value="'.$val.'">
</td>
</tr>
</table>
</form>
<hr>';
if($vorlage_kurzbz!='' || $oe_kurzbz!='')
{
$vorlage_version = new vorlage();
$vorlage_version->getAllVersions($vorlage_kurzbz, $oe_kurzbz);
$oe = new organisationseinheit();
$vorlage = new vorlage();
//echo '<span style="font-size: 9pt">Anzahl: '.$db->db_num_rows($vorlage_version->result).'</span>';
echo '<table class="tablesorter" id="t1">
<thead>
<tr class="liste">
<th>Vorlage</th>
<th>Organisationseinheit</th>
<th>Studiengang</th>
<th>Version</th>
<th>Anmerkung</th>
<th colspan="2"></th>
</tr>
</thead>
<tbody>';
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 '
<tr>
<td>'.$db->convert_html_chars($vorlage_bezeichnung).'</td>
<td>'.$db->convert_html_chars($oe->organisationseinheittyp_kurzbz.' '.$oe->bezeichnung).'</td>
<td>'.$db->convert_html_chars($row->studiengang_kz).'</td>
<td>'.$db->convert_html_chars($row->version).'</td>
<td>'.$db->convert_html_chars($row->anmerkung_vorlagestudiengang).'</td>
<td><a href="'.$_SERVER['PHP_SELF'].'?vorlagestudiengang_id='.$row->vorlagestudiengang_id.'&vorlage_kurzbz='.$vorlage_kurzbz.'&oe_kurzbz='.$row->oe_kurzbz.'">Edit</a></td>
<td><a href="'.$_SERVER['PHP_SELF'].'?vorlagestudiengang_id='.$row->vorlagestudiengang_id.'&vorlage_kurzbz='.$vorlage_kurzbz.'&oe_kurzbz='.$row->oe_kurzbz.'&delete" onclick="return confdel(\''.$vorlage_bezeichnung.'\',\''.$row->version.'\')">Delete</a></td>
</tr>';
}
echo '</tbody></table>';
}
echo ' </body>
</html>';