Orchardcms Orchard CMS-如何获取当前显示类型
我在Views/EditorTemplates/Parts/folder下有一个自定义ContentPart和一个编辑器视图。我正在尝试找出在placement.info文件中使用的适当的DisplayType值,以使此视图生效。如果我使用这样的东西,我会看到它出现:Orchardcms Orchard CMS-如何获取当前显示类型,orchardcms,Orchardcms,我在Views/EditorTemplates/Parts/folder下有一个自定义ContentPart和一个编辑器视图。我正在尝试找出在placement.info文件中使用的适当的DisplayType值,以使此视图生效。如果我使用这样的东西,我会看到它出现: <Match ContentType="MyType"> <Place Parts_MyPart_Edit="Content"/> </Match> 但我希望能够更明确地针对它,比如:
<Match ContentType="MyType">
<Place Parts_MyPart_Edit="Content"/>
</Match>
但我希望能够更明确地针对它,比如:
<Match ContentType="MyType">
<Match DisplayType="????">-->
<Place Parts_MyPart_Edit="Content"/>
</Match>
</Match>
-->
我尝试过“详细”、“摘要”和“摘要管理”都没有成功
因此,有两个问题:
再想一想,当使用编辑器模板时,是否会涉及到“DisplayType”?我刚刚意识到Parts\u MyPart\u Edit可能有足够的限制,因为它已经针对了\u Edit。这是对的,还是还有一个选项可以匹配“DisplayType”,可以用于编辑器模板?1:不知道关于这个主题的正确文档在哪里,但这是正确的语法:
详细信息和摘要管理员也是有效的显示类型
除此之外,您还可以定义自己的显示类型:
var shape = _contentManager.BuildDisplay(item, "CustomDisplayType");
然后您的形状/视图必须命名为YourShape.CustomDisplayType.cshtml
。
然后,您可以在placement.info中使用displaytype:
<Match DisplayType="CustomDisplayType">
<Place Parts_YourPart="Content:1" />
</Match>
2:使用“形状跟踪器”模块。启用后,您可以在前端找到使用的显示类型
您可能在
将此作为答案发布时犯了错误,因为我的声誉还不足以添加评论:)
如果您对在管理页面上使用Shape Tracer感兴趣,请在Orchard.DesignerTools模块中打开ShapeTracingFactory.cs文件,并在IsActivable方法中注释掉以下行:
if(AdminFilter.IsApplied(newrequestcontext(\u workContext.HttpContext,new RouteData()))
返回false代码>
我发现这对于准确了解内容创作任务期间发生的事情非常有用只是为了澄清,我在一个编辑器模板中,因此不涉及驱动程序显示方法,displayType似乎不是编辑器方法的参数。然后,您可以使用形状跟踪模块。当跟踪一个形状时,它也会显示它的显示类型。它会显示,但只在“前端”站点上显示。例如,对于自定义表单,您并没有说视图文件夹在哪里。它是在主题中还是在模块中?因为它不能从主题开始工作。对不起,它在我的模块中。同样要澄清的是,如果我不使用元素对模板进行限制,那么它可以正常工作。我只是想进一步了解如何将编辑器模板的显示类型作为目标。好吧,不,你不应该在这里使用匹配项:形状的名称已经不同了。好吧,这就是我的结论。就我的理解而言,在加载零件编辑器时,是否有“DisplayType”在起作用?很奇怪,因为驱动程序编辑器方法没有displayType参数。