コード例 #1
0
ファイル: admin.php プロジェクト: lcorbasson/Piwigo-gdThumb
function int_delete_gdthumb_cache($pattern)
{
    if ($contents = @opendir(PHPWG_ROOT_PATH . PWG_DERIVATIVE_DIR)) {
        while (($node = readdir($contents)) !== false) {
            if ($node != '.' and $node != '..' and is_dir(PHPWG_ROOT_PATH . PWG_DERIVATIVE_DIR . $node)) {
                clear_derivative_cache_rec(PHPWG_ROOT_PATH . PWG_DERIVATIVE_DIR . $node, $pattern);
            }
        }
        closedir($contents);
    }
}
コード例 #2
0
ファイル: admin.php プロジェクト: lcorbasson/Piwigo-GThumb
function delete_gthumb_cache($height)
{
    $pattern = '#.*-cu_s9999x' . $height . '\\.[a-zA-Z0-9]{3,4}$#';
    if ($contents = @opendir(PHPWG_ROOT_PATH . PWG_DERIVATIVE_DIR)) {
        while (($node = readdir($contents)) !== false) {
            if ($node != '.' and $node != '..' and is_dir(PHPWG_ROOT_PATH . PWG_DERIVATIVE_DIR . $node)) {
                clear_derivative_cache_rec(PHPWG_ROOT_PATH . PWG_DERIVATIVE_DIR . $node, $pattern);
            }
        }
        closedir($contents);
    }
}
コード例 #3
0
ファイル: site_update.php プロジェクト: squidjam/Piwigo
    $to_delete_derivative_dirs = array();
    foreach (array_diff(array_keys($db_fulldirs), $fs_fulldirs) as $fulldir) {
        $to_delete[] = $db_fulldirs[$fulldir];
        unset($db_fulldirs[$fulldir]);
        $infos[] = array('path' => $fulldir, 'info' => l10n('deleted'));
        if (substr_compare($fulldir, '../', 0, 3) == 0) {
            $fulldir = substr($fulldir, 3);
        }
        $to_delete_derivative_dirs[] = PHPWG_ROOT_PATH . PWG_DERIVATIVE_DIR . $fulldir;
    }
    if (count($to_delete) > 0) {
        if (!$simulate) {
            delete_categories($to_delete);
            foreach ($to_delete_derivative_dirs as $to_delete_dir) {
                if (is_dir($to_delete_dir)) {
                    clear_derivative_cache_rec($to_delete_dir, '#.+#');
                }
            }
        }
        $counts['del_categories'] = count($to_delete);
    }
    $template->append('footer_elements', '<!-- scanning dirs : ' . get_elapsed_time($start, get_moment()) . ' -->');
}
// +-----------------------------------------------------------------------+
// |                           files / elements                            |
// +-----------------------------------------------------------------------+
if (isset($_POST['submit']) and $_POST['sync'] == 'files' and !$general_failure) {
    $start_files = get_moment();
    $start = $start_files;
    $fs = $site_reader->get_elements($basedir);
    $template->append('footer_elements', '<!-- get_elements: ' . get_elapsed_time($start, get_moment()) . ' -->');
コード例 #4
0
ファイル: functions.php プロジェクト: lcorbasson/Piwigo
/**
 * Used by clear_derivative_cache()
 * @ignore
 */
function clear_derivative_cache_rec($path, $pattern)
{
    $rmdir = true;
    $rm_index = false;
    if ($contents = opendir($path)) {
        while (($node = readdir($contents)) !== false) {
            if ($node == '.' or $node == '..') {
                continue;
            }
            if (is_dir($path . '/' . $node)) {
                $rmdir &= clear_derivative_cache_rec($path . '/' . $node, $pattern);
            } else {
                if (preg_match($pattern, $node)) {
                    unlink($path . '/' . $node);
                } elseif ($node == 'index.htm') {
                    $rm_index = true;
                } else {
                    $rmdir = false;
                }
            }
        }
        closedir($contents);
        if ($rmdir) {
            if ($rm_index) {
                unlink($path . '/index.htm');
            }
            clearstatcache();
            @rmdir($path);
        }
        return $rmdir;
    }
}