/** * Move directory. * Copyright (c) 2015 Hintay <*****@*****.**> * * @param string $oldDir Old directory. * @param string $tgtDir Target directory. * @param bool $overWrite Optional. Overwrite files? * @param bool $deleteOld Optional. Delete old files? * @return bool False if an error occurred. */ function moveDir($oldDir, $tgtDir, $overWrite = false, $deleteOld = true) { $tgtDir .= '/'; $oldDir .= '/'; if (!is_dir($oldDir) || empty($tgtDir)) { return false; } if (!file_exists($tgtDir)) { return rename($oldDir, $tgtDir); } @($dirHandle = opendir($oldDir)); if (!$dirHandle) { return false; } while (false !== ($file = readdir($dirHandle))) { if ($file == '.' || $file == '..') { continue; } if (!is_dir($oldDir . $file)) { // This is a file. if (file_exists($tgtDir . $file)) { if (!$overWrite) { if ($deleteOld) { unlink($oldDir . $file); } continue; } unlink($tgtDir . $file); } if ($deleteOld) { rename($oldDir . $file, $tgtDir . $file); } else { copy($oldDir . $file, $tgtDir . $file); } } else { moveDir($oldDir . $file, $tgtDir . $file, $overWrite, $deleteOld); } } closedir($dirHandle); if ($deleteOld) { return rmdir($oldDir); } else { return true; } }
function moveDir($src, $dst) { if (!file_exists($dst)) { mkdir($dst); } $handle = opendir($src); while ($file = readdir($handle)) { if ($file != '.' && $file != '..') { if (is_dir($src . '/' . $file)) { moveDir($src . '/' . $file, $dst . '/' . $file); } else { rename($src . '/' . $file, $dst . '/' . $file); if (!file_exists($dst . '/' . $file)) { error('Failed to copy <code>' . str_replace(FORUM_ROOT, '[ROOT]', $dst) . '/' . $file . '</code>. Please check file permissions in app_config directory.'); } } } } }
} $this->update_version('1.7.15.12.9'); case '1.7.15.12.9': case '1.7.15.12.12': moveDir(ROOT . 'manage/image', ROOT . 'image', false, false); function manage_replace($input) { return str_replace('/manage/', '/', $input); } $packages = DB::fetch_all("SELECT `ScreenShots`, `ID` FROM `" . DCRM_CON_PREFIX . "Packages`"); foreach ($packages as $package) { if (strpos($package['ScreenShots'], '/manage/') === false) { continue; } $screenshots = unserialize($package['ScreenShots']); DB::update(DCRM_CON_PREFIX . 'Packages', array('ScreenShots' => serialize(array_map('manage_replace', $screenshots))), array('ID' => $package['ID'])); } $this->update_version('1.7.15.12.30', true); case '1.7.15.12.30': moveDir(ROOT . 'icons', ROOT . 'icon', false, false); $langfile_suffixs = array('install-', 'manage-', 'system-', ''); foreach ($langfile_suffixs as $suffix) { unlink(LANG_DIR . '/' . $suffix . 'zh_CN.po'); unlink(LANG_DIR . '/' . $suffix . 'zh_CN.mo'); } $this->update_version('1.7.16.2.4', true); break; default: $this->fallback(); break; }
DB::query("ALTER TABLE `" . DCRM_CON_PREFIX . "Packages` ADD `ScreenShots` longtext NOT NULL AFTER `System_Support`"); $screenshots = DB::fetch_all("SELECT * FROM `" . DCRM_CON_PREFIX . "ScreenShots`"); if (!empty($screenshots)) { foreach ($screenshots as $screenshot) { $screenshots_cleaned[$screenshot['PID']][] =& $screenshots[$screenshot['Image']]; } foreach ($screenshots_cleaned as $package_id => $screenshots_pid) { DB::update(DCRM_CON_PREFIX . 'Packages', array('ScreenShots' => serialize($screenshots_pid)), array('ID' => $package_id)); } } DB::query("DROP TABLE IF EXISTS `" . DCRM_CON_PREFIX . "ScreenShots`"); } $this->update_version('1.7.15.12.9'); case '1.7.15.12.9': case '1.7.15.12.12': moveDir(ROOT . 'manage/image', ROOT . 'image'); function manage_replace($input) { return str_replace('/manage/', '/', $input); } $packages = DB::fetch_all("SELECT `ScreenShots`, `ID` FROM `" . DCRM_CON_PREFIX . "Packages`"); foreach ($packages as $package) { if (strpos($package['ScreenShots'], '/manage/') === false) { continue; } $screenshots = unserialize($package['ScreenShots']); DB::update(DCRM_CON_PREFIX . 'Packages', array('ScreenShots' => serialize(array_map('manage_replace', $screenshots))), array('ID' => $package['ID'])); } $this->update_version('1.7.15.12.30', true); break; default: