diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php
index 2d940d92d..e21e69c02 100644
--- a/cms/tinymce_dms.php
+++ b/cms/tinymce_dms.php
@@ -347,40 +347,16 @@ if(isset($_REQUEST['delete']))
// DB Eintrag löschen
if(!$dms->deleteVersion($dms_id, $version))
echo ''.$dms->errormsg.'';
- else
- {
- // File im Filesystem löschen
- if(unlink(DMS_PATH.$dms->filename))
- echo 'Erfolgreich gelöscht!';
- else
- echo 'Fehler beim löschen aus dem Filesystem aufgetreten!';
- }
- }else
+ }
+ else
{
// lösche gesamten Eintrag
+ $dms = new dms();
$dms_id = $_REQUEST['dms_id'];
- $dms = new dms();
- $error = false;
-
- $dms->getAllVersions($dms_id);
-
- // DB Einträge löschen
+ // DB Einträge und Dokumente löschen
if(!$dms->deleteDms($dms_id))
echo ''.$dms->errormsg.'';
- else
- {
- // Alle Versionen der Datei vom Filesystem löschen
- foreach($dms->result as $obj)
- {
- if(is_file(DMS_PATH.$obj->filename) && !unlink(DMS_PATH.$obj->filename))
- $error = true;
- }
- if($error)
- echo 'Fehler beim löschen aus dem Filesystem aufgetreten!';
- else
- echo 'Erfolgreich gelöscht!';
- }
}
}
diff --git a/include/dms.class.php b/include/dms.class.php
index 1e04a9570..08f28c997 100644
--- a/include/dms.class.php
+++ b/include/dms.class.php
@@ -220,6 +220,9 @@ class dms extends basis_db
*/
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))
@@ -227,13 +230,20 @@ class dms extends basis_db
$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))
{
- // Wenn letzte Version gelöscht wurde -> lösche gesamten Eintrag
+ // 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;
+ return false;
}
else
return true;