3 ❤︎ Bài viết: 14 Tìm chủ đề
Đọc: 1,525 Tìm: 5
Cách này dành cho bạn nào cần empty avatar + profile ở những diễn đàn có nhiều user rác, muốn xóa bớt để backup code cho nhẹ hơn có thể áp dụng.

XenForo lưu avatar trong data/avatars và profile banner trong data/profile_banners.

Trước tiên lấy tên database:

Nhớ thay /home/domain.com/public bằng đúng đường dẫn của bạn.

Mã:
DB=$(php -r 'require "/home/domain.com/public/src/config.php"; echo $config["db"]["dbname"];')
echo "$DB"

Backup database trước:

Mã:
mysqldump "$DB" | gzip > /root/before-delete-avatars.sql.gz

Sau đó reset thông tin avatar:

Mã:
mysql "$DB" -e "
UPDATE xf_user
SET avatar_date = 0,
    avatar_width = 0,
    avatar_height = 0,
    avatar_highdpi = 0,
    gravatar = '';

UPDATE xf_user_profile
SET avatar_crop_x = 0,
    avatar_crop_y = 0;
"

Tiếp theo reset toàn bộ profile banner:

Mã:
mysql "$DB" -e "
UPDATE xf_user_profile
SET banner_date = 0,
    banner_position_y = NULL,
    banner_optimized = 0;
"

Đây cũng là các trường XenForo sử dụng để xác định profile banner; cách reset banner_date, banner_position_y và banner_optimized đã được đối chiếu với service của XenForo.

Bây giờ xóa file avatar nhưng giữ lại cấu trúc thư mục chính:

Mã:
cd /home/domain.com/public

find data/avatars -type f -delete
find data/avatars -mindepth 2 -type d -empty -delete

Xóa profile banner:

Mã:
find data/profile_banners -type f -delete
find data/profile_banners -mindepth 2 -type d -empty -delete

Kiểm tra:

Mã:
du -sh data/avatars
du -sh data/profile_banners

find data/avatars -type f | wc -l
find data/profile_banners -type f | wc -l

Hai dòng cuối phải ra:

Mã:
0
0

Sau đó restart PHP:

Mã:
systemctl restart php8.3-fpm

Không cần xóa internal_data, code_cache hay template gì cả.

Lưu ý:

Cách này xóa avatar/profile banner của tất cả user, kể cả admin. Avatar XenForo thực tế nằm ngoài database; DB chỉ giữ metadata như avatar_date, kích thước, còn file nằm trong data/avatars.
 
Last edited by a moderator:
Từ khóa: Sửa

Những người đang xem chủ đề này

Xu hướng nội dung

Back