Перейти к публикации

Рекомендованные сообщения

Предлагаю добавить параметр $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;

	}
}

 

Изменено пользователем morgenshtern
Ссылка на сообщение
Поделиться на других сайтах

Ваш код не совсем работоспособен, ибо я вам уже описывал как и что нужно править, что бы сделать то что вам нужно.
И про мемкеш вы совершенно забыли.

Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, morgenshtern сказал:

Открою секрет что мемкеш не работает в движке. Достаточно просто заглянуть в clear_cache....

Правда что ли? А то я не знаю как эта функция работает и что делает...

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...