В стартовом наборе, использующем конструктор xpath, как получить все элементы, которые наследуются от шаблона «Site Section» в разделе «Дом»?Извлечь элементы, используя запрос sitecore
Когда я запускаю следующее:
/sitecore/content/home/*[@@templatekey='product section']
один элемент возвращается /sitecore/content/Home/Products
, который имеет смысл, однако, следующее ничего не вернуть:
/sitecore/content/home/*[@@templatekey='site section']
То, что я пытаюсь сделать, это создайте меню из элементов, которые наследуют шаблон «Site Section», используя веб-управление asp.net вместо xslt.
Любые идеи?
Спасибо, Тарек
** UPDATE
предоставить дополнительную информацию по этому вопросу:
Пункт /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);
}
Спасибо, оценить детали, но код так же, как работает запрос:/Sitecore/содержание/дома/* [@@ templatekey = 'раздел продукции'] Это не подбирая базовый шаблон раздела продукта, который должен быть участком сайта. –