/** * 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); }
$list->thelist[] = $tmplist; } // delete confirmed if (isset($_POST['yesdel'])) { $linkshared = count_records('fmanager_shared', 'sharedlink', $c); if ($linkshared > 0) { fm_update_shared_links($c); } $linkshared = 0; if ($groupid == 0) { $file = fm_get_user_link($c); } else { $file = fm_get_group_link($c, $groupid); } if ($file->type == TYPE_FILE || $file->type == TYPE_ZIP) { $warnmsg .= fm_remove_file($file, $groupid); } } // Means that multiple types were selected (folders/links) and these are folders } else { if (substr($c, 0, 2) == 'f-') { $foldid = substr($c, 2); $tmplist = ""; if ($groupid == 0) { fm_user_owns_folder($foldid); } else { fm_group_owns_folder($foldid, $groupid); } if (!isset($_POST['yesdel']) && !isset($_POST['nodel'])) { $foldname = get_record('fmanager_folders', 'id', $foldid); $tmpcount = count_records('fmanager_shared', 'sharedlink', $foldid, 'type', STYPE_FOLD);