Как написать запрос Sitecore из шаблона элемента мультимедиа, чтобы исправить элемент Home с несколькими сайтами? - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть собственный шаблон элемента мультимедиа, который позволяет пользователям добавлять фильтры категорий в загруженный файл.Медиа-элемент хранится в медиа-библиотеке.Фильтры следует выбирать из папки под элементом «Домой» соответствующего сайта в дереве контента.Они выбираются с помощью управления древовидным списком.У нас есть несколько сайтов, каждый из которых будет иметь свой собственный элемент Home и папку фильтра.Мне нужно установить источник элемента управления древовидной структуры, чтобы он указывал на папку относительного фильтра для каждого сайта.

Если бы элемент мультимедиа находился под элементом Hoe, я мог бы использовать это:

query:ancestor-or-self::*[@@templatename='Home']/item[@key='filters']

Но, конечно, медиа-элемент не найдет ancestor-or-self::*[@@templatename='Home'], поскольку его нет в этой ветви, он параллелен.

Я сомневаюсь, что наш стандарт именования будет достаточно надежным, чтобы обеспечить любой относительный путь, полностью основанный на именах элементов, и я бы предпочел не объединять имя папки мультимедиа, чтобы найти правильное имя элемента Home.

Можно ли как-нибудь решить это элегантно?

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

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011

Отвечая на мой вопрос:

Невозможно обойтись без использования какой-либо формы именования. Если ветви в библиотеке мультимедиа отражают ветви в дереве контента (Site1, Site2, Site3 и т. Д.), Тогда стандарт именования может обеспечить правильное соотношение между ветвью библиотеки мультимедиа и ветвью дерева контента. Если такого стандарта именования и зеркального отображения веток нет, то невозможно подключить папку мультимедиа к определенному сайту без добавления какого-либо элемента конфигурации, содержащего ссылку.

0 голосов
/ 12 сентября 2011

Конвейер getLookupSourceItems позволит вам добавить пользовательские токены / синтаксис в поле «Источник», например поиск нужного домашнего элемента сайта.

http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/05/Reference-the-Context-Item-and-System-Date-in-the-Source-Property-of-Sitecore-ASPNET-CMS-Fields.aspx

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

http://www.cmssource.co.uk/blog/custom-tree-list

...