diff --git a/cms/admin_dms.php b/cms/admin_dms.php index bada9dcda..11d4e3086 100644 --- a/cms/admin_dms.php +++ b/cms/admin_dms.php @@ -23,13 +23,15 @@ require_once('../include/functions.inc.php'); require_once('../include/dms.class.php'); require_once('../include/gruppe.class.php'); require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/berechtigung.class.php'); +require_once('../include/organisationseinheit.class.php'); $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); -if(!$rechte->isberechtigt('basis/dms',null, 'suid', null)) - die('Sie haben keine Berechtigung diese Seite zu sehen.'); +if(!$rechte->isberechtigt('basis/dmsAdmin',null, 'suid', null)) + die($rechte->errormsg); $kategorie_kurzbz = isset($_REQUEST['kategorie_kurzbz'])?$_REQUEST['kategorie_kurzbz']:''; @@ -49,11 +51,11 @@ $method = isset($_REQUEST['method'])?$_REQUEST['method']:''; - - - - - + + + + + '; - echo ' +echo ' - Eigenschaften | Gruppen

'; + Eigenschaften | Gruppen

'; - switch($method) - { - case 'gruppe': - print_rights($kategorie_kurzbz); - break; +switch ($method) +{ + case 'gruppe': + print_rights($kategorie_kurzbz); + break; + + default: + drawKategorie($kategorie_kurzbz); + break; +} - default: - drawKategorie($kategorie_kurzbz); - break; - } - - - echo ' +echo ' '; - - function drawKategorie($kategorie_kurzbz) { $kategorie = new dms(); $kategorie_beschreibung = ''; $kategorie_bezeichnung = ''; - $disabled=''; - - if($kategorie->loadKategorie($kategorie_kurzbz)) + $disabled = ''; + $kategorie_berechtigung = ''; + + if ($kategorie->loadKategorie($kategorie_kurzbz)) { // Formular zum Editieren bestehender Kategorien $kategorie_bezeichnung = $kategorie->bezeichnung; $kategorie_beschreibung = $kategorie->beschreibung; $disabled = 'disabled="true"'; + $kategorie_berechtigung = $kategorie->berechtigung_kurzbz; + $kategorie_oe_kurzbz = $kategorie->kategorie_oe_kurzbz; } - + $allKategorien = new dms(); $allKategorien->getAllKategories(); - //var_dump($allKategorien->result); - echo '
+ $berechtigungen = new berechtigung(); + $berechtigungen->getBerechtigungen(); + $organisationseinheiten = new organisationseinheit(); + $organisationseinheiten->getAll(true, null, 'organisationseinheittyp_kurzbz, bezeichnung'); + $oe_typ = ''; + + // var_dump($allKategorien->result); + echo ' - + - + - + + + + + + + @@ -332,18 +376,18 @@ function drawKategorie($kategorie_kurzbz)
Kategorie_kurzbz: Kategorie_kurzbz:
Kategorie Bezeichnung: Kategorie Bezeichnung:
Kategorie Beschreibung: Kategorie Beschreibung:
Hängt unter: + foreach ($allKategorien->result as $kategorienResult) + { + $selected = ''; + if ($kategorienResult->kategorie_kurzbz == $kategorie->parent_kategorie_kurzbz) + $selected = 'selected'; + if ($kategorienResult->kategorie_kurzbz != $kategorie->kategorie_kurzbz) + echo ''; + } + echo ' +
Organisationseinheit:
(Upload, Ansicht, Änderungen)
+
Berechtigung:
(Zugriff auf Kategorie)
 
'; } - /** * Erstellt den Karteireiter zum Verwalten der Zugriffsrechte auf einen Content - * Zu einem Content können Gruppen zugeteilt werden. Diese haben dann zugriff auf den Content + * Zu einem Content können Gruppen zugeteilt werden. + * Diese haben dann zugriff auf den Content * Wenn keine Gruppen zugeordnet sind, können alle Personen auf den Content zugreifen */ function print_rights($kategorie_kurzbz) { $dms = new dms(); $dms->loadGruppenForKategorie($kategorie_kurzbz); - - if(count($dms->result)>0) + $gruppen_array = array(); + if (count($dms->result) > 0) { echo 'Die Mitglieder der folgenden Gruppen dürfen die Seite ansehen:

'; echo ' @@ -366,13 +410,14 @@ function print_rights($kategorie_kurzbz) '; - foreach($dms->result as $row) + foreach ($dms->result as $row) { + $gruppen_array[] = $row->gruppe_kurzbz; echo ''; - echo '',$row->gruppe_kurzbz,''; - echo '',$row->bezeichnung,''; + echo '', $row->gruppe_kurzbz, ''; + echo '', $row->bezeichnung, ''; echo ' - + '; @@ -382,22 +427,43 @@ function print_rights($kategorie_kurzbz) } else echo 'Diese Seite darf von allen angezeigt werden!

'; - + $gruppe = new gruppe(); $gruppe->getgruppe(null, null, null, null, true); - - echo '
'; + + // Sortieren der Gruppen nach kurzbz + function sortGruppen($a, $b) + { + return strcasecmp($a->gruppe_kurzbz, $b->gruppe_kurzbz); + } + usort($gruppe->result, "sortGruppen"); + +// function sortDocuments($a, $b) +// { +// $c = $a->anzahl_akten_formal_geprueft - $b->anzahl_akten_formal_geprueft; +// $c .= $a->anzahl_dokumente_akzeptiert - $b->anzahl_dokumente_akzeptiert; +// $c .= $a->anzahl_akten_vorhanden - $b->anzahl_akten_vorhanden; +// $c .= $b->pflicht - $a->pflicht; +// $c .= strcmp(strtolower($a->bezeichnung_mehrsprachig[getSprache()]), strtolower($b->bezeichnung_mehrsprachig[getSprache()])); +// return $c; +// } +// if ($dokumente_abzugeben) +// usort($dokumente_abzugeben, "sortDocuments"); + + echo ''; echo 'Gruppe '; echo ''; echo '
'; } - /** * Zeichnet das Kategorie Menu * @@ -406,40 +472,40 @@ function print_rights($kategorie_kurzbz) function drawKategorieMenue($rows) { global $kategorie_kurzbz; - - //echo ''; } ?> diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php index 861d328ea..eae359eb4 100644 --- a/cms/tinymce_dms.php +++ b/cms/tinymce_dms.php @@ -1,413 +1,429 @@ -, - * Andreas Oesterreicher and - * Karl Burkhart and - * Manfred Kindl . - */ -require_once('../config/cis.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/dms.class.php'); -require_once('../include/benutzerberechtigung.class.php'); -require_once('../include/basis_db.class.php'); -require_once('../include/datum.class.php'); -require_once('../include/log.class.php'); - -$db = new basis_db(); -$user = get_uid(); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(!$rechte->isberechtigt('basis/dms',null, 's', null)) - die($rechte->errormsg); - +, + * Andreas Oesterreicher and + * Karl Burkhart and + * Manfred Kindl . + */ +require_once ('../config/cis.config.inc.php'); +require_once ('../include/functions.inc.php'); +require_once ('../include/dms.class.php'); +require_once ('../include/benutzerberechtigung.class.php'); +require_once ('../include/basis_db.class.php'); +require_once ('../include/datum.class.php'); +require_once ('../include/log.class.php'); + +$db = new basis_db(); +$user = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if (! $rechte->isberechtigt('basis/dms', null, 's', null)) + die($rechte->errormsg); + ?> - - - - FHComplete Document Management System - - - - - - - - - - - - - - - - + + + + FHComplete Document Management System + + + + + + + + + + + + + + + + -'pdf_icon.png', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'=>'doc_icon.png', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation'=>'ppt_icon.png', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'=>'xls_icon.png', - 'application/vnd.oasis.opendocument.text'=>'openoffice0.jpg', - 'application/msword'=>'doc_icon.png', - 'application/vnd.ms-excel'=>'xls_icon.png', - 'application/x-zip'=>'zip_icon.png', - 'application/zip'=>'zip_icon.png', - 'application/mspowerpoint'=>'ppt_icon.png', - 'image/jpeg'=>'img_icon.png', - 'image/gif'=>'img_icon.png', - 'image/png'=>'img_icon.png', -); - -// Hole Datei aus Import Verzeichnis -if($importFile != '') -{ - if(!$rechte->isberechtigt('basis/dms',null, 'sui', null)) - die($rechte->errormsg); - - $ext = pathinfo($importFile, PATHINFO_EXTENSION); - $filename=uniqid(); - $filename.=".".$ext; - $dms_id = $_POST['dms_id_import']; - - // kopiert aus import Verzeichnis - if(copy(IMPORT_PATH.$importFile, DMS_PATH.$filename)) - { - $dms = new dms; - - if($dms_id!='') - { - if(!$dms->load($dms_id)) - { - die($dms->errormsg); - } - $dms->version=$dms->version+1; - } - else - { - $dms->version='0'; - $dms->kategorie_kurzbz=$kategorie_kurzbz; - } - //Mimetype auslesen - $finfo = finfo_open(FILEINFO_MIME_TYPE); - - $dms->insertamum=date('Y-m-d H:i:s'); - $dms->insertvon = $user; - $dms->mimetype= finfo_file($finfo, IMPORT_PATH.$importFile); //Davor deprecated: mime_content_type(IMPORT_PATH.$importFile); - $dms->filename = $filename; - $dms->name = $importFile; - - if($dms->save(true)) - { - echo 'File wurde erfolgreich hochgeladen.
Filename:'.$filename.'
ID: '.$dms->dms_id.''; - $dms_id=$dms->dms_id; - - if($projekt_kurzbz!='' || $projektphase_id!='') - { - if(!$dms->saveProjektzuordnung($dms_id, $projekt_kurzbz, $projektphase_id)) - echo $dms->errormsg; - } - } - else - echo 'Fehler beim Speichern der Daten'; - - if(!@chgrp(DMS_PATH.$filename,'dms')) - echo '
CHGRP failed'; - if(!@chmod(DMS_PATH.$filename, 0774)) - echo '
CHMOD failed'; - exec('sudo chown wwwrun '.$filename); - - // Lösche File aus Verzeichnis nachdem es raufgeladen wurde - if(!unlink(IMPORT_PATH.$importFile)) - echo 'Fehler beim Löschen aufgetreten.'; - } -} -if(isset($_POST['fileupload'])) -{ - if(!$rechte->isberechtigt('basis/dms',null, 'sui', null)) - die($rechte->errormsg); - - $dms_id = $_POST['dms_id']; - $beschreibung = $_POST['beschreibung']; - $ext = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION); - $filename = uniqid(); - $filename.=".".$ext; - $uploadfile = DMS_PATH.$filename; - - - if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) - { - if(!@chgrp($uploadfile,'dms')) - echo '
CHGRP failed'; - if(!@chmod($uploadfile, 0774)) - echo '
CHMOD failed'; - exec('sudo chown wwwrun '.$uploadfile); - - $dms = new dms(); - - if($dms_id!='') - { - if(!$dms->load($dms_id)) - { - die($dms->errormsg); - } - $dms->version=$dms->version+1; - } - else - { - $dms->version='0'; - $dms->kategorie_kurzbz=$kategorie_kurzbz; - } - //Mimetype auslesen - $finfo = finfo_open(FILEINFO_MIME_TYPE); - - $dms->insertamum=date('Y-m-d H:i:s'); - $dms->insertvon = $user; - $dms->mimetype = finfo_file($finfo, $uploadfile); // Davor deprecated: $_FILES['userfile']['type']; - $dms->filename = $filename; - $dms->name = $_FILES['userfile']['name']; - $dms->beschreibung = $beschreibung; - - if($dms->save(true)) - { - echo 'File wurde erfolgreich hochgeladen.
Filename:'.$filename.'
ID:'.$dms->dms_id; - $dms_id=$dms->dms_id; - - if($projekt_kurzbz!='' || $projektphase_id!='') - { - if(!$dms->saveProjektzuordnung($dms_id, $projekt_kurzbz, $projektphase_id)) - echo $dms->errormsg; - } - } - else - { - echo 'Fehler beim Speichern der Daten'; - } - } - else - { - echo 'Fehler beim Hochladen der Datei'; - } -} - -if(isset($_POST['action']) && $_POST['action']=='rename') -{ - if(!$rechte->isberechtigt('basis/dms',null, 'su', null)) - die($rechte->errormsg); - - $name = $_POST['dateiname']; - $dms_id = $_POST['dms_id']; - $version = $_POST['version']; - $beschreibung = $_POST['beschreibung']; - - $dms = new dms(); - if($dms->load($dms_id, $version)) - { - $dms->name = $name; - $dms->beschreibung = $beschreibung; - $dms->updateamum=date('Y-m-d H:i:s'); - $dms->updatevon = $user; - - if($dms->save(false)) - echo 'Dateiname wurde erfolgreich geändert'; - else - echo 'Fehler beim Ändern des Dateinamens:'.$dms->errormsg.''; - } - else - echo 'Fehler beim Laden des Eintrages'; -} - -if(isset($_REQUEST['delete'])) +loadKategorie($kategorie_kurzbz); + +$mimetypes = array( + 'application/pdf' => 'pdf_icon.png', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'doc_icon.png', + 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'ppt_icon.png', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xls_icon.png', + 'application/vnd.oasis.opendocument.text' => 'openoffice0.jpg', + 'application/msword' => 'doc_icon.png', + 'application/vnd.ms-excel' => 'xls_icon.png', + 'application/x-zip' => 'zip_icon.png', + 'application/zip' => 'zip_icon.png', + 'application/mspowerpoint' => 'ppt_icon.png', + 'image/jpeg' => 'img_icon.png', + 'image/gif' => 'img_icon.png', + 'image/png' => 'img_icon.png' +); + +// Hole Datei aus Import Verzeichnis +if ($importFile != '') { - if (! $rechte->isberechtigt('basis/dms', null, 'suid', null)) + if (! $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'sui')) + die($rechte->errormsg); + + $ext = pathinfo($importFile, PATHINFO_EXTENSION); + $filename = uniqid(); + $filename .= ".".$ext; + $dms_id = $_POST['dms_id_import']; + + // kopiert aus import Verzeichnis + if (copy(IMPORT_PATH.$importFile, DMS_PATH.$filename)) + { + $dms = new dms(); + + if ($dms_id != '') + { + if (! $dms->load($dms_id)) + { + die($dms->errormsg); + } + $dms->version = $dms->version + 1; + } + else + { + $dms->version = '0'; + $dms->kategorie_kurzbz = $kategorie_kurzbz; + } + // Mimetype auslesen + $finfo = finfo_open(FILEINFO_MIME_TYPE); + + $dms->insertamum = date('Y-m-d H:i:s'); + $dms->insertvon = $user; + $dms->mimetype = finfo_file($finfo, IMPORT_PATH.$importFile); // Davor deprecated: mime_content_type(IMPORT_PATH.$importFile); + $dms->filename = $filename; + $dms->name = $importFile; + + if ($dms->save(true)) + { + echo 'File wurde erfolgreich hochgeladen.
Filename:'.$filename.'
ID: '.$dms->dms_id.''; + $dms_id = $dms->dms_id; + + if ($projekt_kurzbz != '' || $projektphase_id != '') + { + if (! $dms->saveProjektzuordnung($dms_id, $projekt_kurzbz, $projektphase_id)) + echo $dms->errormsg; + } + } + else + echo 'Fehler beim Speichern der Daten'; + + if (! @chgrp(DMS_PATH.$filename, 'dms')) + echo '
CHGRP failed'; + if (! @chmod(DMS_PATH.$filename, 0774)) + echo '
CHMOD failed'; + exec('sudo chown wwwrun '.$filename); + + // Lösche File aus Verzeichnis nachdem es raufgeladen wurde + if (! unlink(IMPORT_PATH.$importFile)) + echo 'Fehler beim Löschen aufgetreten.'; + } +} +if (isset($_POST['fileupload'])) +{ + if (! $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'sui')) + die($rechte->errormsg); + + $dms_id = $_POST['dms_id']; + $beschreibung = $_POST['beschreibung']; + $schlagworte = $_POST['schlagworte']; + $cis_suche = isset($_POST['cis_suche']) ? true : false; + $ext = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION); + $filename = uniqid(); + $filename .= ".".$ext; + $uploadfile = DMS_PATH.$filename; + + if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) + { + if (! @chgrp($uploadfile, 'dms')) + echo '
CHGRP failed'; + if (! @chmod($uploadfile, 0774)) + echo '
CHMOD failed'; + exec('sudo chown wwwrun '.$uploadfile); + + $dms = new dms(); + + if ($dms_id != '') + { + if (! $dms->load($dms_id)) + { + die($dms->errormsg); + } + $dms->version = $dms->version + 1; + } + else + { + $dms->version = '0'; + $dms->kategorie_kurzbz = $kategorie_kurzbz; + } + // Mimetype auslesen + $finfo = finfo_open(FILEINFO_MIME_TYPE); + + $dms->insertamum = date('Y-m-d H:i:s'); + $dms->insertvon = $user; + $dms->mimetype = finfo_file($finfo, $uploadfile); // Davor deprecated: $_FILES['userfile']['type']; + $dms->filename = $filename; + $dms->name = $_FILES['userfile']['name']; + $dms->beschreibung = $beschreibung; + $dms->schlagworte = $schlagworte; + $dms->cis_suche = $cis_suche; + + if ($dms->save(true)) + { + echo '

