Главная » Хаки DLE » Автоочистка кэша в DLE

Автоочистка кэша в DLE

  • Хаки DLE

Автоочистка кэша в DLE

Хак позволяющий автоматически очищать кэш на всех версиях DLE.
Так же это своего рода учебник для начинающих.

Для начала сама установка:

Открыть файл /engine/init.php
После строки:
if ($cron) include_once ENGINE_DIR . '/modules/cron.php';


Вставить:
$clear_cache_time = get_vars( "clear_cache" );
if($clear_cache_time<=$_TIME){
$scache_time = 24;
clear_cache();
set_vars("clear_cache", $_TIME+$scache_time*60*60);
}


Сохранить и закрыть. Все, хак установлен.

Теперь рассмотрим каждую строчку отдельно:
$clear_cache_time = get_vars( "clear_cache" );

Этой строкой мы извлекаем время когда следует очищать кэш. При первом запуске - кэш будет очищен и будет задано значение этой переменной.
if($clear_cache_time<=$_TIME){

Проверяем, если время очистки кэша меньше настоящего времени, то выполняем то что в скобках.
$scache_time = 24;

Для простоты частоту обновления кеша вынес в переменную, в моем случае это 24 часа. Почему - опишу ниже.
clear_cache();

Собственно чистим сам кэш.
set_vars("clear_cache", $_TIME+$scache_time*60*60);

Задаем время следующей очистки кэша и сохраняем. Все это делает за нас функция, мы ей даем только значение переменных.
clear_cache - имя файла системного кэша, где хранится передаваемое значение.
$_TIME+$scache_time*60*60 - к настоящему (нынешнему) времени прибавляем интервал обновления кеша. Системное время хранится в секундах, поэтому чтобы получить часы, нам нужно наш интервал умножить на 60 секунд и на 60 минут, в итоге мы получаем 24 часа, где количество часов задается в переменной.
Если прописать строку:
set_vars("clear_cache", $_TIME+$scache_time*60);

То кэш будет очищаться раз в 24 минуты.
}

Конец условия if

Версия DLE: любая(тестировалось на DLE 9.7)

Автор: Олег Одоевский a.k.a. Sander [ICQ: 404037556]

источник: 4dle.ru

Ключевые слова по теме Автоочистка кэша в DLE: очистка, кэш, автоочистка кэш, DLE, Sander