summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormatthiasgrimm <matthiasgrimm@users.sourceforge.net>2005-06-05 20:50:38 +0200
committermatthiasgrimm <matthiasgrimm@users.sourceforge.net>2005-06-05 20:50:38 +0200
commitb59a406b93334a3a9ba2c1f2529a3bc7123361f4 (patch)
tree94af6ab6cca1a522590d9f882b18de04a0a6e64f /lib
parentf0481e4f9a2d86fad0757d829e3edbe64539cd61 (diff)
downloadrpg-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.php29
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;
}