我們在sitecore中有一個數據結構,它具有相同「深度」處的相同模板。我們正在製作教室內容,其特點是以下結構中的單元,課程和活動:從另一個分支獲取Sitecore兄弟
Unit 1
-- Lesson 1
---- Activity 1
---- Activity 2
-- Lesson 2
---- Activity 3
---- Activity 4
Unit 2
-- Lesson 3
---- Activity 5
---- Activity 6
-- Lesson 4
---- Activity 7
---- Activity 8
等等。當我在activity
項目上時,我想返回該特定unit
中的下一個activity
項目,如果該單元中沒有更多活動,則返回null。
迄今爲止我所能做的最好的事情就是針對當前活動unit
的祖先(很容易找到)並獲取它下面的所有activities
,然後遍歷所有這些活動以獲得上一個/下一個活動。看起來好像有一個更好的方法來完成這個任務,所以我想我會在這裏提出想法。
目前代碼
Item unit = Sitecore.Context.Item.Axes.SelectSingleItem("ancestor-or-self::*[@@templatename='Unit']");
Item[] allActivities = unit.Database.SelectItems("ancestor-or-self::*[@@templatename='Activity']");
foreach(Item thisitem in allActivities){
//Process here
}
兄弟(「繼」 &「前述」)不工作,因爲它僅在需要時直接返回兄弟姐妹一樣lesson
,而不是unit
下方。