2011-07-08 45 views
2

我們爲我們的站點創建了一些可重用組件,並在嘗試將這些組件的多個實例添加到頁面時遇到了問題。這是一個問題,因爲Sitecore需要佔位符密鑰是唯一的。這是否意味着您永遠不能在同一頁面上添加一個帶有佔位符的子貼圖實例?Sitecore - 頁面上的子佈局的多個實例

例子:

兩列sublayout - 佔位符2column-col1和2column-COL2 三列sublayout - 佔位符3column-COL1,3column-COL2和3column-COL3 在頁面上添加一個兩列sublayout,一三列子圖層,然後是另外兩列子圖層 現在有2個名稱爲2column-col1的佔位符和2個名稱爲2column-col2的佔位符

有沒有辦法解決這個問題?我們想在後面的用戶控制代碼中動態地創建佔位符鍵,但是如果您想使用佔位符設置,則會導致問題。

看來這是一件很普遍的事情要做。有沒有解決方法?

回答

3

您可以做的是動態創建佔位符鍵以獲得所需的功能,然後手動創建5-6個佔位符設置項並複製所有這些項的設置。我已經在一個項目中完成了這項工作,即使它非常難看,它仍然運行良好。

如果您使用sitecore 6.4+,您甚至可以使用克隆的項目來創建佔位符設置。通過這種方式,您將能夠控制原始項目中允許的子佈局,其餘的將繼承這些值。

希望有所幫助。

1

在Sitecore的6.3.1有在web.config中設置

<!-- DUPLICATE PLACEHOLDERS 
     Indicate whether to process duplicate placeholders 
     Default value: false 
    --> 
    <setting name="Rendering.ProcessDuplicatePlaceholders" value="false" /> 

我覺得這個設置可以用Sitecore的6的所有版本

你應該給它一個嘗試和改變它到「真」。

2

我相信這是你的SDN文章的副本,但爲了參考,我也會在這裏鏈接我的博客帖子(帶有原型解決方案代碼)。

http://www.techphoria414.com/Blog/Dynamic%20Placeholder%20Keys%20Prototype.aspx

+0

-1爲紐帶不再有效(Sitecore的許可證錯誤!),所以答案是當前不可用。 – Kasaku

+0

除了之前的評論,博客還可以從[Google緩存](http://webcache.googleusercontent.com/search?q=cache:egZb98GYlasJ:www.techphoria414.com/Blog/Dynamic%2520Placeholder%2520Keys%2520Prototype .aspx + http://www.techphoria414.com/Blog/Dynamic%2520Placeholder%2520Keys%2520Prototype.aspx&cd=1&hl=zh-CN&ct=clnk&gl=uk&client=firefox-a),但理想情況下,此答案不依賴於鏈接。當我在一小時前添加它時,無法刪除-1。 – Kasaku

+0

謝謝你讓我知道破損的許可證。我認爲讓我失望是不公平的,因爲這是一個相當複雜的答案。 – techphoria414