Nhảy đến nội dung

Giới thiệu

🎯 Mô-đun này làm gì?

Mô-đun Templates cho phép bạn thay đổi cấu trúc và giao diện của dự án mà không cần thay đổi mã nguồn. Templates cho phép bạn quản lý các thành phần thông qua Nền tảng OneEntry trong khi vẫn duy trì các tùy chọn thiết kế và hành vi linh hoạt.

Templates hoạt động bằng cách cho phép bạn mô tả các thành phần trong mã dự án của bạn, sau đó gán chúng với các template được tạo ra bởi nền tảng. Sự tách biệt này cho phép chuyển đổi giữa các triển khai template khác nhau để ảnh hưởng đến cách các thực thể hoạt động.

Hãy coi nó như một bộ cấu hình hệ thống thiết kế của bạn - bạn tạo các template trong bảng điều khiển quản trị OneEntry (Cài đặt > Templates), gán các thành phần của bạn với những template này, và mô-đun này sẽ lấy các cấu hình đó để ứng dụng của bạn có thể hiển thị nội dung một cách động với kiểu dáng nhất quán.


📖 Giải thích đơn giản

Mỗi ứng dụng cần có cách trình bày nội dung nhất quán:

  • 🖼️ Template hình ảnh - Kích thước và cắt hình đã định nghĩa (hình thu nhỏ, hình chính, hình ảnh trong bộ sưu tập)
  • 📄 Template trang - Cấu hình bố cục trang (bài viết blog, trang đích)
  • 🧱 Template khối - Hình thức của các khối nội dung (thẻ, banner, phần)
  • 🛍️ Template sản phẩm - Định dạng hiển thị sản phẩm (lưới, danh sách, chi tiết)
  • 🎨 Thiết kế đáp ứng - Kích thước khác nhau cho di động, máy tính bảng, máy tính để bàn
  • ♻️ Cấu hình tái sử dụng - Định nghĩa một lần, sử dụng ở mọi nơi

Vấn đề với logic hiển thị mã cứng:

Vấn đề:

  • 🔒 Không nhất quán - Kích thước khác nhau ở các nơi khác nhau
  • 🎨 Khó bảo trì - Thay đổi yêu cầu chỉnh sửa nhiều tệp
  • 📱 Không đáp ứng - Kích thước cố định không thích ứng
  • ♻️ Không tái sử dụng - Mã lặp lại ở khắp nơi

Giải pháp Templates:

Lợi ích:

  • 🔒 Nhất quán - Cùng một template được sử dụng ở mọi nơi
  • 🎨 Dễ bảo trì - Thay đổi trong bảng điều khiển quản trị, áp dụng ở mọi nơi
  • 📱 Đáp ứng - Các template khác nhau cho các màn hình khác nhau
  • ♻️ Có thể tái sử dụng - Định nghĩa một lần, sử dụng trong toàn bộ ứng dụng

✨ Khái niệm chính

Template là gì?

Một Template là một cấu hình hiển thị xác định cách nội dung nên xuất hiện:

  • Loại Template - Template hình ảnh, trang, khối, sản phẩm
  • Kích thước - Chiều rộng, chiều cao, tỷ lệ khung hình
  • Cài đặt cắt - Cách cắt hình ảnh (giữa, trên, dưới)
  • Định dạng - Định dạng hình ảnh (JPEG, PNG, WebP)
  • Chất lượng - Chất lượng nén
  • Đánh dấu - Định danh duy nhất cho tham chiếu mã

Cấu trúc Template

Mỗi template có cấu trúc này:

{
id: 1, // Unique identifier
title: "Product Thumbnail", // Template name (non-unique)
identifier: "product_thumbnail", // Template marker (unique)
generalTypeId: 1, // Type ID reference
version: 0, // Version number
attributeSetIdentifier: null, // Associated attribute set
localizeInfos: { // Localized information
en_US: {
title: "Product Thumbnail",
description: "Small product image"
}
},
attributeValues: {}, // Additional attribute data
isActive: true, // Active status
createdAt: "2024-01-15T10:00:00Z",
updatedAt: "2024-01-15T10:00:00Z"
}

Các trường chính:

  • identifier - Đánh dấu duy nhất cho tham chiếu template (sử dụng cái này, không phải ID)
  • title - Tên template hiển thị trong bảng điều khiển quản trị
  • generalTypeId - Danh mục thực thể mà template áp dụng
  • attributeSetIdentifier - Tập thuộc tính liên kết tùy chọn

Các loại Template

Templates được tổ chức theo loại thực thể và hỗ trợ các danh mục sau:

Loại TemplateDanh mục Thực thểVí dụ Sử dụng
Khối Sản phẩmforCatalogProductsLưới sản phẩm, danh sách sản phẩm, sản phẩm nổi bật
Khối Thông thườngforOneBlockThẻ nội dung, banner, phần, widget
Trang LỗiforErrorPagesTrang 404, trang 500, bố cục lỗi tùy chỉnh
Trang Thông thườngforOnePageBài viết blog, trang đích, trang giới thiệu
Trang Sản phẩmforOneProductChi tiết sản phẩm, so sánh sản phẩm
Trang Danh mụcforCatalogPageDanh sách danh mục, kết quả tìm kiếm
Biểu mẫuforFormBiểu mẫu liên hệ, biểu mẫu đăng ký, khảo sát
Đơn hàngforOrderXác nhận đơn hàng, lịch sử đơn hàng

Các Template Hình ảnh Thông thường

TemplateKích thướcCắtTrường hợp sử dụng
Hình thu nhỏ150×150GiữaHình ảnh xem trước nhỏ
Hình thẻ300×200GiữaThẻ sản phẩm, thẻ blog
Hình chính1920×1080GiữaBanner toàn chiều rộng
Hình ảnh bộ sưu tập800×600GiữaBộ sưu tập hình ảnh
Hình đại diện100×100GiữaHình ảnh hồ sơ người dùng
Hình chính di động768×432GiữaBanner tối ưu hóa cho di động

Quy trình Cấu hình Template

1. Create templates in admin panel
(Define sizes, crops, formats)

2. Fetch templates via SDK
(Templates.getTemplates())

3. Apply template configurations
(Use sizes in image rendering)

4. Images automatically optimized
(OneEntry CDN serves correct size)

5. Consistent display everywhere
(Same template = same appearance)

Tại sao nên sử dụng mô-đun Templates?

Lợi íchMô tả
Thiết kế Nhất quánCùng một template được sử dụng trong toàn bộ ứng dụng
Bảo trì Dễ dàngThay đổi template trong quản trị, cập nhật ở mọi nơi
Tối ưu hóa Hình ảnhTự động thay đổi kích thước và nén
Thiết kế Đáp ứngCác template khác nhau cho các màn hình khác nhau
Tích hợp CDNPhân phối hình ảnh tối ưu
Cấu hình Tái sử dụngĐịnh nghĩa một lần, sử dụng ở mọi nơi

📋 Những điều bạn cần biết

Templates được tạo trong Bảng điều khiển Quản trị

Bạn không thể tạo templates thông qua SDK - chúng được tạo trong bảng điều khiển quản trị OneEntry:

OneEntry Admin Panel → Settings → Templates → Create Template → Set Name/Marker/Type → Save

Quy trình Tạo:

  • Cung cấp một Tên (định danh không duy nhất)
  • Cung cấp một Đánh dấu (định danh duy nhất)
  • Chọn một Loại (danh mục thực thể mà template áp dụng)
  • Nhấn "Tạo" để hoàn tất

Các thao tác Quản lý:

  • Cấu hình - Nhấn vào biểu tượng bánh răng để chỉnh sửa tên, đánh dấu hoặc loại
  • Xóa - Chọn template và nhấn biểu tượng xóa, sau đó xác nhận việc xóa

SDK chỉ dùng để lấy các cấu hình template, không phải để tạo chúng.

Xác định Template

Ba cách để xác định templates:

Phương phápKhi nào sử dụngVí dụ
Theo LoạiTham chiếu trong mã (thực hành tốt nhất)product_thumbnail, hero_banner
Theo Đánh dấuTham chiếu trong mã (thực hành tốt nhất)product_thumbnail, hero_banner
Liệt kê Tất cảHiển thị các template có sẵngetTemplates()

Thực hành tốt nhất: Luôn sử dụng đánh dấu trong mã của bạn (chúng không bao giờ thay đổi).

Tích hợp CDN cho Template Hình ảnh

OneEntry tự động tối ưu hóa hình ảnh dựa trên các template.

Thiết kế Đáp ứng với Templates

Tạo các template khác nhau cho các kích thước màn hình khác nhau.


Cấu trúc Template:

interface ITemplateEntity {
id: number; // Unique identifier
title: string; // Template name (non-unique)
identifier: string; // Template marker (unique)
generalTypeId: number; // Type ID reference
version: number; // Version number
attributeSetIdentifier: string | null; // Associated attribute set
localizeInfos: { // Localized information
[langCode: string]: {
title: string;
description?: string;
};
};
attributeValues: any; // Additional attribute data
isActive: boolean; // Active status
}

Các loại Template có sẵn:

  • forCatalogProducts - Khối sản phẩm
  • forOneBlock - Khối thông thường
  • forErrorPages - Trang lỗi
  • forOnePage - Trang thông thường
  • forOneProduct - Trang sản phẩm
  • forCatalogPage - Trang danh mục
  • forForm - Biểu mẫu
  • forOrder - Đơn hàng

💡 Ghi chú Quan trọng

Templates được tạo trong Bảng điều khiển Quản trị

Nhớ: SDK chỉ dùng để lấy các cấu hình template, không phải để tạo templates.

Để tạo/chỉnh sửa templates: Sử dụng Bảng điều khiển Quản trị OneEntry.


Cách Templates Hoạt động

Templates cho phép quản lý thành phần linh hoạt bằng cách tách biệt cấu trúc khỏi mã:

  1. Mô tả các thành phần trong mã dự án của bạn
  2. Gán các thành phần với các template được tạo ra bởi nền tảng
  3. Chuyển đổi templates để thay đổi cách các thực thể hoạt động
  4. Cập nhật giao diện mà không cần sửa đổi mã nguồn

Sự tách biệt này cho phép nhiều biến thể thiết kế và chức năng mà không cần thay đổi mã.


Tối ưu hóa Hình ảnh

OneEntry CDN tự động tối ưu hóa hình ảnh dựa trên cài đặt template:

  • Tự động thay đổi kích thước
  • Chuyển đổi định dạng (JPEG, PNG, WebP)
  • Nén
  • Cắt
  • Lưu trữ

Bạn chỉ cần tham chiếu đến đánh dấu template:

<img src={`${image.url}?template=thumbnail`} />

Templates Đáp ứng

Tạo các template riêng biệt cho các thiết bị khác nhau:

  • Templates di động (rộng 768px hoặc ít hơn)
  • Templates máy tính bảng (rộng 1024px)
  • Templates máy tính để bàn (rộng 1920px)

Sử dụng với phần tử <picture> cho hình ảnh đáp ứng.


Bộ nhớ Cache cho Template

Templates hiếm khi thay đổi - thực hiện bộ nhớ cache:

  • Frontend: localStorage, sessionStorage
  • Backend: Redis, bộ nhớ cache
  • TTL: 1 giờ được khuyến nghị

📊 Bảng Tham khảo Nhanh

Phương phápMô tảTrường hợp sử dụng
getAllTemplates()Lấy tất cả các template được nhóm theo loạiLiệt kê tất cả các template có sẵn
getTemplateByType()Lấy các template theo loại thực thểLấy các template cho loại thực thể cụ thể
getTemplateByMarker()Lấy template theo đánh dấuLấy cấu hình template cụ thể

❓ Câu hỏi Thường gặp (FAQ)

Sự khác biệt giữa Templates và TemplatePreviews là gì?

Templates cấu hình hiển thị nội dung chung (trang, khối, sản phẩm), trong khi TemplatePreviews xử lý cụ thể hình ảnh thuộc tính sản phẩm (mẫu màu, hình ảnh vật liệu). Sử dụng Templates cho nội dung chính, TemplatePreviews cho hình ảnh thuộc tính.


Làm thế nào để áp dụng một template cho URL hình ảnh?

Thêm ?template=marker vào URL hình ảnh, trong đó marker là định danh template. OneEntry CDN tự động phục vụ hình ảnh tối ưu hóa dựa trên cấu hình template (kích thước, cắt, định dạng).


Tôi có thể tạo các template khác nhau cho di động và máy tính để bàn không?

Có! Tạo các template riêng biệt với kích thước phù hợp cho mỗi thiết bị (ví dụ: hero_mobile, hero_desktop). Sử dụng các kỹ thuật thiết kế đáp ứng hoặc phần tử <picture> để tải template đúng dựa trên kích thước màn hình.


Điều gì xảy ra nếu tôi tham chiếu một template không tồn tại?

Hình ảnh sẽ tải ở kích thước gốc mà không có tối ưu hóa template. Luôn xác minh rằng các đánh dấu template tồn tại và xử lý các template bị thiếu một cách nhẹ nhàng với kích thước dự phòng.


Làm thế nào để tôi cập nhật một template mà không ảnh hưởng đến sản xuất?

Templates là cấu hình, không phải mã. Các thay đổi trong bảng điều khiển quản trị sẽ áp dụng ngay lập tức. Kiểm tra các thay đổi template trong môi trường staging trước, sau đó cập nhật các template sản xuất khi đã được xác minh.


Tôi nên sử dụng loại template nào cho nội dung của mình?

Chọn dựa trên loại thực thể: forOnePage cho các trang tiêu chuẩn, forCatalogProducts cho danh sách sản phẩm, forOneBlock cho các khối nội dung, forOneProduct cho chi tiết sản phẩm. Khớp loại template với danh mục nội dung của bạn.


🎓 Thực hành Tốt nhất

  • Sử dụng đánh dấu, không phải ID - Đánh dấu ổn định qua các môi trường
  • Cache templates - Giảm số lần gọi API cho dữ liệu hiếm khi thay đổi
  • Tạo các template đáp ứng - Kích thước khác nhau cho các màn hình khác nhau
  • Sử dụng định dạng WebP - Nén tốt hơn so với JPEG/PNG
  • Định nghĩa cài đặt chất lượng - Cân bằng giữa chất lượng và kích thước tệp
  • Sử dụng tham số template CDN - ?template=marker để tối ưu hóa
  • Tạo các đánh dấu ngữ nghĩa - product_thumbnail, không phải img_1
  • Tài liệu sử dụng template - Giải thích mục đích của mỗi template

Thêm thông tin về templates trong bảng điều khiển quản trị OneEntry: https://doc.oneentry.cloudhttps://doc.oneentry.cloud/docs/templates/content_templates/


Định nghĩa của mô-đun Templates

Mô-đun Templates cấu hình hiển thị nội dung trong ứng dụng của bạn.

Một số templates ảnh hưởng đến hình ảnh được lưu trữ trong OneEntry, trong khi những cái khác xác định giao diện của các thực thể như khối, trang và sản phẩm.


const { Templates } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);


🔗 Tài liệu Liên quan