File wurde erfolgreich hochgeladen.

Filename intern: '.$filename.'
Dateiname: '.$dms->name; + echo '
ID: + '.$dms->dms_id.'

'; + $dms_id = $dms->dms_id; + + if ($projekt_kurzbz != '' || $projektphase_id != '') + { + if (! $dms->saveProjektzuordnung($dms_id, $projekt_kurzbz, $projektphase_id)) + echo $dms->errormsg; + } + } + else + { + echo 'Fehler beim Speichern der Daten'; + } + } + else + { + echo 'Fehler beim Hochladen der Datei'; + } +} + +if (isset($_POST['action']) && $_POST['action'] == 'rename') +{ + if (! $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'su')) + die($rechte->errormsg); + + $name = $_POST['dateiname']; + $dms_id = $_POST['dms_id']; + $version = $_POST['version']; + $beschreibung = $_POST['beschreibung']; + $schlagworte = $_POST['schlagworte']; + $cis_suche = isset($_POST['cis_suche']) ? true : false; + + $dms = new dms(); + if ($dms->load($dms_id, $version)) + { + $dms->name = $name; + $dms->beschreibung = $beschreibung; + $dms->schlagworte = $schlagworte; + $dms->cis_suche = $cis_suche; + $dms->updateamum = date('Y-m-d H:i:s'); + $dms->updatevon = $user; + + if ($dms->save(false)) + echo 'Dateiname wurde erfolgreich geändert'; + else + echo 'Fehler beim Ändern des Dateinamens:'.$dms->errormsg.''; + } + else + echo 'Fehler beim Laden des Eintrages'; +} + +if (isset($_REQUEST['delete'])) +{ + if (! $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'suid')) die($rechte->errormsg); // lösche nur die Version @@ -421,19 +437,19 @@ if(isset($_REQUEST['delete'])) // DB Eintrag löschen if (! $dms->deleteVersion($dms_id, $version)) - echo '' . $dms->errormsg . ''; - else - { - // Log schreiben - $logdata_dms = (array)$dms; - $logdata = var_export($logdata_dms, true); - $log = new log(); - $log->executetime = date('Y-m-d H:i:s'); - $log->mitarbeiter_uid = $user; - $log->beschreibung = "Löschen der DMS_ID ".$dms_id; - $log->sql = 'LogData:'.$logdata; - $log->sqlundo = ''; - $log->save(true); + echo ''.$dms->errormsg.''; + else + { + // Log schreiben + $logdata_dms = (array) $dms; + $logdata = var_export($logdata_dms, true); + $log = new log(); + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = "Löschen der DMS_ID ".$dms_id; + $log->sql = 'LogData:'.$logdata; + $log->sqlundo = ''; + $log->save(true); } } else @@ -444,120 +460,117 @@ if(isset($_REQUEST['delete'])) // DB Einträge und Dokumente löschen if (! $dms->deleteDms($dms_id)) - echo '' . $dms->errormsg . ''; - else - { - // Log schreiben - $logdata_dms = (array)$dms; - $logdata = var_export($logdata_dms, true); - $log = new log(); - $log->executetime = date('Y-m-d H:i:s'); - $log->mitarbeiter_uid = $user; - $log->beschreibung = "Löschen der DMS_ID ".$dms_id; - $log->sql = 'LogData:'.$logdata; - $log->sqlundo = ''; - $log->save(true); + echo ''.$dms->errormsg.''; + else + { + // Log schreiben + $logdata_dms = (array) $dms; + $logdata = var_export($logdata_dms, true); + $log = new log(); + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = "Löschen der DMS_ID ".$dms_id; + $log->sql = 'LogData:'.$logdata; + $log->sqlundo = ''; + $log->save(true); } } -} - -if($versionId != '') -{ - // Übersicht der Versionen - echo '

