В начальном наборе, использующем xpath builder, как получить все элементы, которые наследуются от шаблона «Site Section» под элементом «Home»?
Когда я запускаю следующее:
/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);
}