Extended class DMS so it can delete files in the filesystem

This commit is contained in:
Nikolaus Krondraf
2015-04-09 12:44:15 +02:00
parent 04021e36f6
commit ab98e6422a
2 changed files with 16 additions and 30 deletions
+4 -28
View File
@@ -347,40 +347,16 @@ if(isset($_REQUEST['delete']))
// DB Eintrag löschen
if(!$dms->deleteVersion($dms_id, $version))
echo '<span class="error">'.$dms->errormsg.'</span>';
else
{
// File im Filesystem löschen
if(unlink(DMS_PATH.$dms->filename))
echo '<span class="ok">Erfolgreich gelöscht!</span>';
else
echo '<span class="error">Fehler beim löschen aus dem Filesystem aufgetreten!</span>';
}
}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 '<span class="error">'.$dms->errormsg.'</span>';
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 '<span class="error">Fehler beim löschen aus dem Filesystem aufgetreten!</span>';
else
echo '<span class="ok">Erfolgreich gelöscht!</span>';
}
}
}
+12 -2
View File
@@ -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;