Versionsübersicht

'; - if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') - echo '

zurück

'; - else - echo '

zurück

'; - drawAllVersions($versionId); -} -elseif($renameId!='') -{ - // Datei umbenennen - - if(!$rechte->isberechtigt('basis/dms',null, 'su', null)) - die($rechte->errormsg); - - echo '

Datei umbennen

'; - if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') - echo '

zurück

'; - else - echo '

zurück

'; - drawRenameForm($renameId, $version, $page, $dpp, $searching, $searchstring); -} - -/*if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') - { - echo '
'; - } - else - { - echo ''; - }*/ - -elseif($chkatID != '') -{ - //Kategorie aendern - - if(!$rechte->isberechtigt('basis/dms',null, 'su', null)) - die($rechte->errormsg); - - if(isset($_POST['action']) && ($_POST['action']=='chkat')) - { - // neue Kategorie speichern - $dms = new dms(); - $dms->load($chkatID); - $dms->kategorie_kurzbz = $_POST['kategoriez']; - $dms->save(); - if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') - { - echo ''; - } - else - { - echo ''; - } - } - else - { - // Kategorieauswahl - $dms = new dms(); - $dms->load($chkatID); - echo '

Kategorie von '.$dms->name.' ändern

'; - echo '

zurück

'; - drawChangeKategorie($chkatID, $page, $dpp); - } -} -else -{ +} + +if ($versionId != '') +{ + // Übersicht der Versionen + echo '

Versionsübersicht

'; + if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') + echo '

zurück

'; + else + echo '

zurück

'; + drawAllVersions($versionId); +} +elseif ($renameId != '') +{ + // Datei umbenennen + + if (! $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'su')) + die($rechte->errormsg); + + echo '

Datei umbennen

'; + if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') + echo '

zurück

'; + else + echo '

zurück

'; + drawRenameForm($renameId, $version, $page, $dpp, $searching, $searchstring); +} + +/* + * if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') + * { + * echo ''; + * } + * else + * { + * echo ''; + * } + */ + +elseif ($chkatID != '') +{ + // Kategorie aendern + + if (! $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'su')) + die($rechte->errormsg); + + if (isset($_POST['action']) && ($_POST['action'] == 'chkat')) + { + // neue Kategorie speichern + $dms = new dms(); + $dms->load($chkatID); + $dms->kategorie_kurzbz = $_POST['kategoriez']; + $dms->save(); + if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') + { + echo ''; + } + else + { + echo ''; + } + } + else + { + // Kategorieauswahl + $dms = new dms(); + $dms->load($chkatID); + echo '

Kategorie von '.$dms->name.' ändern

'; + echo '

zurück

'; + drawChangeKategorie($chkatID, $page, $dpp); + } +} +else +{ + // Suche anzeigen echo '

Dokument Auswählen

-
'; - - // Suche anzeigen - echo' + '; + + echo '
- - -
- Administration -

Kategorie:

-

- '; - //Kategorien anzeigen - $dms = new dms(); - $dms->getKategorie(); - echo ' - - -
- - - - - '; - drawKategorieMenue($dms->result); - echo '
  
'; +
'; + + // Link zu Admin-Oberfläche + if ($rechte->isberechtigt('basis/dmsAdmin', null, 's')) + { + echo ''; + } + + // Kategorien anzeigen + $dms = new dms(); + $dms->getKategorie(); + echo '
    '; + drawKategorieMenue($dms->result); + echo '
'; echo ''; + '; echo '
'; - //Dokumente der Ausgewaehlten Kategorie laden und Anzeigen - $dms = new dms(); - - if($searchstring!='' || (isset($_GET['searching']) && $_GET['searching'] == true)) - { - $count = new dms(); - $count->search($searchstring); - $anzahl = count($count->result); - $dms->search($searchstring, $dpp, $page); - $suche = true; - - - if ($page != 0) - { - echo ''.$anzahl.' Elemente gefundenSeite '.$page.' von '; - if (is_int($anzahl/$dpp)) - { - echo (int)($anzahl/$dpp).' '; - } - else - { - echo (int)(($anzahl/$dpp)+1).' '; - } - } - else - { - echo 'Seite 1'; - } - - - drawFilesList($dms->result); - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '
'; +
'; + // Dokumente der Ausgewaehlten Kategorie laden und Anzeigen + $dms = new dms(); + + if ($searchstring != '' && (isset($_GET['searching']) && $_GET['searching'] == true)) + { + $count = new dms(); + $count->search($searchstring); + $anzahl = count($count->result); // Falsches Ergebnis falls keine Berechtigung für eine Kategorie besteht + $dms->search($searchstring, $dpp, $page); + $suche = true; + + if ($page != 0) + { + echo ''.$anzahl.' Elemente gefundenSeite '.$page.' von '; + if (is_int($anzahl / $dpp)) + { + echo (int) ($anzahl / $dpp).' '; + } + else + { + echo (int) (($anzahl / $dpp) + 1).' '; + } + } + else + { + echo 'Seite 1'; + } + + drawFilesList($dms->result); + + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; echo '
- + - Elemente pro Seite  -
'; - } - else - { - $count = new dms(); - $count->getDocuments($kategorie_kurzbz); - $anzahl = count($count->result); - $dms->getDocuments($kategorie_kurzbz, $dpp, $page); - - if ($page != 0) - { - echo ''.$anzahl.' Elemente gefundenSeite '.$page.' von '; - if (is_int($anzahl/$dpp)) - { - echo (int)($anzahl/$dpp).' '; - } - else - { - echo (int)(($anzahl/$dpp)+1).' '; - } - } - else - { - echo 'Seite 1'; - } - - drawFilesList($dms->result); - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - echo '
- - '; + if (isset($_GET['dpp'])) + { + for ($i = 10; $i <= 100; $i = $i + 10) + { + if ($_GET['dpp'] == $i) + { + echo ''; + } + else + { + echo ''; + } + } + switch ($_GET['dpp']) + { + case 150: + echo ''; + break; + case 200: + echo ''; + break; + case 500: + echo ''; + break; + case 1000: + echo ''; + break; + case 2000: + echo ''; + break; + default: + echo ''; + break; + } + } + else + { echo ' - - - - '; - } - echo' - Elemente pro Seite  -
'; - } - //drawFilesThumb($dms->result); - - + + + + '; + } + echo ' + Elemente pro Seite  + '; + } + else + { + // Wenn eine Berechtigung auf der Kategorie liegt prüfen, ob der User die notwendigen Rechte hat + if ($kategorie->berechtigung_kurzbz == '' || $rechte->isBerechtigt($kategorie->berechtigung_kurzbz)) + { + if ($kategorie->kategorie_oe_kurzbz == '' || $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 's')) + { + $count = new dms(); + $anzahl = $count->countDocumentsKategorie($kategorie_kurzbz); + $dms->getDocuments($kategorie_kurzbz, $dpp, $page); + + if ($page != 0) + { + echo ''.$anzahl.' Elemente gefundenSeite '.$page.' von '; + if (is_int($anzahl / $dpp)) + { + echo (int) ($anzahl / $dpp).' '; + } + else + { + echo (int) (($anzahl / $dpp) + 1).' '; + } + } + else + { + echo 'Seite 1'; + } + + drawFilesList($dms->result); + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
+ + Elemente pro Seite  +
'; + } + else + echo 'Sie haben keine Berechtigung für diese Kategorie'; + } + else + echo 'Sie haben keine Berechtigung für diese Kategorie'; + } + // drawFilesThumb($dms->result); + echo '
'; - if($rechte->isberechtigt('basis/dms',null, 'sui', null)) - { + '; + + if ($rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'sui')) + { echo '
Neue Datei hochladen
-

+


- '; - if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') - { - echo '
'; - } - else - { - echo ''; - } - echo ' + '; + if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') + { + echo ''; + } + else + { + echo ''; + } + echo ' - + + + + + + + + + @@ -775,105 +1021,113 @@ else -
'; - $files = scandir(IMPORT_PATH); - $files_count = count($files)-2; // Minus zwei wegen "." und ".." - if ($files_count>0 && $rechte->isberechtigt('basis/dms',null, 'sui', null)) - drawFilesFromImport(); - echo ''; - } - if($openupload) - { +
'; + $files = scandir(IMPORT_PATH); + $files_count = count($files) - 2; // Minus zwei wegen "." und ".." + if ($files_count > 0 && $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'sui')) + drawFilesFromImport(); + echo ''; + } + if ($openupload) + { echo ''; - } -} - - -/************ FUNCTIONS ********************/ - -/** - * Zeigt alle Versionen des Dokumentes an - * - * @param $id DokumentID die angezeigt werden soll - */ -function drawAllVersions($id) -{ - global $rechte; - $dms = new dms(); - $dms->getAllVersions($id); - - echo ''; + } +} + +/** + * ********** FUNCTIONS ******************* + */ + +/** + * Zeigt alle Versionen des Dokumentes an + * + * @param integer $id Dokument_ID die angezeigt werden soll + */ +function drawAllVersions($id) +{ + global $rechte, $kategorie; + $dms = new dms(); + $dms->getAllVersions($id); + + echo ' -
Beschreibung
Schlagworte
(Semikolon getrennt)
CIS-Suche
+
- - - - - - - - - '; - foreach ($dms->result as $dms_help) - { + + + + + + + + + + + + '; + foreach ($dms->result as $dms_help) + { echo ' - - - - - - - + + + + + + + + + - '; - } - echo '
VersionNameBeschreibungKategorieDatumUser
VersionNameBeschreibungSchlagworteCIS-SucheKategorieFilename internDatumUser
'.$dms_help->version.''.$dms_help->name.''.$dms_help->beschreibung.''.$dms_help->kategorie_kurzbz.''.$dms_help->insertamum.''.$dms_help->insertvon.' -
    +
