Как в стартовом наборе с помощью xpath builder получить все элементы, которые унаследованы от шаблона «Раздел сайта», в элементе «Главная»?
Когда я запускаю следующее:
/sitecore/content/home/*[@@templatekey='product section']
один элемент возвращается /sitecore/content/Home/Products
, что имеет смысл, однако следующее ничего не возвращает:
/sitecore/content/home/*[@@templatekey='site section']
Я пытаюсь создать меню из элементов, которые наследуют шаблон «Раздел сайта», используя веб-элемент управления asp.net вместо xslt.
Любые идеи?
Спасибо, Тарек
** ОБНОВЛЕНИЕ
Предоставьте дополнительную информацию по вопросу:
Элемент /sitecore/content/Home/Products
имеет шаблон /sitecore/templates/Starter Kit/Site Sections/Product Section
, который имеет базовый шаблон /sitecore/templates/Starter Kit/Item Types/Site Section
.
Если мне нужны элементы «Продукты и ссылки» (аналогичные «Продуктам») в разделе «Главная», я бы выполнил следующий запрос:
/sitecore/content/home/*[@@templatekey='product section' or @@templatekey='references section']
Есть ли способ получить элемент в разделе «Главная», который имеет раздел «Сайт» в качестве базового шаблона. В xslt есть метод sc:GetItemsOfType('site section',$home/item)
, который это делает.
** Ответить
var homeItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.StartPath);
var siteSectionItems = new List<Item>();
foreach (Item item in homeItem.Children)
{
var itemTemplate = TemplateManager.GetTemplate(item);
if (itemTemplate.InheritsFrom("Site Section"))
siteSectionItems.Add(item);
}