Автоочистка кеша в DLE
Простейший хак автоочистки кеша для DLE.
Установка:
Открыть файл engine/init.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);
}
Хак установлен.
Теперь рассмотрим каждую строчку отдельно:
Проверяем, если время очистки кеша меньше настроящего времени, то выполняем то что в скобках.
Для простоты частоту обновления кеша вынес в переменную, в моем случае это 24 часа. Почему - опишу ниже.
Собственно чистим сам кеш.
Задаем время следующей очистки кеша и сохраняем. Все это делает за нас функция, мы ей даем только значение переменных.
clear_cache - имя файла системного кеша, где хранится передаваемое значение.
$_TIME+$scache_time*60*60 - к настроящему (нынешнему) времени прибавляем интервал обновления кеша. Системное время хранится в секундах, поэтому чтобы получить часы, нам нужно наш интервал умножить на 60 секунд и на 60 минут, в итогде мы получаем 24 часа, где количество часов задается в переменной.
Установка:
Открыть файл 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){
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 часа, где количество часов задается в переменной.