Orchard CMS中的Wrappers可以交替使用吗?

时间:2011-08-11 13:23:49

标签: content-management-system orchardcms shapes

我很好奇我是否可以以某种方式使Widget.Wrapper形状(或其他包装)可交替,因为它包含大多数小部件的HTML代码。我不喜欢cshtml文件中丰富的IF语句,因此我宁愿使用替代机制使用一个明确的解决方案 - 能够创建这样的替换语句:

Widget.Wrapper-[ZoneName].cshtml
Widget.Wrapper-[WidgetId].cshtml
Widget.Wrapper-url-[UrlAlternate].cshtml

这可能吗?或者包装纸是一个特例 - 在这种情况下为什么?

由于

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。 您可以使用IShapeTableProvider完成此操作。 抓住它渲染的窗口小部件的形状,决定你想要的包装器,然后添加一个新的包装器。

builder.Describe("YourShapeHere")
    .OnDisplaying(displaying=>{
        displaying.ShapeMetadata.Wrappers.Add("Widget_Wrapper-" + displaying.Shape.Id);
    }
}