2010-02-18 110 views
3

是否可以在usercontrols/xslt渲染中檢查項目是否發佈受限或不能在Sitecore CMS中發佈? 我們在某些情況下解釋了CMS的用戶如何設置發佈限制,並獲得關於在網站上顯示標準值的項目的問題。例如:Sitecore中未發佈/限制的項目顯示標準值

  • 我有一個項目,它包含帶有信息的字段。
  • 我發佈這個項目和everthing是好的。內容正在網站上顯示。
  • 我改變了出版限制,並說它只能從23-02-2010發佈到25-02-2010。
  • 現在發生的事情是,當我再次發佈網站時,之前正確顯示的項目現在顯示標準值。

編輯:

  • 我談論該項目只有 一個版本。 (荷蘭語 - 版本1) 項目只是通過插入從 模板和充滿信息。 充滿信息後, 設置了發佈限制。 當這項工作完成並且該項目不是 落在該 限制的日期範圍內時,我會在前面看到標準值@ 。

發佈限制可以用來確保信息只顯示在一段時間正確嗎? 這是我們可以在我們的代碼中修復的東西嗎?我們可以檢查一件物品是否不在公共限制/未發佈的範圍內?

回答

2

所以再次給其他用戶的選項來檢查這個問題的答案我會回答我自己的問題。

如果Sitecore的的CMS用戶指定其中一個項目可以在發佈的範圍,你看到一個標準值出現在面前:

  • 查找類/渲染任何顯示信息
  • 確保您的代碼可用

版本檢查是否有可用的像我的情況下,只有一個版本,並沒有其他的版本,而今天的日期落在外面的指定範圍做一個簡單的項目。空c哎呀就夠了。

只要你有,你需要處理Sitecore的項目:

項目具有上下文語言版本? - >item.Versions.Count

item may be published? - >!item.Publishing.IsValid(DateTime.Today, false)

item has layout ?? - >item.Visualization.GetLayout(Sitecore.Context.Device)

我希望這個信息一旦對某人有用!

+0

簡而言之,如果限制某個項目的所有版本都不會被髮布,那麼最終會呈現標準值,這些標準值實際上是內容項目的版本「0」。 – 2012-10-29 08:33:26

0

下面是您描述的行爲的可能解釋。您的項目有多個版本,並且當您對正在使用的版本(通常是最新的版本)進行發佈限制時,它會被取消發佈。如果現在可以發佈的以前版本之一不覆蓋標準值,則會在前端看到這些標準值。

此問題的解決方案取決於您的需求。例如,如果您希望管理整個項目,請在項目級別設置發佈限制。

至於你最初的問題,一個項目的任何領域都可以從用戶控制/ XSL渲染(例如,sc:fld函數)來解決。但請記住,您正在從呈現中查詢Web數據庫。如果設置了發佈限制,並且該項目不可發佈,則不會從渲染/子佈局中獲取此項目及其字段。

希望這會有所幫助。

+0

我編輯我的問題更加清晰! Thx回答但重新檢查我的問題plz – Younes 2010-02-19 08:34:19

+0

至於你答案的最後部分:我明白,當一個項目未發佈,我將無法呈現該特定項目的值。我怎樣才能確保我的代碼不會嘗試。如果項目可發佈/落入發佈限制日期內,有沒有辦法檢查代碼?這樣我可以防止物品去默認值模式,當我取消發佈/限制。 – Younes 2010-02-19 08:44:47

+0

我看到每個項目都有一個選項來檢查它是否爲空。當我使用這個選項時,我可以在物品沒有版本時隱藏標準值! – Younes 2010-02-19 09:53:34