不同区域的果园交替
Orchard alternates for different zones
我有一个在 AsideSecond 区域中显示内容类型的投影小部件。我使用 Placement.info 来抑制大部分元数据。
在该内容类型的主页上,我希望在内容区域中显示所有元数据。
我似乎无法弄清楚如何根据渲染形状的位置指定备用模板。它们都有摘要显示类型。我尝试的一切都将 suppression/alternate 模板应用于两者。
因为这些是将在使用论坛时添加的主题,所以我不能使用 ID 备用作为一个可行的选项。
我的相关展示位置:
<Match ContentType="Thread">
<Match DisplayType="Summary">
<Place Parts_Common_Metadata_Summary="-"/>
<Place Parts_Threads_Thread_ThreadReplyCount="-"/>
<Place Forum_Metadata_First="-"/>
</Match>
</Match>
我试过将 Place
元素嵌套在 <Match ContentType="Widget">
元素下,但无济于事。
这可能吗?
更新:我在投影小部件中使用的查询上创建了一个形状布局。我在主题 Views 文件夹中创建了自己的列表形状,并且可以通过一些转换访问我需要的相关属性。所以,我可以解决我的问题。
我仍然想知道是否可以根据区域设置替代,或者内容是否在小部件中呈现。我已经看到几个关于 SO 的问题,大部分都没有得到回答(例如 How to suppress parts in Orchard based on zone)
我的问题在 Orchard discussion forum 上得到了回答。
The challenge is that you can't easily know what zone your part shapes are being rendered in. If you wanted to add alternates to the Widget shape then that would be easy, since widgets know to which zone they belong.
So the short answer is: no, not out of box. However, you could
implement an IShapeTableProvider
and describe the Widget
shape. This
shape will contain a reference to the ContentItem (which will have a
WidgetPart attached through which you can access the zone name it
belongs to) and child shapes (including shapes like
Parts_Title_Summary
), so you could walk this shape tree and add
alternates to each based on the zone name.
Not pretty, but it could work.
所以这不是一个简单的备用命名或放置解决方案。如果您尝试跨区域使用相同的 ContentType 和 DisplayType,我觉得最好的行动计划是为查询编写自己的布局。希望这对某人有所帮助。
我有一个在 AsideSecond 区域中显示内容类型的投影小部件。我使用 Placement.info 来抑制大部分元数据。
在该内容类型的主页上,我希望在内容区域中显示所有元数据。
我似乎无法弄清楚如何根据渲染形状的位置指定备用模板。它们都有摘要显示类型。我尝试的一切都将 suppression/alternate 模板应用于两者。
因为这些是将在使用论坛时添加的主题,所以我不能使用 ID 备用作为一个可行的选项。
我的相关展示位置:
<Match ContentType="Thread">
<Match DisplayType="Summary">
<Place Parts_Common_Metadata_Summary="-"/>
<Place Parts_Threads_Thread_ThreadReplyCount="-"/>
<Place Forum_Metadata_First="-"/>
</Match>
</Match>
我试过将 Place
元素嵌套在 <Match ContentType="Widget">
元素下,但无济于事。
这可能吗?
更新:我在投影小部件中使用的查询上创建了一个形状布局。我在主题 Views 文件夹中创建了自己的列表形状,并且可以通过一些转换访问我需要的相关属性。所以,我可以解决我的问题。
我仍然想知道是否可以根据区域设置替代,或者内容是否在小部件中呈现。我已经看到几个关于 SO 的问题,大部分都没有得到回答(例如 How to suppress parts in Orchard based on zone)
我的问题在 Orchard discussion forum 上得到了回答。
The challenge is that you can't easily know what zone your part shapes are being rendered in. If you wanted to add alternates to the Widget shape then that would be easy, since widgets know to which zone they belong.
So the short answer is: no, not out of box. However, you could implement an
IShapeTableProvider
and describe theWidget
shape. This shape will contain a reference to the ContentItem (which will have a WidgetPart attached through which you can access the zone name it belongs to) and child shapes (including shapes likeParts_Title_Summary
), so you could walk this shape tree and add alternates to each based on the zone name.Not pretty, but it could work.
所以这不是一个简单的备用命名或放置解决方案。如果您尝试跨区域使用相同的 ContentType 和 DisplayType,我觉得最好的行动计划是为查询编写自己的布局。希望这对某人有所帮助。