Поиск…


замечания

Имена шаблонов и идентификаторов шаблонов против имен элементов в запросах:

Я настоятельно рекомендую вам использовать идентификаторы шаблонов, а не имена шаблонов или имена элементов в ваших запросах. Это гарантирует, что ваши запросы будут работать, даже когда шаблоны и / или элементы будут переименованы.

Единственным исключением является работа с шаблонами OOTB при запросе структуры OOTB, например /sitecore/content или /sitecore/system/Marketing Control Panel . В этих ситуациях потеря удобочитаемости часто больше, чем риск разрыва запросов, поскольку эти шаблоны гораздо реже переименовываются.

Обратите внимание, что имена шаблонов использовались в моих примерах выше, для чтения. Эти запросы не должны использоваться в производстве, если имена шаблонов не заменены идентификаторами шаблонов.

Справочный лист:

Я заметил, что Sitetore Query Cheat Sheet больше не доступен для загрузки в Интернете (все ссылки, размещенные в Sitecore, теперь перенаправляются на 404 страницы). К счастью, у меня была копия на моей машине и добавили снимок экрана ниже:

Sitatore Query Cheat Sheet

Выбор по пути к элементу

Запрос:

query:/sitecore/content/home/foo/bar

Результат

bar

Относительный запрос

Текущий товар:

bar (path: /sitecore/content/home/foo/bar)

Запрос:

query:./child/grandchild

Результат:

grandchild (path: /sitecore/content/home/foo/bar/child/grandchild)

Запрос атрибутов элемента

Запрос:

query:/sitecore/content/[@@templatename='Homepage']

Результат:

home (name: home, path: /sitecore/content/home, template name: Homepage)

Специфичный для сайта запрос

Структура дерева:

/sitecore
    /content
        /foo-site
            /home
                /my-account
        /bar-site
            /home
                /my-account
        /baz-site
            /home
                /my-account
  • Шаблон каждого элемента сайта ( foo-site , bar-site , baz-site ) называется Site Node .
  • Шаблон каждого домашнего элемента ( home , home , home ) называется Homepage
  • Шаблон каждой учетной записи пользователя ( my-account , my-account , my-account ) называется User Account Page

Текущий товар:

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

Запрос:

query:./ancestor-or-self::*[@@templatename='Homepage']/*[@@templatename='my-account']

Результат:

Если запрос из home элемента или одного из его потомков на сайте foo-site site:

/sitecore/content/foo-site/home/my-account

Если запрос из home элемента или одного из его потомков на сайте bar-site сайта:

/sitecore/content/bar-site/home/my-account

Если вы запрашиваете у home элемента или одного из его потомков на сайте baz-site сайта:

/sitecore/content/baz-site/home/my-account


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow