Sitecore: как получить доступ к одному и тому же имени поля в разных разделах - PullRequest
10 голосов
/ 24 апреля 2009

У меня есть шаблон данных dt1 в sitecore, который имеет поле «заголовок» в разделе «данные». У меня также есть шаблон данных dt2, который имеет поле «заголовок» в разделе «портал» Наконец, у меня есть шаблон данных dt3, который использует оба dt1 и dt2 в качестве базовых шаблонов.

Как я могу в xslt найти содержимое портала / заголовка?

В моем коде, когда я пишу , я получаю содержимое data / header (так как этот узел стоит первым). Я знаю, как это сделать в .net, но мне нужно использовать xslt.

/ callprat

Ответы [ 4 ]

9 голосов
/ 18 июня 2010

Я нашел способ обойти это в .Net для проекта, над которым я работал. Один из шаблонов, который был настроен клиентом, имел «Buckets», у которых были разные разделы полей, но поля внутри были одинаковыми между сегментами. Я использовал LINQ, чтобы сгруппировать поля по названию раздела, а затем работал с каждой группой полей.

var sections = currentItem.Fields.GroupBy(field => field.Section);
foreach (var section in sections)
{
    if (section.Key.StartsWith("Bucket"))
    {
        buckets.Add(new Bucket(section)); //I made a bucket item, 
                                          //and passed each IGrouping<Field> to it
    }
}
8 голосов
/ 21 сентября 2011
item.Fields.Where(field => field.Section.ToUpper() == "META DATA" && 
                           field.DisplayName.ToUpper() == "TITLE").First().Value;
5 голосов
/ 28 апреля 2009

Вы можете ссылаться на поля по их идентификаторам:

C #:

string value = item["{00000000-0000-0000-000000000000}"]

или

Field field = item.Fields["{00000000-0000-0000-000000000000}"]

Я не пробовал этого, но думаю, что это будет работать и в XSLT:

<sc:text field="{00000000-0000-0000-000000000000}" />

5 голосов
/ 25 апреля 2009

Вы не можете.

И, честно говоря, я не знаю ни одного поддерживаемого способа сделать это из .NET.

Это прямо из Справочника по определению данных , раздел 2.1.1

2.1.1 Поля шаблона данных

Поле шаблона данных определяет пользователя управление интерфейсом и другие свойства которые влияют на поведение поля в редакторе контента и редакторе страниц. Для получения дополнительной информации о полях см. Глава 4, Поле шаблона.

Примечание. При определении имен полей убедитесь, что что они уникальны даже между полевые разделы. И XSLT, и .NET используйте только названия полей, без ссылка на разделы, чтобы извлечь содержимое из полей.

...