'.$dms_help->version.''.$dms_help->name.''.$dms_help->beschreibung.''.$dms_help->schlagworte.''.($dms_help->cis_suche == 'true'?'Ja':'Nein').''.$dms_help->kategorie_kurzbz.''.$dms_help->filename.''.$dms_help->insertamum.''.$dms_help->insertvon.' +
  • Erweitert
      -
    • Herunterladen
    • '; - if($rechte->isberechtigt('basis/dms',null, 'suid', null)) - echo '
    • Löschen
    • '; - - echo '
    +
  • Herunterladen
  • '; + if ($rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'su')) + echo '
  • Datei umbenennen
  • '; + if ($rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 'suid')) + echo '
  • Löschen
  • '; + + echo '
- -
'; -} - -/** - * Liest die Files aus dem Importverzeichnis aus - * - */ -function drawFilesFromImport() -{ - global $kategorie_kurzbz, $projekt_kurzbz, $projektphase_id; - - if ($handle = opendir(IMPORT_PATH)) - { + + + '; + } + echo ''; +} + +/** + * Liest die Files aus dem Importverzeichnis aus + */ +function drawFilesFromImport() +{ + global $kategorie_kurzbz, $projekt_kurzbz, $projektphase_id; + + if ($handle = opendir(IMPORT_PATH)) + { echo ''; + '; echo '

Files im Import Ordner

- '; - - while (false !== ($file = readdir($handle))) - { - if($file != '.' && $file != '..') - { - echo' + '; + + while (false !== ($file = readdir($handle))) + { + if ($file != '.' && $file != '..') + { + echo ' - '; - } - } - echo' + '; + } + } + echo ' -
File
File
'.$file.' @@ -900,244 +1154,399 @@ function drawFilesFromImport() Upload
'; - closedir($handle); - } -} -/** - * Zeichnet das Kategorie Menu - * - * @param $rows DMS Result Object - */ -function drawKategorieMenue($rows) -{ - global $kategorie_kurzbz; - - //echo '
    '; - foreach($rows as $row) - { - if($kategorie_kurzbz=='') - $kategorie_kurzbz=$row->kategorie_kurzbz; - if($kategorie_kurzbz==$row->kategorie_kurzbz) - $class='marked'; - else - $class=''; - - $dms = new dms(); - $dms->getKategorie($row->kategorie_kurzbz); - - //Suchen, ob eine Sperre fuer diese Kategorie vorhanden ist - $groups = $dms->getLockGroups($row->kategorie_kurzbz); - $locked=''; - if(count($groups)>0) - { - $locked = 'result)>0) - { - - echo ' - -   - -  '.$row->bezeichnung.' - '.$locked.' - '; - drawKategorieMenue($dms->result); - echo ' - - '; - } - else - { - echo ' - -   -  '.$row->bezeichnung.''.$locked.' - '; - } - - } - //echo ''; - //echo '
