Bảng thông báo lỗi "File health check results" đỏ lòm trong AdminCP luôn là nỗi ám ảnh mỗi khi chúng ta tùy biến code, hoặc file trên máy chủ vô tình bị xóa/sửa. Việc dò từng file, dùng tool băm mã SHA-256 rồi dán thủ công vào hashes.json rất tốn thời gian và dễ sai sót. Nhất là trên XF 2.3, dùng phần mềm của bên thứ 3 để lấy mã SHA-256 đã không còn chính xác nữa.
Nhằm giải quyết yêu cầu đó, [VNT] ACP Custom chính thức ra mắt phiên bản 3.0.2, mang đến giải pháp Auto-Fix hashes.json 1-Click với thuật toán thông minh nhất, giải quyết triệt để 100% vấn đề này một cách hiệu quả nhất.
Điểm nổi bật của công cụ này
1. Thuật toán "Neo (Anchor)" định vị Add-on thông minh 100%
Đây là niềm tự hào lớn nhất của phiên bản 3.0.2. Hệ thống sử dụng thuật toán nhận diện cấu trúc thư mục cực kỳ tinh vi:
- Nhận diện qua addon.json: Thay vì đoán mò qua tên thư mục, tool sẽ tự động quét file addon.json để xác định chính xác đây là Add-on 1 cấp (ví dụ: XV/...) hay Add-on 2 cấp (ví dụ: Siropu/AdsManager/...).
- Không bao giờ ghi nhầm file: Dù file báo lỗi nằm tít sâu trong src/addons/XV/Repository/Utility.php, hệ thống vẫn tự động trích xuất đúng về src/addons/XV/hashes.json thay vì nhận diện nhầm thành thư mục Repository.
- Tự động định hướng Core: Các file thuộc lõi (src/XF/, src/vendor/) đều được tự động gom gọn về đúng src/addons/XF/hashes.json.
2. Dọn dẹp File "Rác" (Missing Files Cleanup)
Không chỉ biết cập nhật mã Hash mới cho các file bị chỉnh sửa (inconsistent/ contents), hệ thống nay đã biết tự động xóa bỏ (unset) các file không còn tồn tại trên server (missing) ra khỏi file hashes.json. Giúp mã nguồn của bạn luôn sạch sẽ chuẩn nguyên bản!
3. Tối ưu Hiệu năng Hệ thống (Zero I/O Write khi không cần thiết)
- Thuật toán sẽ đối chiếu mã Hash mới với mã Hash hiện tại trong file hashes.json.
- Nếu không có sự thay đổi, hệ thống sẽ bỏ qua thao tác ghi đĩa (skip file_put_contents). Điều này giúp bảo toàn modified_time của file và tiết kiệm tối đa tài nguyên I/O cho Server.
4. Sắp xếp chuẩn Native XenForo Dev Tools
XenForo mặc định sắp xếp file theo cơ chế Không phân biệt chữ hoa/thường. [VNT] ACP Custom sử dụng thuật toán uksort(..., 'strnatcasecmp') để đảm bảo các file quan trọng như addon.json (chữ a thường) luôn đứng chễm chệ trên đầu cấu trúc, không bao giờ bị đẩy xuống dưới các thư mục như Admin/ hay Controller/. Chuẩn 100% như tool Build Add-on của hãng!
5. Trải nghiệm UI/UX mượt mà & Bảo mật
- AJAX Native Form: Thao tác không cần tải lại trang. Chạy ngầm và bung thông báo Toast Popup xanh mướt ngay góc màn hình.
- Đa ngôn ngữ: Mọi văn bản hiển thị đã được đóng gói qua \XF:
hrase(), hỗ trợ dịch thuật đa ngôn ngữ dễ dàng. - Kiểm tra chặt chẽ phân quyền (CHMOD), báo lỗi chi tiết nếu file hashes.json bị khóa ghi.
HƯỚNG DẪN SỬ DỤNG
- Vào AdminCP > Tools / VNT ACP Custom > File Hash Tool.
- Kiểm tra 1 file (Inspector): Nhập trực tiếp đường dẫn file bất kỳ để băm mã SHA-256 ngay trên giao diện.
- Sửa lỗi tự động: Bấm nút "Tự động Fix hashes.json" ➔ Xác nhận lệnh ➔ Chờ 1 giây để hệ thống dọn dẹp và sửa toàn bộ lỗi File Check.
Nhật ký thay đổi - Công chụ check hash
- Điểm mới:
- Ra mắt công cụ Auto-Fix hashes.json quét trực tiếp từ File Health Check.
- Thuật toán resolveHashesJsonPath phân biệt chính xác Add-on 1 cấp và 2 cấp bằng cách neo theo file addon.json.
- Logic tự động unset các file không còn tồn tại khỏi file hashes.json gốc.
- Tối ưu:
- Sử dụng strnatcasecmp sắp xếp dữ liệu JSON chuẩn XenForo.
- Ngăn chặn việc encode và ghi đĩa không cần thiết nếu dữ liệu Hash không thay đổi ($unchangedCount).
- Hỗ trợ XF Phrases cho toàn bộ các thông báo tĩnh.
Cảm ơn bạn đã luôn tin tưởng và sử dụng addons [VNT] ACP Custom. Mọi thắc mắc hoặc báo lỗi, bạn hãy để lại bình luận bên dưới để được hỗ trợ kịp thời nhé!