Back To Home

Name: Ngày 23: Publish Target & Restrictions

🚀 Ngày 23: Publish Target & Restrictions trong Sitecore

Trong hệ thống Sitecore, việc publish không chỉ đơn giản là “nhấn nút Publish”. Sitecore cung cấp cơ chế Publish TargetPublishing Restrictions giúp kiểm soát:

  • Publish nội dung đến môi trường nào

  • Publish vào thời điểm nào

  • Nội dung có được phép publish hay không

  • Nội dung có bị giới hạn bởi workflow không

Đây là tầng bảo vệ quan trọng trong hệ thống CMS lớn.


🟦 1. Publish Target là gì?

Publish Target là các môi trường mà Sitecore có thể publish đến, ví dụ:

  • web (mặc định – environment public)

  • staging

  • preview

  • custom CDN database

Mỗi Publish Target được định nghĩa trong file config:

📂 App_Config/Targets/PublishingTargets.config

Ví dụ:

 
<publishing> <targets> <target name="web" database="web" /> <target name="staging" database="staging" /> </targets> </publishing>

✔ Bạn có thể thêm target mới nếu website cần nhiều môi trường.

Ví dụ thêm Preview DB:

 
<target name="preview" database="preview" />

🟦 2. Kiểm tra Publish Target trong Sitecore

Bạn xem các target hiện có tại:

 
/sitecore/system/Publishing targets

Ở đây bạn sẽ thấy các item như:

  • web

  • staging

  • preview

Mỗi item chứa thông tin:

  • Target database

  • Publishing restrictions

  • Update options


🟧 3. Publishing Restrictions là gì?

Publishing Restrictions kiểm soát item có được phép publish không dựa trên:

Final Workflow State

Item phải nằm trong trạng thái cuối của workflow (thường là Approved).

Date Restriction

  • Publishable From (Start date)

  • Publishable To (End date)

Version Restriction

Chỉ publish version được đánh dấu "Publishable".


🟧 4. Các loại Restrictions chi tiết

🔹 4.1 Workflow restriction (phổ biến nhất)

Nếu item thuộc workflow, nó chỉ có thể publish khi:

✔ State = "Approved"
✔ Không còn action pending trong workflow
✔ User có quyền Publish

Nếu không: item không được publish.


🔹 4.2 Date Restrictions

Trong Content Editor → tab PublishRestrictions

Bạn thấy:

  • Publishable From: (ví dụ 01/01/2025)

  • Publishable To: (ví dụ 31/12/2025)

Nếu ngày hiện tại không nằm trong khoảng này → item sẽ không được publish.

Điều này dùng cho:

  • Chạy banner theo thời gian

  • Giảm giá theo mùa

  • Bật/tắt module tự động


🔹 4.3 Version Restrictions

Mỗi version có:

Publishing.ValidFrom
Publishing.ValidTo
✔ Checkbox "Publishable"

Nếu không đánh dấu “Publishable” → version đó không được xuất bản.


🟧 5. Kiểm tra Restriction khi publish

Bạn có thể xem tình trạng publish của item:

🔍 Content Editor → Review → Publishing Restrictions

Ở đây Sitecore sẽ cho bạn biết:

  • Những target nào được publish

  • Workflow state

  • Validity date

  • Version được chọn publish


🟦 6. Publish Target + Publish Restrictions hoạt động như thế nào?

Sitecore sẽ chạy theo thứ tự:

1️⃣ Kiểm tra publish target

→ Publish đến database nào? web? staging? preview?

2️⃣ Kiểm tra workflow

→ Item đã được Approve chưa?

3️⃣ Kiểm tra date restriction

→ Tại thời điểm publish có hợp lệ không?

4️⃣ Kiểm tra version restriction

→ Version này có được publish không?

5️⃣ Publish

→ Push item đã hợp lệ sang database target.

Nếu bất kỳ điều kiện nào FAIL → item bị bỏ qua.


🟦 7. Ví dụ thực tế trong doanh nghiệp

📝 Ví dụ 1: Banner theo thời gian

  • Start: 1/12/2025

  • End: 10/12/2025
    → Publish sẵn trước, đến đúng ngày mới hiển thị.

📝 Ví dụ 2: Workflow phê duyệt nội dung

  • Marketing tạo nội dung

  • Editor chỉnh sửa

  • Approver duyệt
    → Chỉ khi Approved → Publish được.

📝 Ví dụ 3: Publish ra Staging trước khi live

  • Developer publish → staging

  • QA kiểm tra

  • Marketing approve → web


🟩 8. Bạn có thể kiểm soát Publish Target bằng code (nâng cao)

Ví dụ kiểm tra item có publish được không:

 
var restrictions = new ItemPublishing(item); if (!restrictions.IsPublishable(DateTime.Now, true)) { // not publishable }

🎯 Kết luận Ngày 23

Hôm nay bạn đã hiểu rõ:

  • Publish Target là gì

  • Cách cấu hình thêm target mới

  • Publishing Restrictions hoạt động như thế nào

  • Workflow, date, version restriction

  • Quy trình publish thật sự của Sitecore

  • Ứng dụng trong thực tế (banner, promotion, staging…)

Donald Trump

Để trở thành người chiến thắng, bạn cần biết khi nào là đủ. Đôi khi trong cuộc sống, bạn phải từ bỏ cuộc chiến và chuyển sang mục tiêu mới mang lại hiệu quả hơn

Related Post