, * 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 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', $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->setPermission(DMS_PATH.$filename)) echo $dms->errormsg; 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'; // 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']; $mimetype = isset($_POST['mimetype']) ? $_POST['mimetype'] : ''; $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)) { $dms = new dms(); if(!$dms->setPermission($uploadfile)) echo $dms->errormsg; 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; if ($mimetype != '') { $dms->mimetype = $mimetype; } else { $dms->mimetype = finfo_file($finfo, $uploadfile); } $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']; $mimetype = isset($_POST['mimetype']) ? $_POST['mimetype'] : ''; $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; if ($mimetype != '') { $dms->mimetype = $mimetype; } else { $dms->mimetype = finfo_file($finfo, $uploadfile); } $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 if (isset($_REQUEST['version'])) { $dms_id = $_REQUEST['dms_id']; $version = $_REQUEST['version']; $dms = new dms(); $dms->load($dms_id, $version); // 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); } } else { // lösche gesamten Eintrag $dms = new dms(); $dms_id = $_REQUEST['dms_id']; // 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); } } } 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

'; 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); // 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 { // 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', $kategorie->kategorie_oe_kurzbz, 'sui')) { echo '
Neue Datei hochladen



'; if (isset($_REQUEST['searching']) && $_REQUEST['searching'] == 'true') { echo '
'; } else { echo ''; } echo '
Beschreibung
Schlagworte
(Semikolon getrennt)
Mimetype
CIS-Suche

'; $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 integer $id Dokument_ID die angezeigt werden soll */ function drawAllVersions($id) { global $rechte, $kategorie; $dms = new dms(); $dms->getAllVersions($id); echo ' '; foreach ($dms->result as $dms_help) { echo ''; } echo '
Version Name Beschreibung Schlagworte CIS-Suche Kategorie Filename intern Mimetype Datum User
'.$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->mimetype.' '.$dms_help->insertamum.' '.$dms_help->insertvon.'
  • Erweitert
    • 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 ''; echo '

Files im Import Ordner

'; while (false !== ($file = readdir($handle))) { if ($file != '.' && $file != '..') { echo ' '; } } echo '
File
'.$file.' Upload
'; 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 ' '; $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 ''; echo ''; echo ''; echo ''; echo ''; echo ''; } if ($i > 0) echo '
Titel VKategorie  ID Beschreibung Schlagworte CIS-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 ' '.$newVersion.' '.$row->name.' '; echo $row->version; echo ''; echo ''.$kategorie->bezeichnung.''; echo ''; // Upload einer neuen Version echo ''; echo ''.$row->dms_id.''.$dms->convert_html_chars($row->beschreibung).''.$dms->convert_html_chars($row->schlagworte).''.($row->cis_suche === true ? '':' ').'
'; 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 '
Dateiname:
Beschreibung:
Schlagworte
(Semikolon getrennt):
Mimetype
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 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 '
'; } ?>