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

Добавление UpdateTime=Unix Time Stamp для аватара юзера


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

Создать плагин, указать файл engine/modules/profile.php

Найти:

$db->query( "UPDATE " . USERPREFIX . "_users SET foto='{$foto_name}' WHERE user_id = '{$id}'" );

И заменить на:

$db->query( "UPDATE " . USERPREFIX . "_users SET foto='{$foto_name}?UpdateTime=" . time() . "' WHERE user_id = '{$id}'" );

Не знаю, почему @celsoft  не сделал подобного, учитывая, что большинство из нас пользуется кэшированием Cloudflare. Даже браузерное кэширование создает проблемы, если загрузить новый аватар.

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

Этого может быть недостаточно.

Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске....

Ссылка на сообщение
Поделиться на других сайтах
21 минуту назад, MSK сказал:

Этого может быть недостаточно.

Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске....

А что может произойти? Все норм, удалил аватар, заново загрузил новый аватар, никаких проблем. DLE 14.

Ссылка на сообщение
Поделиться на других сайтах
14 минут назад, Хоббит сказал:

А что может произойти?

посмотрите код и все станет понятно

			@unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) );

внося любые правки в код, анализируйте последствия изучая логику работы изначального функционала....

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

посмотрите код и все станет понятно





			@unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) );

 

Я уже несколько раз пробовал удалить аватарки с разных аккаунтов, никаких проблем, файлы удаляются. Возможно, это из-за оператора @, который не показывает ошибки. По крайней мере, изменения работают. А остальное пусть @celsoft подскажет, если не трудно.

Ну или на всякий случай:

Найти:

if( $_POST['del_foto'] == "yes" AND !$stop) {
			$url = @parse_url ( $row['foto'] );
			$row['foto'] = basename($url['path']);
			
			@unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) );
			$db->query( "UPDATE " . USERPREFIX . "_users set foto='' WHERE user_id = '{$id}'" );
		
		}

Заменить на:

if( $_POST['del_foto'] == "yes" AND !$stop) {
	$url = @parse_url ( $row['foto'] );
	$foto_path = basename($url['path']);
	$foto_path_parts = pathinfo($foto_path);
	
	$filename = $foto_path_parts['filename'];
	$extension = $foto_path_parts['extension'];

	@unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($filename) . "." . $extension );
	$db->query( "UPDATE " . USERPREFIX . "_users set foto='' WHERE user_id = '{$id}'" );
}

 

Изменено пользователем Хоббит
Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...
On 5/13/2023 at 9:29 AM, Хоббит said:

И заменить на:

$foto_name = uniqid().'_'.$foto_name;
$db->query( "UPDATE " . USERPREFIX . "_users SET foto='{$foto_name}' WHERE user_id = '{$id}'" );

 

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

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

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

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

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

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

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

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

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

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