Giao diện
Cấu hình
Database
Bảng blockTemplates
| Cột | Kiểu | Mô tả |
|---|---|---|
key | string (PK) | Khóa duy nhất của template |
title | string | Tên hiển thị |
description | text | Mô tả template |
type | string | Loại block: form, details, table, ... |
collection | string | Collection liên kết |
dataSource | string | Data source |
componentType | string | Loại component |
menuName | string | Tên menu chứa template |
configured | boolean | Đã cấu hình xong chưa |
Quan hệ: belongsTo uiSchema — template trỏ đến schema đã lưu trong plugin-ui-schema-storage.
Bảng blockTemplateLinks
| Cột | Kiểu | Mô tả |
|---|---|---|
id | uid (PK) | Định danh |
templateKey | string (FK) | Trỏ đến blockTemplates.key |
uiSchemaUid | string (FK) | Trỏ đến uiSchema đang dùng template |
Mỗi bản ghi trong bảng này đại diện một block đang sử dụng template ở chế độ inherited.
Template kế thừa (Inherited)
Khi block sử dụng template inherited:
- Server clone uiSchema gốc cho block mới.
- Tạo bản ghi
blockTemplateLinksliên kết block ↔ template. - Khi template thay đổi → middleware
templateDataMiddlewareinject dữ liệu template mới. - Block tự cập nhật theo template gốc.
Ngắt liên kết
Chọn Convert to normal block trong designer → xóa bản ghi link, block trở thành độc lập.
API endpoints
| Endpoint | Method | Mô tả | ACL |
|---|---|---|---|
blockTemplates:list | GET | Liệt kê template | loggedIn |
blockTemplates:get | GET | Chi tiết template | loggedIn |
blockTemplates:saveSchema | POST | Lưu block schema thành template | loggedIn |
blockTemplates:link | POST | Liên kết block với template | loggedIn |
blockTemplates:destroy | DELETE | Xóa template | loggedIn |
Middleware
| Middleware | Vai trò |
|---|---|
templateDataMiddleware | Inject dữ liệu template vào request context khi block sử dụng template |
Hỗ trợ mobile template
Plugin tích hợp với plugin-mobile để hỗ trợ template cho layout mobile:
- Template có thể được tạo từ block trên giao diện mobile.
- Khi sử dụng template trên mobile, layout tự động adapt theo mobile screen.
- Admin quản lý cả desktop và mobile template từ cùng trang Block Templates.
Decorator kế thừa
Block inherited hiển thị badge "Template" qua TemplateGridDecorator — giúp admin nhận biết block nào đang liên kết template.