/** * recursively deletes a folder in database and physically * @param object $dir folder database object * @param $groupid * @uses $CFG * @uses $USER */ function fm_delete_folder($dir, $groupid) { global $CFG, $USER; // if the dir being deleted is a root dir (eg. has some dir's under it) if ($child = get_record('fmanager_folders', 'pathid', $dir->id)) { fm_delete_folder($child, $groupid); } // Deletes all files/url links under folder if ($allrecs = get_records('fmanager_link', 'folder', $dir->id)) { foreach ($allrecs as $ar) { // a file if ($ar->type == TYPE_FILE || $ar->type == TYPE_ZIP) { fm_remove_file($ar, $groupid); } // removes shared aspect delete_records('fmanager_shared', 'sharedlink', $ar->id); // Delete link delete_records('fmanager_link', 'id', $ar->id); } } // delete shared to folder delete_records('fmanager_shared', 'sharedlink', $dir->id); if ($groupid == 0) { if (!@rmdir($CFG->dataroot . "/file_manager/users/" . $USER->id . $dir->path . $dir->name . "/")) { error(get_string('errnodeletefolder', 'block_file_manager')); } } else { if (!@rmdir($CFG->dataroot . "/file_manager/groups/" . $groupid . $dir->path . $dir->name . "/")) { error(get_string('errnodeletefolder', 'block_file_manager')); } } delete_records('fmanager_folders', 'id', $dir->id); }
$tmprec = get_record('fmanager_folders', 'id', $c); $tmplist .= $tmprec->name; $list->thelist[] = $tmplist; } } if ($tmpcount > 0) { $list->inusemsg = get_string('msgfolderinuse', 'block_file_manager'); } } $list->inusemsg .= get_string('msgsublinksdeleted', 'block_file_manager'); if (isset($_POST['yesdel'])) { $chkdup = NULL; foreach ($cb as $c) { if ($c != 0 && $chkdup != $c) { $tmppath = get_record('fmanager_folders', 'id', $c); fm_delete_folder($tmppath, $groupid); } $chkdup = $c; } // ALl deletion handled by fm_delete_folder function //if (fm_process_del('fmanager_folders',$cb)) { print_simple_box(get_string('msgdeleteok', 'block_file_manager'), 'center', "", "#FFFFFF"); redirect("view.php?id={$id}&groupid={$groupid}&rootdir={$rootdir}"); //} } break; default: error(get_string('errwrongparam', 'block_file_manager'), "view.php?id={$id}&groupid={$groupid}&rootdir={$rootdir}"); break; } print_heading(get_string('confdelete', 'block_file_manager'));