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