Skip to content
Snippets Groups Projects
Commit d186898b authored by Andreas Gohr's avatar Andreas Gohr
Browse files

redirect to root namespace in mediamanager when namespace was deleted FS#1286

darcs-hash:20080215105251-7ad00-b7ac1bfc0e2d1eccf079f4ff2f0db8876896b79d.gz
parent fd78eea8
No related branches found
No related tags found
No related merge requests found
......@@ -21,6 +21,9 @@
* $data[1] ns_type: 'pages' or 'media' namespace tree.
*
* @todo use safemode hack
* @param string $id - a pageid, the namespace of that id will be tried to deleted
* @param string $basadir - the config name of the type to delete (datadir or mediadir usally)
* @returns bool - true if at least one namespace was deleted
* @author Andreas Gohr <andi@splitbrain.org>
* @author Ben Coburn <btcoburn@silicodon.net>
*/
......@@ -29,6 +32,8 @@ function io_sweepNS($id,$basedir='datadir'){
$types = array ('datadir'=>'pages', 'mediadir'=>'media');
$ns_type = (isset($types[$basedir])?$types[$basedir]:false);
$delone = false;
//scan all namespaces
while(($id = getNS($id)) !== false){
$dir = $conf[$basedir].'/'.utf8_encodeFN(str_replace(':','/',$id));
......@@ -37,10 +42,12 @@ function io_sweepNS($id,$basedir='datadir'){
if(@rmdir($dir)) {
if ($ns_type!==false) {
$data = array($id, $ns_type);
$delone = true; // we deleted at least one dir
trigger_event('IO_NAMESPACE_DELETED', $data);
}
} else { return; }
} else { return $delone; }
}
return $delone;
}
/**
......
......@@ -165,7 +165,13 @@ function media_delete($id,$auth){
$file = mediaFN($id);
if(@unlink($file)){
msg(str_replace('%s',noNS($id),$lang['deletesucc']),1);
io_sweepNS($id,'mediadir');
$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;
}
//something went wrong
......
......@@ -11,6 +11,9 @@
require_once(DOKU_INC.'inc/auth.php');
session_write_close(); //close session
// handle passed message
if($_REQUEST['msg1']) msg(hsc($_REQUEST['msg1']),1);
// get namespace to display (either direct or from deletion order)
if($_REQUEST['delete']){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment