Esempio n. 1
0
if (!preg_match("/plugins\\/([^\\/]+)\\/c(css)\\/([^\\/]+\\.css)\$/i", $url, $match) && !preg_match("/plugins\\/([^\\/]+)\\/c(js)\\/([^\\/]+\\.js)\$/i", $url, $match) && !preg_match("/c(css)\\/([^\\/]+\\.css)\$/i", $url, $match) && !preg_match("/c(js)\\/([^\\/]+\\.js)\$/i", $url, $match)) {
    error404();
}
if (isset($match[3])) {
    $fileName = "plugins" . DS . $match[1] . DS . $match[2] . DS . $match[3];
    $type = $match[2];
} else {
    $fileName = $match[1] . DS . $match[2];
    $type = $match[1];
}
$file = WWW_ROOT . $fileName;
if (!file_exists($file)) {
    error404();
}
$fileModified = filemtime($file);
make_cache(true, $fileModified, 259200);
$encoding = Configure::read("App.encoding");
if ($type === "css") {
    header("Content-Type: text/css;charset={$encoding}");
} else {
    if ($type === "js") {
        header("Content-Type: text/javascript;charset={$encoding}");
    }
}
foreach ($filter as $v) {
    if (strpos($file, $v) !== false) {
        echo file_get_contents($file);
        exit;
    }
}
APP::import('vendor', 'inc/packer');
    $time_from = strtotime($r['time']);
    $time_to = $time_from + 3600 - 1;
    $cache_time = date('Y-m-d H:i:s', $time_from);
    echo 'Выполняем пересчёт кэша за ' . $r['time'] . '<br />';
    // УДАЛИТЬ СТАРЫЙ КЭШ
    foreach ($main_types as $main_type) {
        echo 'Тип <b>' . $main_type . '</b>, кеширование<br />';
        make_cache($main_type, $time_from, $time_to, $cache_time, true);
    }
    exit;
} else {
    list($time_from, $time_to) = get_last_cache_time();
    $cache_time = date('Y-m-d H:i:s', time_edge($time_from, 'hour', 'begin'));
    foreach ($main_types as $main_type) {
        echo 'Тип <b>' . $main_type . '</b>, кеширование<br />';
        $result = make_cache($main_type, $time_from, $time_to, $cache_time);
        if (!$result) {
            break;
        }
    }
    set_cache_timer('hour', $cache_time);
}
$t2 = microtime_float();
echo 'Кэш ленты: ' . $cache_time . ' (' . round($t2 - $t1, 2) . ' c.)<br />';
if ($_GET['reload']) {
    if ($time_to < time()) {
        echo '<script>window.location.reload();</script>';
    } else {
        echo 'Кэш в актуальном состоянии';
    }
}