4

我有一个小部件,它使用查询来显示详细信息。是否可以指定小部件的显示类型(查询使用摘要并且全部显示为我想要的),因为小部件的标题具有详细的显示类型,我希望它使用摘要,因此我可以覆盖形状当我将它放在不同的部分(主要是标题文本)时,但在内容区域中时,我希望它是详细信息。我正在使用引导主题。所以基本上,如果我将我的小部件粘贴在除内容之外的任何地方,我希望它使用摘要

希望这是有道理的。

谢谢

4

1 回答 1

3

啊,我们又见面了。

小部件在一个名为 的类中构建并注入到布局中Orchard.Widgets.Filters.WidgetFilter。似乎没有任何方法可以修改用于小部件的显示类型(默认WidgetFilter使用默认值“详细信息”)。

为了解决这个问题,您可以使用自己的WidgetFilter. 将现有代码复制到您自己的类中,并为您的类添加一个[OrchardSuppressDependency("Orchard.Widgets.Filters.WidgetFilter")]属性。这将确保现有WidgetFilter的未被使用,而您的被使用。

如果您通读该OnResultExecuting方法,您会看到在接近尾声的地方有一个对BuildDisplay. 此方法的第二个参数可以是显示类型。您可以检查widgetPart.Record.Zone小部件的放置位置,并相应地为 displayType 参数传递不同的值。

我不确定这是否是最优雅的方式,但这是我要开始的地方。也许其他人可能有一个更整洁的解决方案。

于 2013-02-06T15:11:02.717 回答