Beispiel #1
0
/**
 * 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;
    }
}
Beispiel #2
0
 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.');
                 }
             }
         }
     }
 }
Beispiel #3
0
        }
        $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;
}
Beispiel #4
0
         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: