Hôm nay bạn sẽ hiểu:
Placeholder là gì
Dynamic Placeholder là gì
Sự khác nhau
Cách tạo
Cách sử dụng trong Layout hoặc Component
Tình huống thực tế
Best practices trong Helix
Placeholder trong Sitecore là vùng chứa trong layout hoặc component cho phép editor kéo-thả (drag & drop) các rendering vào trong Experience Editor.
Ví dụ layout:
=> Bạn có 1 placeholder tên main, editor có thể thêm component vào vùng này.
Một layout/component có thể chứa nhiều placeholder
Mỗi placeholder phải có tên duy nhất trong layout/component
Sitecore mapping placeholder theo tên
Ví dụ:
Editor sẽ thấy 2 vùng:
content
sidebar
Nếu bạn tạo component lặp lại (ví dụ: Carousel → mỗi Slide có placeholder):
Nếu bạn render 5 slide → Bạn sẽ có 5 placeholder cùng tên!
➡ Sitecore không phân biệt được placeholder thứ 1,2,3,4,5
➡ Component có thể chèn nhầm chỗ
➡ Không thể lặp lại nhiều component chứa placeholder bên trong
→ Giải pháp: Dynamic Placeholder
Dynamic Placeholder (Sitecore 8.2+) tạo placeholder với ID duy nhất mỗi khi component được render.
Ví dụ:
Nếu component xuất hiện 5 lần → 5 placeholder ID khác nhau được generate tự động:
➡ Tránh xung đột
➡ Cho phép lặp bất kỳ số lần
➡ Rất quan trọng trong Helix & dạng component lồng nhau
Ví dụ component “Main Section” có placeholder phụ:
Từ Sitecore 9+, dùng helper chuẩn:
Nếu cần clone component trong carousel → phải dùng Dynamic Placeholder.
➡ Editor không phân biệt slide nào.
Trong Content Editor:
Bạn có thể:
Tạo placeholder key: main-content, sidebar, footer-links
Quy định component nào được phép chèn vào placeholder nào
Chống kéo nhầm component vào sai vùng
feature-name.component-name.region
Ví dụ:
content, data| Loại Placeholder | Mục đích |
|---|---|
| Placeholder | Vùng chứa đơn giản, chỉ dùng 1 lần |
| Dynamic Placeholder | Tạo placeholder có ID riêng biệt → dùng cho component lặp |