Giao diện
Câu hỏi thường gặp (FAQ) — UI Templates
Sử dụng
Có thể tạo template riêng không?
Có. Bất kỳ block/widget nào đã cấu hình đều có thể lưu thành template. Vào Design Mode → click block → Save as Template → đặt tên và mô tả.
Template có cập nhật khi plugin update không?
Không. Template đã tạo là dữ liệu riêng của bạn — plugin update không ảnh hưởng. Template mới (nếu có) sẽ cần tạo riêng.
Sự khác nhau giữa reference và copy?
| Tiêu chí | Reference | Copy |
|---|---|---|
| Liên kết với template | Có — thay đổi template cập nhật tất cả | Không — bản sao độc lập |
| Tùy chỉnh riêng | Không | Có — chỉnh sửa thoải mái |
| Usage tracking | Có — ghi nhận trong uiWidgetTemplateUsages | Không — không có liên kết |
| Use case | Header, footer, widget dùng chung | Điểm khởi đầu, sau đó tùy chỉnh |
Xóa template thì sao?
Nếu template đang được reference ở nơi khác:
- Các widget sử dụng reference sẽ mất nội dung
- Usage records tự động bị xóa
Nếu template chỉ được copy:
- Không ảnh hưởng gì — các bản sao đã tách biệt
Cảnh báo
Kiểm tra số lượng usages trước khi xóa template. Vào trang quản lý template để xem bao nhiêu nơi đang reference.
Template có hỗ trợ nested widgets không?
Có. Plugin xử lý widget tree đệ quy — tất cả child widgets trong block đều được lưu cùng template. Khi sử dụng template, toàn bộ tree được khôi phục.
Cấu hình
Ai có quyền tạo/xóa template?
Mặc định:
- Tất cả user đã đăng nhập (
loggedIn) có thể xem và sử dụng template - Admin (qua snippet
pm.plugin-ui-templates.templates) có quyền tạo, sửa, xóa
Có giới hạn số lượng template không?
Không có giới hạn kỹ thuật. Tuy nhiên, quá nhiều template có thể khiến danh sách khó quản lý. Khuyến nghị:
- Đặt tên rõ ràng, có tiền tố phân loại (ví dụ:
[CRM] Bảng khách hàng) - Viết mô tả ngắn gọn cho mỗi template
- Xóa template không còn sử dụng
Xử lý sự cố
Template không hiển thị dữ liệu?
Template chỉ chứa layout/cấu hình, không chứa dữ liệu. Cần đảm bảo:
- Collection được liên kết (
collectionName) tồn tại và có dữ liệu - Data source (
dataSourceKey) đang hoạt động - User có quyền truy cập collection
Widget bị lỗi "template not found"?
Nguyên nhân: Template đã bị xóa nhưng widget vẫn reference đến nó.
Giải pháp:
- Vào Design Mode → xóa widget bị lỗi
- Tạo lại widget từ template khác hoặc từ đầu
Usages không đúng?
Nếu bảng uiWidgetTemplateUsages không phản ánh đúng thực tế:
- Plugin tự động đồng bộ khi widget save/destroy — thường không cần can thiệp
- Nếu dữ liệu bị lệch do migration hoặc manual edit, có thể xóa tất cả usages và để plugin tự tạo lại khi widget được save lần tới