我正在尝试为果园编写一个自定义主题,但到目前为止还没有取得太大的成功。我已经阅读了Bertrand Le Roy 的部分替代文章,但我似乎无法让它发挥作用。
我在首页上显示了最近的博客文章列表,非常标准。我希望更改元数据部分产生的标记,即时间格式。
我写了一个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 为空。我是否应该创建一个具有固定名称(如“Metadata-BlogPost”)的替代名称并使用它,以使其具有通用性,它实际上应该是一个动态名称,以便我可以在其他地方使用另一个替代模板。
谢谢,
伊恩