} else { $dir = CMSFILESDIR; } } if (isset($_GET['do'])) { if ($_GET['do'] == 'delete') { $ok = unlink(realpath($dir) . '/' . $_GET['file']); $messages .= '<div class="message ok"><strong>' . $_GET['file'] . '</strong> deleted</div>'; header("Location: files.php?message={$messages}&dir=" . $dir); } else { if ($_GET['do'] == 'newfolder') { $newDirPath = urldecode($_GET['dir']) . $_GET['newfoldername']; $created = @mkdir($newDirPath, 0755); } else { if ($_GET['do'] == 'deletefolder') { if (wipeDir($_GET['killdir'])) { $messages .= '<div class="message ok">Folder <strong>' . $_GET['killdir'] . '</strong> deleted</div>'; } } } } } // Upload new files ? if ($_FILES) { // Loop through all files, and attempt to upload to file directory $messages = ''; foreach ($_FILES as $newfile) { if (strlen($newfile['name'])) { $uploadfile = realpath($dir) . '/' . basename($newfile['name']); if (move_uploaded_file($newfile['tmp_name'], $uploadfile)) { $messages .= '<div class="message ok"><strong>' . $newfile['name'] . '</strong> uploaded OK</div>';
$killFile2 = false; $includesDir = stripFileExtension($killFile) . '/'; } else { // Must be a page or Free Include, so find the corresponding Live file??? = $killFile2 if (strstr($killFile, '../')) { $killFile2 = getPreviewFileFromLive($killFile); } if (getFileExtension($killFile) == "php") { // File is a PAGE, try to delete its local folders too $includesDir = stripFileExtension(getPreviewFileFromLive($killFile)) . '_cms_files'; clearstatcache(); } } } if (isset($includesDir) && is_dir($includesDir)) { if (wipeDir($includesDir)) { $includesDirWiped = @rmdir($includesDir); /* if (!$includesDirWiped) { print('error:couldntwipepageincludesfolder') ; exit ; }*/ } } /* Delete the corresponding Page/FI */ if ($killFile2 && False === @unlink($killFile2)) { print 'error:deletefile2failed'; } // OK. Let the View know delete worked. if (!isset($_GET['suppress_output'])) {
You should have received a copy of the GNU General Public License along with Cmsfromscratch. If not, see <http://www.gnu.org/licenses/>. *********************************************************************** */ require '../cmsfns.php'; if (!isset($_GET['dir'])) { print 'error:nodirectorytodelete'; exit; } $liveDir = pathFromID($_GET['dir']); $previewDir = getPreviewFileFromLive($liveDir); if (is_dir($liveDir)) { // Delete directory $dirWiped = wipeDir($liveDir); @rmdir($liveDir); /* if (False === @rmdir($liveDir)) { print('error:Delete live copy of folder failed') ; exit ; }*/ } if (is_dir($previewDir)) { // Delete directory $dirWiped = wipeDir($previewDir); @rmdir($previewDir); /* if (False === @rmdir($previewDir)) { print('error:Delete preview copy of folder failed') ; exit ; }*/ } // SUCCESS print $_GET['dir'];
function wipeDir($dir) { if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { $path = $dir . '/' . $file; if (is_file($path)) { if (!unlink($path)) { // Error echo 'Failed to delete <strong>' . $path, '</strong><br />'; return false; } } else { if (is_dir($path) && substr($file, 0, 1) != '.') { wipeDir($path); // @rmdir($path) ; This should be done by the calling script... // echo 'Removed dir <strong>' . $path, '</strong><br />' ; } } } closedir($handle); $final = rmdir($dir); return True; } else { echo 'Failed to find: ' . $dir; return False; } }