Нотация запроса для поля '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
У Марка Урсино есть отличный пост о том, как использовать этот синтаксис здесь.