function _deleteFolder($fo, $recursive = true) { global $Config, $User, $Logger; // Also delete all sub folders! if ($recursive) { $fop = new dbIO('FSFolder'); $fop->UserID = $User->ID; $fop->FilesystemID = $this->ID; $fop->FolderID = $fo->ID; if ($fop = $fop->find()) { foreach ($fop as $fopp) { $Logger->log('Attempting to delete sub folder -> ' . $fopp->Name . '/ (' . $fopp->ID . ')'); $this->_deleteFolder($fopp, $recursive); } } } // Also delete all files! $fi = new dbIO('FSFile'); $fi->UserID = $User->ID; $fi->FilesystemID = $this->ID; $fi->FolderID = $fo->ID; if ($files = $fi->find()) { foreach ($files as $file) { $Logger->log('Attempting to delete file ' . $file->Filename . ' in ' . $fo->Name . '/ (' . $fo->ID . ')'); if (file_exists($Config->FCUpload . $fi->DiskFilename)) { unlink($Config->FCUpload . $file->DiskFilename); } $file->Delete(); } } $Logger->log('Deleting database entry of folder ' . $fo->Name . '/ (' . $fo->ID . ')'); $fo->Delete(); return true; }