From 4a961e72f572dfd45a10c978f03cd467600ddd89 Mon Sep 17 00:00:00 2001 From: Michal Kolodziejski Date: Wed, 1 Oct 2008 20:10:02 +0200 Subject: wrap media file deletion in MEDIA_DELETE_FILE event darcs-hash:20081001181002-90c8c-6cac9e589f510a0a590d57a699669bc68e111ff9.gz --- inc/media.php | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'inc') diff --git a/inc/media.php b/inc/media.php index 43d8539c4..8a18e8b2e 100644 --- a/inc/media.php +++ b/inc/media.php @@ -163,17 +163,28 @@ function media_delete($id,$auth){ if(!count($mediareferences)){ $file = mediaFN($id); - if(@unlink($file)){ - msg(str_replace('%s',noNS($id),$lang['deletesucc']),1); - $del = io_sweepNS($id,'mediadir'); - if($del){ - // current namespace was removed. redirecting to root ns passing msg along - header('Location: '.DOKU_URL.'lib/exe/mediamanager.php?msg1='. - rawurlencode(str_replace('%s',noNS($id),$lang['deletesucc']))); - exit; + + // trigger an event - MEDIA_DELETE_FILE + $data['name'] = basename($file); + $data['path'] = $file; + $data['size'] = (@file_exists($file)) ? filesize($file) : 0; + $evt = new Doku_Event('MEDIA_DELETE_FILE',$data); + if ($evt->advise_before()) { + if(@unlink($file)){ + msg(str_replace('%s',noNS($id),$lang['deletesucc']),1); + $del = io_sweepNS($id,'mediadir'); + if($del){ + // current namespace was removed. redirecting to root ns passing msg along + header('Location: '.DOKU_URL.'lib/exe/mediamanager.php?msg1='. + rawurlencode(str_replace('%s',noNS($id),$lang['deletesucc']))); + exit; + } + return true; } - return true; } + $evt->advise_after(); + unset($evt); + //something went wrong msg(str_replace('%s',$file,$lang['deletefail']),-1); return false; -- cgit v1.2.3