Нотация запроса для поля 'source' для sitecore в построителе шаблонов

Я пытаюсь установить поле источника шаблона, используя нотацию запроса (или xpath - в зависимости от того, что работает), но ни один из них, похоже, не работает.

Мое дерево контента является деревом мультисайтового контента:

France
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

US
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

У каждого сайта есть своя собственная папка METADATA, и я хочу, чтобы при добавлении страницы внутри каждого из основных узлов страны я хотел, чтобы значения отражали то, что находится в METADATA этого сайта. На данный момент у меня есть два разных поля - droplink и treelistex. Поэтому я подумал, что могу просто получить родительский элемент, который является сайтом страны, и получить для этого папку метаданных. Когда я помещаю следующий запрос в оба поля, я получаю разные результаты:

 query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
  • Для поля droplink я получаю только первый регион (один элемент)
  • Для поля treelistex я получаю все дерево контента

Затем я попытался немного изменить запрос и вычеркнул нотацию 'query'

 ./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*

Если я захожу в центр разработчиков /xpath builder и устанавливаю узел контекста для любого элемента под основным сайтом страны, он возвращает мне именно то, что мне нужно, но когда я помещаю это в исходный код, я получаю все дерево контента в обоих случаи.

Помогите!

2 ответа

Решение

То, что у вас есть, должно работать с полем Droplink. Возможно, вы имеете в виду Droptree?

query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*

Что касается TreelistEx, я не думаю, что поля Treelist по умолчанию поддерживают запрос Sitecore. Однако в этой статье описывается, как создать собственный TreeList, который его поддерживает.

Поля, которые поддерживают Sitecore Query

Где вы можете использовать синтаксис query: или же fast: (для FastQuery):

  • выпадающий список
  • Сгруппированный дроплист
  • DropLink
  • Сгруппированная дроплинк
  • контрольный список
  • Multilist
  • Droptree

Поля, которые поддерживают параметризованный источник данных

Где вы можете использовать расширенный синтаксис с запросом источника данных с параметрами:

  • Droptree †
  • TreeList
  • TreelistEx

Droptree поддерживает только Datasource а также DatabaseName параметры.

Расширенный синтаксис строки запроса включает следующие параметры:

  • Источник данных
  • DatabaseName
  • AllowMultipleSelection
  • IncludeItemsForDisplay
  • ExcludeItemsForDisplay
  • IncludeTemplatesForSelection
  • ExcludeTemplatesForSelection
  • IncludeTemplatesForDisplay
  • ExcludeTemplatesForDisplay

Они используются так: Datasource=/sitecore/content/home/Products/&IncludeTemplatesForDisplay=Product Category&ExcludeTemplatesForSelection=Product Description&IncludeTemplatesForSelection=Product Category

У Марка Урсино есть отличный пост о том, как использовать этот синтаксис здесь.

Другие вопросы по тегам