假設存在着呈現一個無序列表項目中的表象的成分,我們有一個頁面上的任何給定ListRenderer提供數據的幾個選項(稱爲ListRenderer,也許吧。):Sitecore的內容樹架構
- 在內容項上有一個TreeList(或TreeListEx)字段,並從中讀取ListRenderer。
- 通過演示詳細信息向ListRenderer提供一個DataSource(或其他參數)。
我通常在我的項目中避免#1,因爲它將Sublayouts綁定到模板,這會變得非常混亂。如果你沿着這條路走下去,最終你會有一些領域來支持你項目中的每一個可能的子佈局。
所以我的解決方案傾向於選項#2,它擺脫了這個問題。但是,它的確有一些問題。我在哪裏爲給定的ListRenderer使用這些不同的「列表」?爲了最大限度地重用和共享,我通常在站點根目錄附近創建一個包含所有這些類型的組件目錄,如果我預測這些列表將被共享。對於內容作者而言,這似乎不太容易找到和難以使用,他們突然不知道他們的ListRenderer的源代碼是什麼,除非他們知道如何破解演示文稿細節(這對我的普通用戶而言稍微先進)。
如果我覺得列表不會被共享,並且對頁面非常具體,我會將它們直接放在相關項目的下面。但是,這有一種混淆內容樹的趨勢,並且任何動態生成的導航子佈局都必須檢查項目是否爲實際頁面,然後纔會生成指向該頁面的鏈接。我在Sitecore工作得越多,使用這種方法的次數就越少,但內容作者似乎更容易。當你使用這種方法時,訪問信息要容易得多。
有沒有行業接受的方式來解決這個問題?它始終在項目中發生,在我的頭腦中,我努力在這些情況下平衡技術和內容作者關注的問題。
簡單的答案是NO,沒有行業標準。即使經驗豐富的Sitecore開發人員經常考慮,您提到的一切都是常見的事情它主要基於需求,例如如果您支持這些模塊化子佈局的頁面編輯器,那麼您需要採用全局共享數據源文件夾的方法#2。如果他們正在使用內容編輯器並且不喜歡演示詳細信息,則有時候子項目會使其更容易。您需要選擇一種方法並在每個項目上強制執行,或者根據編輯人員的要求定義每個項目的方法(我的偏好) –