From f9ce811c4984bc10d8154c0680f1cca226e2469d Mon Sep 17 00:00:00 2001
From: Cameron <e107inc@gmail.com>
Date: Sat, 9 Dec 2017 15:06:10 -0800
Subject: [PATCH] Fixes #802 - Deleting physical files from media-manager.

---
 e107_admin/image.php         | 14 ++++++++++++++
 e107_handlers/file_class.php | 27 ++++++++++++++++++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)

diff --git a/e107_admin/image.php b/e107_admin/image.php
index 8b638d599..b61395a85 100644
--- a/e107_admin/image.php
+++ b/e107_admin/image.php
@@ -2551,6 +2551,20 @@ class media_admin_ui extends e_admin_ui
 	function afterDelete($deleted_data, $id) // call after 'delete' is successfully executed. - delete the file with the db record (optional pref)
 	{
 
+		if(!empty($deleted_data['media_url']))
+		{
+			$status = e107::getFile()->delete($deleted_data['media_url']);
+
+			$message = ($status !== false) ? LAN_UI_FILE_DELETED : LAN_UI_FILE_DELETED_FAILED;
+
+			$mes = e107::getParser()->lanVars($message,$deleted_data['media_url'], true);
+
+			$errType = ($status) ? E_MESSAGE_SUCCESS : E_MESSAGE_ERROR;
+
+			e107::getMessage()->add($mes, $errType);
+
+		}
+
 	}
 
 	function getPath($mime)
diff --git a/e107_handlers/file_class.php b/e107_handlers/file_class.php
index f8a9d43ba..dd5b9788c 100644
--- a/e107_handlers/file_class.php
+++ b/e107_handlers/file_class.php
@@ -1152,7 +1152,32 @@ class e_file
 		{
 			return $newFile;		
 		}
-	}		
+	}
+
+
+	/**
+	 * Delete a file.
+	 * @param $file
+	 * @return bool
+	 */
+	public function delete($file)
+	{
+		if(empty($file))
+		{
+			return false;
+		}
+
+		$file = e107::getParser()->replaceConstants($file);
+
+		if(file_exists($file))
+		{
+			return unlink($file);
+		}
+
+		return false;
+
+	}
+
 
 	
 	/**