'; -} -/** - * Zeichnet die Files in Listenform - * - * @param $rows DMS Result Object - */ -function drawFilesList($rows) -{ - global $mimetypes, $suche, $rechte; - $dms = new dms(); - - if(count($rows)>0) - { + '; + closedir($handle); + } +} +/** + * Zeichnet das Kategorie Menu + * + * @param $rows DMS Result Object + */ +function drawKategorieMenue($rows) +{ + global $kategorie_kurzbz; + global $rechte; + + $kategorie_berechtigt = false; + + // echo '
    '; + foreach ($rows as $row) + { + // Wenn eine Berechtigung auf der Kategorie liegt prüfen, ob der User die notwendigen Rechte hat + if ($row->berechtigung_kurzbz != '' && !$rechte->isberechtigt($row->berechtigung_kurzbz)) + continue; + + $dms = new dms(); + $dms->getKategorie($row->kategorie_kurzbz); + + $kategorie = new dms(); + $kategorie->loadKategorie($row->kategorie_kurzbz); + + // Wenn eine oe_kurzbz auf der Kategorie liegt prüfen, ob der User die Kategorie sehen darf + if ($kategorie->kategorie_oe_kurzbz == '' || $rechte->isberechtigt('basis/dms', $kategorie->kategorie_oe_kurzbz, 's')) + { + // Wenn eine oe_kurzbz auf der Kategorie liegt prüfen, ob der User die Kategorie sehen darf + if ($dms->kategorie_oe_kurzbz == '' || !$rechte->isberechtigt('basis/dms', $dms->kategorie_oe_kurzbz, 's')) + $kategorie_berechtigt = true; + + if ($kategorie_kurzbz == '') + $kategorie_kurzbz = $row->kategorie_kurzbz; + if ($kategorie_kurzbz == $row->kategorie_kurzbz) + $class = 'marked'; + else + $class = ''; + + // Suchen, ob eine Sperre fuer diese Kategorie vorhanden ist + $groups = $dms->getLockGroups($row->kategorie_kurzbz); + $locked = ''; + if (count($groups) > 0) + { + $locked = 'result) > 0) + { + echo ' +
  • +  '.$row->bezeichnung.' + '.$locked.' +
  • '; + } + else + { + echo ' +
  •  '.$row->bezeichnung.''.$locked.' +
  • '; + } + } + else + { + if (count($dms->result) > 0) + drawKategorieMenue($dms->result); + } + } + // echo ''; + // echo '
'; +} +/** + * Zeichnet die Files in Listenform + * + * @param $rows DMS Result Object + */ +function drawFilesList($rows) +{ + global $mimetypes, $suche, $rechte; + $dms = new dms(); + + if (count($rows) > 0) + { echo ' - '; - } - + '; + } + echo ' - '; - if($suche == true) - { - echo ''; - } - echo' + '; + if ($suche == true) + { + echo ''; + } + echo ' - + + + - '; - - foreach($rows as $row) - { + '; + $i = 0; + foreach ($rows as $row) + { + // Wenn eine Berechtigung auf der Kategorie liegt prüfen, ob der User die notwendigen Rechte hat + if ($row->berechtigung_kurzbz != '' && !$rechte->isberechtigt($row->berechtigung_kurzbz)) + continue; + else + $i++; + echo ' - '; - $datum = new datum(); - - echo ''; - - $kategorie = new dms(); - $kategorie->loadKategorie($row->kategorie_kurzbz); - - // zeige bei suche auch kategorie an - if($suche == true) - { - echo ''; - } - echo''; + $datum = new datum(); + + echo ''; + + $kategorie = new dms(); + $kategorie->loadKategorie($row->kategorie_kurzbz); + + // zeige bei suche auch kategorie an + if ($suche == true) + { + echo ''; + } + echo ''; - echo ''; - echo ''; - echo ''; - - } - echo ' -
TitelVKategorieVKategorie  IDBeschreibungBeschreibungSchlagworteCIS-Suche
'; - if(array_key_exists($row->mimetype,$mimetypes)) - echo ''; - else - echo ''; - - // wenn es noch höhere Versionen zu diesem Dokument gibt, wird dieses gekennzeichnet - $newVersion = ''; - $newerVersionAlert=''; - if($dms->checkVersion($row->dms_id, $row->version)) - { - $newVersion = '--'; - $newerVersionAlert = 'alert(\'Achtung!! Es gibt eine neuere Version dieses Dokuments. Es wird die aktuellste eingefügt.\');'; - } - - echo' + '; + if (array_key_exists($row->mimetype, $mimetypes)) + echo ''; + else + echo ''; + + // wenn es noch höhere Versionen zu diesem Dokument gibt, wird dieses gekennzeichnet + $newVersion = ''; + $newerVersionAlert = ''; + if ($dms->checkVersion($row->dms_id, $row->version)) + { + $newVersion = '--'; + $newerVersionAlert = 'alert(\'Achtung!! Es gibt eine neuere Version dieses Dokuments. Es wird die aktuellste eingefügt.\');'; + } + + echo ' '.$newVersion.' '.$row->name.' - '; - echo $row->version; - echo ''; - echo ''.$kategorie->bezeichnung.''; - echo ''; - - //Upload einer neuen Version + '; + echo $row->version; + echo ''; + echo ''.$kategorie->bezeichnung.''; + echo ''; + + // Upload einer neuen Version echo ' - '; - echo ''.$row->dms_id.''.$dms->convert_html_chars($row->beschreibung).'
'; - $suche = false; -} - -/** - * Erstellt das Formular zum Umbenennen von Dokumenten - * @param $dms_id ID des Dokuments - * @param $version Versionsnummer des Dokuments - */ -function drawRenameForm($dms_id, $version, $page = NULL, $dpp = NULL, $searching, $searchstring) -{ - global $kategorie_kurzbz; - - $dms = new dms(); - if($dms->load($dms_id, $version)) - { - if ($searching == 'true') - { - echo '
'; - } - else - { - echo ''; - } + '; + echo ''; + echo ''.$row->dms_id.''; + echo ''.$dms->convert_html_chars($row->beschreibung).''; + echo ''.$dms->convert_html_chars($row->schlagworte).''; + echo ''.($row->cis_suche === true ? '':' ').''; + echo ''; + } + if ($i > 0) + echo ''; + else + echo 'Für keines der gefundenen Elemente besteht eine Berechtigung'; + + $suche = false; +} + +/** + * Erstellt das Formular zum Umbenennen von Dokumenten + * + * @param integer $dms_id ID des Dokuments + * @param integer $version Versionsnummer des Dokuments + */ +function drawRenameForm($dms_id, $version, $page = NULL, $dpp = NULL, $searching, $searchstring) +{ + global $kategorie_kurzbz; + + $dms = new dms(); + if ($dms->load($dms_id, $version)) + { + if ($searching == 'true') + { + echo ''; + } + else + { + echo ''; + } echo ' @@ -1147,59 +1556,86 @@ function drawRenameForm($dms_id, $version, $page = NULL, $dpp = NULL, $searching + + + + + + + +
Beschreibung:
Schlagworte
(Semikolon getrennt):
CIS-Suche:cis_suche == 'true'?'checked="checked"':'').'>
- '; + '; echo ' -
'; - } - else - { - echo 'Fehler beim Laden des Eintrags'; - } -} - -/** - * Erstellt das Formular zum Ändern der Kategorie von Dokumenten - * @param $dms_id ID des Dokuments - */ -function drawChangeKategorie($dms_id, $page = NULL, $dpp = NULL) { - $dms = new dms; - $dms->load($dms_id); - - $allKategorien = new dms(); - $allKategorien->getAllKategories(); - - if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') - { - echo '
'; - } - else - { - echo ''; - } +
'; + } + else + { + echo 'Fehler beim Laden des Eintrags'; + } +} + +/** + * Erstellt das Formular zum Ändern der Kategorie von Dokumenten + * + * @param integer $dms_id ID des Dokuments + */ +function drawChangeKategorie($dms_id, $page = NULL, $dpp = NULL) +{ + global $rechte; + $dms = new dms(); + $dms->load($dms_id); + + $allKategorien = new dms(); + $allKategorien->getAllKategories(); + + if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') + { + echo '
'; + } + else + { + echo ''; + } echo ' - '; - if (!is_null($page)) echo ''; - if (!is_null($dpp)) echo ''; - echo '
'; -} - + '; + if (! is_null($page)) + echo ''; + if (! is_null($dpp)) + echo ''; + echo ''; +} + ?> diff --git a/include/dms.class.php b/include/dms.class.php index 76a837517..7b05420ad 100644 --- a/include/dms.class.php +++ b/include/dms.class.php @@ -46,7 +46,10 @@ class dms extends basis_db public $updateamum; public $updatevon; public $kategorie_kurzbz_old; - + public $cis_suche = false; + public $schlagworte; + public $kategorie_oe_kurzbz; + public $berechtigung_kurzbz; public $bezeichnung; /** @@ -92,6 +95,8 @@ class dms extends basis_db $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; + $this->cis_suche = $this->db_parse_bool($row->cis_suche); + $this->schlagworte = $row->schlagworte; return true; } @@ -143,7 +148,7 @@ class dms extends basis_db $qry.="INSERT INTO campus.tbl_dms_version(dms_id, version, filename, mimetype, name, beschreibung, letzterzugriff, insertamum, insertvon, - updateamum, updatevon) VALUES(". + updateamum, updatevon, cis_suche, schlagworte) VALUES(". $dms_id.','. $this->db_add_param($this->version, FHC_INTEGER).','. $this->db_add_param($this->filename).','. @@ -154,7 +159,9 @@ class dms extends basis_db $this->db_add_param($this->insertamum).','. $this->db_add_param($this->insertvon).','. $this->db_add_param($this->updateamum).','. - $this->db_add_param($this->updatevon).');'; + $this->db_add_param($this->updatevon).','. + $this->db_add_param($this->cis_suche, FHC_BOOLEAN).','. + $this->db_add_param($this->schlagworte).');'; } else { @@ -170,7 +177,9 @@ class dms extends basis_db " beschreibung=".$this->db_add_param($this->beschreibung).",". " letzterzugriff=".$this->db_add_param($this->letzterzugriff).",". " updateamum=".$this->db_add_param($this->updateamum).",". - " updatevon=".$this->db_add_param($this->updatevon). + " updatevon=".$this->db_add_param($this->updatevon).",". + " cis_suche=".$this->db_add_param($this->cis_suche, FHC_BOOLEAN).",". + " schlagworte=".$this->db_add_param($this->schlagworte). " WHERE dms_id=".$this->db_add_param($this->dms_id,FHC_INTEGER)." AND version=".$this->db_add_param($this->version, FHC_INTEGER).";"; } @@ -214,96 +223,98 @@ class dms extends basis_db } } - /** - * Löscht einen DMS Eintrag mit übergebener ID und Version - * Wird die letzte Version eines Eintrages gelöscht, wird automatisch der Eintrag mitgelöscht - * @param $dms_id - * @param $version - */ - public function deleteVersion($dms_id, $version) - { - $dms = new dms(); - $dms->load($dms_id, $version); - - $qry ="DELETE FROM campus.tbl_dms_version WHERE dms_id = ".$this->db_add_param($dms_id, FHC_INTEGER)." and version =".$this->db_add_param($version, FHC_INTEGER).';'; - - if($this->db_query($qry)) - { - $qry_anzahl ="SELECT 1 FROM campus.tbl_dms_version WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER).';'; - if($result = $this->db_query($qry_anzahl)) - { - // File der Version im Filesystem löschen - if(is_file(DMS_PATH.$dms->filename) && !unlink(DMS_PATH.$dms->filename)) - { - $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten"; - return false; - } - - // Wenn letzte Version gelöscht wurde -> lösche gesamten Eintrag - if($this->db_num_rows($result) == 0 ) - { - if(!$this->deleteDms($dms_id)) - { - $this->errormsg = "Fehler beim Löschen aufgetreten"; - return false; - } - else - return true; - } - } - } - else - { - $this->errormsg="Fehler beim Löschen der Version aufgetreten"; - return false; - } - return true; - } + /** + * Löscht einen DMS Eintrag mit übergebener ID und Version + * Wird die letzte Version eines Eintrages gelöscht, wird automatisch der Eintrag mitgelöscht + * + * @param $dms_id + * @param $version + */ + public function deleteVersion($dms_id, $version) + { + $dms = new dms(); + $dms->load($dms_id, $version); + + $qry = "DELETE FROM campus.tbl_dms_version WHERE dms_id = " . $this->db_add_param($dms_id, FHC_INTEGER) . " and version =" . $this->db_add_param($version, FHC_INTEGER) . ';'; + + if ($this->db_query($qry)) + { + $qry_anzahl = "SELECT 1 FROM campus.tbl_dms_version WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . ';'; + if ($result = $this->db_query($qry_anzahl)) + { + // File der Version im Filesystem löschen + if (is_file(DMS_PATH . $dms->filename) && ! unlink(DMS_PATH . $dms->filename)) + { + $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten"; + return false; + } + + // Wenn letzte Version gelöscht wurde -> lösche gesamten Eintrag + if ($this->db_num_rows($result) == 0) + { + if (! $this->deleteDms($dms_id)) + { + $this->errormsg = "Fehler beim Löschen aufgetreten"; + return false; + } + else + return true; + } + } + } + else + { + $this->errormsg = "Fehler beim Löschen der Version aufgetreten"; + return false; + } + return true; + } + + /** + * Löscht einen gesamten DMS Eintrag inklusive aller Versionen und Projekteinträge + * + * @param $dms_id + */ + public function deleteDms($dms_id) + { + $this->load($dms_id); + $this->getAllVersions($dms_id); + $error = false; + + // lösche Versionen + $qry = "BEGIN;DELETE FROM campus.tbl_dms_version WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . "; "; + $qry .= "DELETE FROM fue.tbl_projekt_dokument WHERE dms_id=" . $this->db_add_param($dms_id, FHC_INTEGER) . "; "; + $qry .= "DELETE FROM campus.tbl_dms WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . ";"; + if ($this->db_query($qry)) + { + $this->db_query('COMMIT;'); + + // Alle Versionen der Datei im Filesystem löschen + foreach ($this->result as $obj) + { + if (is_file(DMS_PATH . $obj->filename) && ! unlink(DMS_PATH . $obj->filename)) + $error = true; + } + + if ($error) + { + $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten"; + return false; + } + else + { + return true; + } + } + else + { + $this->db_query('ROLLBACK;'); + $this->errormsg = "Fehler beim Löschen des Eintrages aufgetreten"; + return false; + } + } - /** - * Löscht einen gesamten DMS Eintrag inklusive aller Versionen und Projekteinträge - * @param $dms_id - */ - public function deleteDms($dms_id) - { - $this->load($dms_id); - $this->getAllVersions($dms_id); - $error = false; - - // lösche Versionen - $qry ="BEGIN;DELETE FROM campus.tbl_dms_version WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER)."; "; - $qry.="DELETE FROM fue.tbl_projekt_dokument WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."; "; - $qry.="DELETE FROM campus.tbl_dms WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER).";"; - if($this->db_query($qry)) - { - $this->db_query('COMMIT;'); - - // Alle Versionen der Datei im Filesystem löschen - foreach($this->result as $obj) - { - if(is_file(DMS_PATH.$obj->filename) && !unlink(DMS_PATH.$obj->filename)) - $error = true; - } - - if($error) - { - $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten"; - return false; - } - else - { - return true; - } - } - else - { - $this->db_query('ROLLBACK;'); - $this->errormsg = "Fehler beim Löschen des Eintrages aufgetreten"; - return false; - } - } - - /** + /** * Setzt die Zeit des letzten Zugriffs auf die Datei * * @param $dms_id @@ -339,16 +350,16 @@ class dms extends basis_db if($this->db_num_rows($result) == 0 ) { $qry ="BEGIN; DELETE FROM campus.tbl_dms_kategorie_gruppe where kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING)."; - DELETE FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).';'; + DELETE FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).';'; if($this->db_query($qry)) { - $this->db_query('COMMIT;'); + $this->db_query('COMMIT;'); return true; } else { $this->errormsg = 'Fehler beim Löschen der Daten'."\n"; - $this->db_query('ROLLBACK;'); + $this->db_query('ROLLBACK;'); return false; } } @@ -489,11 +500,13 @@ class dms extends basis_db if($new) { //Neuen Datensatz einfuegen - $qry='INSERT INTO campus.tbl_dms_kategorie (kategorie_kurzbz, bezeichnung, beschreibung, parent_kategorie_kurzbz) VALUES('. - $this->db_add_param($this->kategorie_kurzbz).', '. - $this->db_add_param($this->bezeichnung).', '. - $this->db_add_param($this->beschreibung).', '. - $this->db_add_param($this->parent_kategorie_kurzbz).');'; + $qry='INSERT INTO campus.tbl_dms_kategorie (kategorie_kurzbz, bezeichnung, beschreibung, parent_kategorie_kurzbz, oe_kurzbz, berechtigung_kurzbz) VALUES('. + $this->db_add_param($this->kategorie_kurzbz).', '. + $this->db_add_param($this->bezeichnung).', '. + $this->db_add_param($this->beschreibung).', '. + $this->db_add_param($this->parent_kategorie_kurzbz).', '. + $this->db_add_param($this->kategorie_oe_kurzbz).', '. + $this->db_add_param($this->berechtigung_kurzbz).');'; } else { @@ -503,7 +516,9 @@ class dms extends basis_db ' kategorie_kurzbz='.$this->db_add_param($this->kategorie_kurzbz).', '. ' bezeichnung='.$this->db_add_param($this->bezeichnung).', '. ' beschreibung='.$this->db_add_param($this->beschreibung).', '. - ' parent_kategorie_kurzbz='.$this->db_add_param($this->parent_kategorie_kurzbz).' '. + ' parent_kategorie_kurzbz='.$this->db_add_param($this->parent_kategorie_kurzbz).', '. + ' oe_kurzbz='.$this->db_add_param($this->kategorie_oe_kurzbz).', '. + ' berechtigung_kurzbz='.$this->db_add_param($this->berechtigung_kurzbz).' '. 'WHERE kategorie_kurzbz='.$this->db_add_param($this->kategorie_kurzbz_old).';'; } @@ -537,6 +552,8 @@ class dms extends basis_db $this->beschreibung = $row->beschreibung; $this->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz; $this->kategorie_kurzbz_old = $row->kategorie_kurzbz; + $this->kategorie_oe_kurzbz = $row->oe_kurzbz; + $this->berechtigung_kurzbz = $row->berechtigung_kurzbz; } return true; } @@ -567,6 +584,8 @@ class dms extends basis_db $obj->bezeichnung = $row->bezeichnung; $obj->beschreibung = $row->beschreibung; $obj->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz; + $obj->kategorie_oe_kurzbz = $row->oe_kurzbz; + $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz; $this->result[]= $obj; } @@ -577,8 +596,7 @@ class dms extends basis_db /** * Laedt die Kategorien - * @param $parent_kategorie_kurzbz Wenn die Parent Kategorie übergeben wird, werden nur die direkten - * Unterkategorien geladen + * @param string $parent_kategorie_kurzbz Wenn die Parent Kategorie übergeben wird, werden nur die direkten Unterkategorien geladen * @return boolean */ public function getKategorie($parent_kategorie_kurzbz='') @@ -600,6 +618,8 @@ class dms extends basis_db $obj->kategorie_kurzbz = $row->kategorie_kurzbz; $obj->bezeichnung = $row->bezeichnung; $obj->beschreibung = $row->beschreibung; + $obj->kategorie_oe_kurzbz = $row->oe_kurzbz; + $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz; $this->result[] = $obj; } @@ -663,6 +683,8 @@ class dms extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; $this->result[] = $obj; } @@ -675,10 +697,35 @@ class dms extends basis_db } /** - * Sucht nach Dokumenten + * Zählt die Anzahl an Dokumenten in einer Kategorie * * @param $kategorie_kurzbz */ + public function countDocumentsKategorie($kategorie_kurzbz) + { + $qry = "SELECT count(*) as anzahl FROM campus.tbl_dms WHERE kategorie_kurzbz=".$this->db_add_param($kategorie_kurzbz).";"; + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + return $row->anzahl; + } + else + return false; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Sucht nach Dokumenten + * + * @param string $suchstring String nach dem gesucht werden soll + */ public function search($suchstring, $dpp=NULL, $page=NULL) { if (!is_null($dpp) && !is_null($page)) @@ -695,12 +742,13 @@ class dms extends basis_db } } - $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id) + $qry = "SELECT tbl_dms.*, tbl_dms_version.*, tbl_dms_kategorie.berechtigung_kurzbz FROM campus.tbl_dms + JOIN campus.tbl_dms_version USING(dms_id) + JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz) WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%') - OR lower(beschreibung) like lower('%".$this->db_escape($suchstring)."%') + OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%') "; - if (is_numeric($suchstring)) $qry.= " OR dms_id = ".$this->db_escape($suchstring).""; @@ -728,6 +776,9 @@ class dms extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; + $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz; $this->result[] = $obj; } @@ -777,6 +828,8 @@ class dms extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; $this->result[] = $obj; } @@ -791,7 +844,7 @@ class dms extends basis_db /** * * lädt alle Versionen zu einer übergebenen ID - * @param $id der zu ladenden Dokumente + * @param integer $id ID der zu ladenden Dokumente */ public function getAllVersions($dms_id) { @@ -823,6 +876,8 @@ class dms extends basis_db $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->version = $row->version; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; $this->result[] = $obj; } @@ -899,6 +954,8 @@ class dms extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; $this->result[] = $obj; } @@ -948,6 +1005,8 @@ class dms extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; $this->result[] = $obj; } @@ -998,6 +1057,8 @@ class dms extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; $this->result[] = $obj; } @@ -1346,6 +1407,8 @@ class dms extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; + $obj->cis_suche = $this->db_parse_bool($row->cis_suche); + $obj->schlagworte = $row->schlagworte; $this->result[] = $obj; } @@ -1366,8 +1429,8 @@ class dms extends basis_db $qry.= " AND parent_kategorie_kurzbz=".$this->db_add_param($parent_kategorie_kurzbz); else $qry.=" AND parent_kategorie_kurzbz is null"; - - $qry.=";"; + + $qry.=";"; if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) @@ -1378,6 +1441,9 @@ class dms extends basis_db $obj->bezeichnung = $row->bezeichnung; $obj->beschreibung = $row->beschreibung; $obj->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz; + $this->result[] = $obj; }