function exponent_files_removeDirectory($dir) { if (strpos($dir, BASE) != 0) { $dir = BASE . $dir; } $dh = opendir($dir); if ($dh) { while (($file = readdir($dh)) !== false) { if ($file != "." && $file != ".." && is_dir("{$dir}/{$file}")) { if (exponent_files_removeDirectory("{$dir}/{$file}") == SYS_FILES_NOTDELETABLE) { return SYS_FILES_NOTDELETABLE; } } else { if (is_file("{$dir}/{$file}") || is_link(is_file("{$dir}/{$file}"))) { unlink("{$dir}/{$file}"); if (file_exists("{$dir}/{$file}")) { return SYS_FILES_NOTDELETABLE; } } else { if ($file != "." && $file != "..") { echo "BAD STUFF HAPPENED<br />"; echo "--------Don't know what to do with {$dir}/{$file}<br />"; echo "<xmp>"; print_r(stat("{$dir}/{$file}")); echo filetype("{$dir}/{$file}"); echo "</xmp>"; } } } } } rmdir($dir); }
$template = new template('AdministrationModule', '_upload_finalSummary', $loc); $ext_filename = BASE . "/tmp/uploads/" . session_id(); if (!file_exists($ext_filename) || !is_dir($ext_filename)) { $template->assign('nofiles', 1); } else { if (!defined('SYS_FILES')) { require_once BASE . 'subsystems/files.php'; } $success = array(); foreach (array_keys(exponent_files_listFlat($ext_filename, true, null, array(), $ext_filename)) as $file) { if ($file != '/archive.tar' && $file != '/archive.tar.gz' && $file != 'archive.tar.bz2' && $file != '/archive.zip') { exponent_files_makeDirectory(dirname($file)); $success[$file] = copy($ext_filename . $file, BASE . substr($file, 1)); if (basename($file) == 'views_c') { chmod(BASE . substr($file, 1), 0777); } } } $del_return = exponent_files_removeDirectory($ext_filename); echo $del_return; $template->assign('nofiles', 0); $template->assign('success', $success); $template->assign('redirect', exponent_flow_get()); ob_start(); include BASE . 'modules/AdministrationModule/actions/installtables.php'; ob_end_clean(); } $template->output(); } else { echo SITE_403_HTML; }
function exponent_sharedcore_unlinkExtension($typedir, $name, $dir) { if (!defined("SYS_FILES")) { require_once BASE . "subsystems/files.php"; } exponent_files_removeDirectory("{$dir}/{$typedir}/{$name}"); }
$ext = '.zip'; } } } } } if ($ext == '') { echo $i18n['bad_archive'] . '<br />'; } else { if (!defined('SYS_FILES')) { require_once BASE . 'subsystems/files.php'; } // Look for stale sessid directories: $ext_filename = BASE . "/tmp/uploads/" . session_id(); if (file_exists($ext_filename) && is_dir($ext_filename)) { exponent_files_removeDirectory($ext_filename); } $return = exponent_files_makeDirectory($ext_filename); if ($return != SYS_FILES_SUCCESS) { switch ($return) { case SYS_FILES_FOUNDFILE: case SYS_FILES_FOUNDDIR: echo $i18n['file_in_parh'] . '<br />'; break; case SYS_FILES_NOTWRITABLE: echo $i18n['dest_not_w'] . '<br />'; break; case SYS_FILES_NOTREADABLE: echo $i18n['dest_not_r'] . '<br />'; break; }
$template = new template('administrationmodule', '_upload_finalSummary', $loc); $sessid = session_id(); if (!file_exists(BASE . "extensionuploads/{$sessid}") || !is_dir(BASE . "extensionuploads/{$sessid}")) { $template->assign('nofiles', 1); } else { if (!defined('SYS_FILES')) { require_once BASE . 'subsystems/files.php'; } $success = array(); foreach (array_keys(exponent_files_listFlat(BASE . "extensionuploads/{$sessid}", true, null, array(), BASE . "extensionuploads/{$sessid}")) as $file) { if ($file != '/archive.tar' && $file != '/archive.tar.gz' && $file != 'archive.tar.bz2' && $file != '/archive.zip') { exponent_files_makeDirectory(dirname($file)); $success[$file] = copy(BASE . "extensionuploads/{$sessid}" . $file, BASE . substr($file, 1)); if (basename($file) == 'views_c') { chmod(BASE . substr($file, 1), 0777); } } } $del_return = exponent_files_removeDirectory(BASE . "extensionuploads/{$sessid}"); echo $del_return; $template->assign('nofiles', 0); $template->assign('success', $success); $template->assign('redirect', exponent_flow_get()); ob_start(); include BASE . 'modules/administrationmodule/actions/installtables.php'; ob_end_clean(); } $template->output(); } else { echo SITE_403_HTML; }
# Exponent is free software; you can redistribute # it and/or modify it under the terms of the GNU # General Public License as published by the Free # Software Foundation; either version 2 of the # License, or (at your option) any later version. # # GPL: http://www.gnu.org/licenses/gpl.txt # ################################################## if (!defined('EXPONENT')) { exit(''); } $dest_dir = exponent_sessions_get('dest_dir'); $files = exponent_sessions_get('files_data'); if (!defined('SYS_FILES')) { require_once BASE . 'subsystems/files.php'; } if (!file_exists(BASE . 'files')) { mkdir(BASE . 'files', 0777); } foreach (array_keys($files) as $mod) { exponent_files_copyDirectoryStructure($dest_dir . '/files/' . $mod, BASE . 'files/' . $mod); foreach (array_keys($files[$mod][1]) as $file) { copy($dest_dir . '/files/' . $mod . '/' . $file, BASE . 'files/' . $mod . '/' . $file); } } exponent_sessions_unset('dest_dir'); exponent_sessions_unset('files_data'); exponent_files_removeDirectory($dest_dir); $template = new template('importer', '_files_final'); $template->output();
$ext = '.zip'; } } } } } if ($ext == '') { echo $i18n['bad_archive'] . '<br />'; } else { if (!defined('SYS_FILES')) { require_once BASE . 'subsystems/files.php'; } // Look for stale sessid directories: $sessid = session_id(); if (file_exists(BASE . "extensionuploads/{$sessid}") && is_dir(BASE . "extensionuploads/{$sessid}")) { exponent_files_removeDirectory("extensionuploads/{$sessid}"); } $return = exponent_files_makeDirectory("extensionuploads/{$sessid}"); if ($return != SYS_FILES_SUCCESS) { switch ($return) { case SYS_FILES_FOUNDFILE: case SYS_FILES_FOUNDDIR: echo $i18n['file_in_parh'] . '<br />'; break; case SYS_FILES_NOTWRITABLE: echo $i18n['dest_not_w'] . '<br />'; break; case SYS_FILES_NOTREADABLE: echo $i18n['dest_not_r'] . '<br />'; break; }