Я пытаюсь написать собственную тему для сада и пока не добился большого успеха. Я прочитал статью Бертрана Ле Роя отчасти чередуется, но я не могу заставить его работать.
Я показываю список последних сообщений в блоге на главной странице, довольно стандартно. Я хочу изменить разметку, созданную частью метаданных, то есть форматом времени.
Я написал 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», и использовать его, чтобы сделать эту общую цель, это действительно должно быть динамическое имя, чтобы я мог использовать другой альтернативный шаблон в другом месте.
Спасибо,
Ян