Bỏ qua, đến nội dung

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íReferenceCopy
Liên kết với templateCó — thay đổi template cập nhật tất cảKhông — bản sao độc lập
Tùy chỉnh riêngKhôngCó — chỉnh sửa thoải mái
Usage trackingCó — ghi nhận trong uiWidgetTemplateUsagesKhông — không có liên kết
Use caseHeader, 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:

  1. Collection được liên kết (collectionName) tồn tại và có dữ liệu
  2. Data source (dataSourceKey) đang hoạt động
  3. 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:

  1. Vào Design Mode → xóa widget bị lỗi
  2. 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