我有一个小部件,它使用查询来显示详细信息。是否可以指定小部件的显示类型(查询使用摘要并且全部显示为我想要的),因为小部件的标题具有详细的显示类型,我希望它使用摘要,因此我可以覆盖形状当我将它放在不同的部分(主要是标题文本)时,但在内容区域中时,我希望它是详细信息。我正在使用引导主题。所以基本上,如果我将我的小部件粘贴在除内容之外的任何地方,我希望它使用摘要
希望这是有道理的。
谢谢
我有一个小部件,它使用查询来显示详细信息。是否可以指定小部件的显示类型(查询使用摘要并且全部显示为我想要的),因为小部件的标题具有详细的显示类型,我希望它使用摘要,因此我可以覆盖形状当我将它放在不同的部分(主要是标题文本)时,但在内容区域中时,我希望它是详细信息。我正在使用引导主题。所以基本上,如果我将我的小部件粘贴在除内容之外的任何地方,我希望它使用摘要
希望这是有道理的。
谢谢
啊,我们又见面了。
小部件在一个名为 的类中构建并注入到布局中Orchard.Widgets.Filters.WidgetFilter
。似乎没有任何方法可以修改用于小部件的显示类型(默认WidgetFilter
使用默认值“详细信息”)。
为了解决这个问题,您可以使用自己的WidgetFilter
. 将现有代码复制到您自己的类中,并为您的类添加一个[OrchardSuppressDependency("Orchard.Widgets.Filters.WidgetFilter")]
属性。这将确保现有WidgetFilter
的未被使用,而您的被使用。
如果您通读该OnResultExecuting
方法,您会看到在接近尾声的地方有一个对BuildDisplay
. 此方法的第二个参数可以是显示类型。您可以检查widgetPart.Record.Zone
小部件的放置位置,并相应地为 displayType 参数传递不同的值。
我不确定这是否是最优雅的方式,但这是我要开始的地方。也许其他人可能有一个更整洁的解决方案。