morgenshtern 5 Опубликовано: 6 января 2017 Рассказать Опубликовано: 6 января 2017 (изменено) Предлагаю добавить параметр $clear_cache = $config['clear_cache'] что позволит гибко управлять очисткой кеша в сторонних модификациях Как пример if (stripos ( $tpl->copy_template, "{md5}" ) !== false) { $md5 = dle_cache( "md5", $row['id'], false, (60*24*30) ); if ($md5 === false) { $md5 = @md5_file('md5', ROOT_DIR . '/uploads/files/' . $row['onserver'] ); create_cache( "md5", $md5, $row['id'] ); } $tpl->set( '{md5}', $md5 ); } function dle_cache($prefix, $cache_id = false, $member_prefix = false, $clear_cache = 0) { global $config, $is_logged, $member_id, $mcache; if( !$config['allow_cache'] ) return false; $clear_cache = (intval($clear_cache) > 0) ? intval($clear_cache) : intval($config['clear_cache']); if( $is_logged ) $end_file = $member_id['user_group']; else $end_file = "0"; if( ! $cache_id ) { $key = $prefix; } else { $cache_id = md5( $cache_id ); if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file; else $key = $prefix . "_" . $cache_id; } if ( $mcache !== false ) { return $mcache->get( md5( DBNAME . PREFIX . md5(SECURE_AUTH_KEY) .$key ) ); } else { $buffer = @file_get_contents( ENGINE_DIR . "/cache/" . $key . ".tmp" ); if ( $buffer !== false AND $clear_cache ) { $file_date = @filemtime( ENGINE_DIR . "/cache/" . $key . ".tmp" ); $file_date = time()-$file_date; if ( $file_date > ( $clear_cache * 60 ) ) { $buffer = false; @unlink( ENGINE_DIR . "/cache/" . $key . ".tmp" ); } return $buffer; } else return $buffer; } } Изменено 6 января 2017 пользователем morgenshtern Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 6 января 2017 Рассказать Опубликовано: 6 января 2017 Ваш код не совсем работоспособен, ибо я вам уже описывал как и что нужно править, что бы сделать то что вам нужно. И про мемкеш вы совершенно забыли. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
morgenshtern 5 Опубликовано: 7 января 2017 Рассказать Опубликовано: 7 января 2017 Автор Открою секрет что мемкеш не работает в движке. Достаточно просто заглянуть в clear_cache.... Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 7 января 2017 Рассказать Опубликовано: 7 января 2017 9 часов назад, morgenshtern сказал: Открою секрет что мемкеш не работает в движке. Достаточно просто заглянуть в clear_cache.... Правда что ли? А то я не знаю как эта функция работает и что делает... 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.