Настройка частей темы фруктового сада

Я пытаюсь написать собственную тему для сада и пока не добился большого успеха. Я прочитал статью Бертрана Ле Роя отчасти чередуется, но я не могу заставить его работать.

Я показываю список последних сообщений в блоге на главной странице, довольно стандартно. Я хочу изменить разметку, созданную частью метаданных, то есть форматом времени.

Я написал IShapeTableProvider для создания специфичных для блога альтернатив для сводной части метаданных.

public class MetaDataShapeProvider : IShapeTableProvider
{
    private readonly IWorkContextAccessor workContextAccessor;

    public MetaDataShapeProvider(IWorkContextAccessor workContextAccessor)
    {
        this.workContextAccessor = workContextAccessor;
    }

    public void Discover(ShapeTableBuilder builder)
    {
        builder
          .Describe("Parts_Common_Metadata_Summary")
          .OnDisplaying(displaying =>
          {
              ContentItem contentItem = displaying.Shape.ContentItem;
              if (contentItem != null)
                displaying.ShapeMetadata.Alternates.Add("Metadata__" + contentItem.ContentType);
          });
    }
}

Это улавливается правильно, но contentItem имеет значение null. Должен ли я просто создать альтернативу с фиксированным именем, например «Metadata-BlogPost», и использовать его, чтобы сделать эту общую цель, это действительно должно быть динамическое имя, чтобы я мог использовать другой альтернативный шаблон в другом месте.

Спасибо,

Ян


person madcapnmckay    schedule 05.02.2011    source источник


Ответы (1)


Попробуйте взять элемент содержимого из части содержимого, для которой отображается форма, например:

displaying.Shape.ContentPart.ContentItem;

Вместо

displaying.Shape.ContentItem;

Фигура Parts_Common_Metadata_Summary получает связанный объект части контента, передаваемый в качестве именованного параметра ContentPart, так что это должно сработать.

ХТН

person Piotr Szmyd    schedule 09.03.2011