Orchard CMS - 如何获取当前DisplayType

时间:2014-09-14 21:52:28

标签: orchardcms

我有一个自定义ContentPart以及Views / EditorTemplates / Parts /文件夹下的编辑器视图。我试图找出在我的placement.info文件中使用的相应DisplayType值来启动此视图。如果我使用这样的内容,我会看到它显示:

<Match ContentType="MyType">
  <Place Parts_MyPart_Edit="Content"/>
</Match>

但我希望能够更明确地将其定位为:

<Match ContentType="MyType">
  <Match DisplayType="????">-->
    <Place Parts_MyPart_Edit="Content"/>
  </Match>
</Match>

我已尝试过&#34;详细信息&#34;,&#34;摘要&#34;和&#34; SummaryAdmin&#34;不成功。

所以有2个问题:

  1. 是否有标准的&#34; DisplayType&#34;在某处记录了价值?
  2. 有没有办法发现&#34; DisplayType&#34;是在运行时通过断点还是其他方式,以便我可以在placement.info?
  3. 中进一步限制它

    修改

    更多地考虑这个问题,是&#39; DisplayType&#39;甚至在使用编辑器模板时参与?我刚刚意识到Parts_MyPart_Edit可能具有足够的限制性,因为它已经在针对_Edit。这是正确的,还是还有一个选项可以匹配&#39; DisplayType&#39;可以用于编辑器模板吗?

2 个答案:

答案 0 :(得分:0)

1:不确切知道关于此主题的正确文档的位置,但这是正确的语法: <Match DisplayType="Summary">详细信息和SummaryAdmin也是有效的显示类型。

除此之外,您还可以定义自己的显示类型:

var shape = _contentManager.BuildDisplay(item, "CustomDisplayType");

然后您的形状/视图必须命名为YourShape.CustomDisplayType.cshtml。 然后,您可以在placement.info:

中使用您的displaytype
<Match DisplayType="CustomDisplayType">
    <Place Parts_YourPart="Content:1" />
</Match>

2:使用&#39;形状示踪剂&#39;模块。启用后,您可以在前端找到使用的显示类型。

您可能在<Place Parts_部分出错,或者部分驱动程序未正确实施。还要检查你的形状名称是否正确。

答案 1 :(得分:0)

发布此作为答案,因为我还没有足够的声誉来添加评论:)

如果您对在管理页面上使用Shape Tracer感兴趣,请在Orchard.DesignerTools模块中打开ShapeTracingFactory.cs文件,并在IsActivable方法中注释掉以下行:

if (AdminFilter.IsApplied(new RequestContext(_workContext.HttpContext, new RouteData()))) return false;

我发现这对于确定内容创作任务中发生的确切内容非常有用

相关问题