From b59a406b93334a3a9ba2c1f2529a3bc7123361f4 Mon Sep 17 00:00:00 2001 From: matthiasgrimm Date: Sun, 5 Jun 2005 20:50:38 +0200 Subject: media reference check This patch implements the first step of a media file reference checker. Every time the user wanted to delete a media file it would be ckecked for still existing references to this media file. File deletion is denied if this media file is still in use. darcs-hash:20050605185038-7ef76-475e5990609587e1b8cee0e155fa6002f1c5b27c.gz --- lib/exe/media.php | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'lib/exe') diff --git a/lib/exe/media.php b/lib/exe/media.php index 4e193807c..f0d0795ad 100644 --- a/lib/exe/media.php +++ b/lib/exe/media.php @@ -34,11 +34,20 @@ } //handle deletion - if($DEL && $AUTH >= AUTH_DELETE){ - media_delete($DEL); + $mediareferences = array(); + if($DEL && $AUTH >= AUTH_DELETE){ + if($conf['refcheck']){ + search($mediareferences,$conf['datadir'],'search_reference',array('query' => $DEL)); } + if(!count($mediareferences)){ + media_delete($DEL); + }else{ + $text = str_replace('%s',noNS($DEL),$lang['mediainuse']); + msg($text,0); + } + } - //handle upload + //handle upload if($_FILES['upload']['tmp_name'] && $UPLOADOK){ media_upload($NS,$AUTH); } @@ -58,12 +67,16 @@ * @author Andreas Gohr */ function media_delete($delid){ + global $lang; + $file = mediaFN($delid); - if(@unlink($file)){ - return true; - } - //something went wrong - msg("'$file' couldn't be deleted - check permissions",-1); + if(@unlink($file)){ + msg(str_replace('%s',noNS($delid),$lang['deletesucc']),1); + return true; + } + //something went wrong + $text = str_replace('%s',$file,$lang['deletefail']); + msg($text,-1); return false; } -- cgit v1.2.3