diff options
author | matthiasgrimm <matthiasgrimm@users.sourceforge.net> | 2005-06-05 20:50:38 +0200 |
---|---|---|
committer | matthiasgrimm <matthiasgrimm@users.sourceforge.net> | 2005-06-05 20:50:38 +0200 |
commit | b59a406b93334a3a9ba2c1f2529a3bc7123361f4 (patch) | |
tree | 94af6ab6cca1a522590d9f882b18de04a0a6e64f /lib | |
parent | f0481e4f9a2d86fad0757d829e3edbe64539cd61 (diff) | |
download | rpg-b59a406b93334a3a9ba2c1f2529a3bc7123361f4.tar.gz rpg-b59a406b93334a3a9ba2c1f2529a3bc7123361f4.tar.bz2 |
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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/exe/media.php | 29 |
1 files changed, 21 insertions, 8 deletions
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 <andi@splitbrain.org> */ 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; } |