Orchard CMS按字段名称放置

时间:2015-11-13 15:08:43

标签: javascript c# .net content-management-system orchardcms

当涉及到专门的问题时,文档是如此无用。 我们假设我有一个包含多个字段的contentPart(例如Fields_Common_Text)。现在假设我有name字段和email字段(这些只是示例,实际情况可能更复杂。

还假设我的部分有另一个字符串字段,我们称之为title。所以

CustomContentPart:
    Fields_Common_Text name
    Fields_Common_Text email
    this.As<TitlePart>().Title

现在真正的问题从这里开始。如何使用placement.info文件在这两者之间放置标题。由于我可以做到以下几点:

<Place Parts_CustomContent="Content:0" />
<Place Fields_Common_Text="Content:1"/>

但是这会将两个文本字段放在标题之后。如何按名称放置字段? (或者以任何其他方式执行,使用替换项不起作用,因为替换是形状和渲染区域的重叠,因此这些属性不能从父形状访问(以干净的方式))

1 个答案:

答案 0 :(得分:0)

我实际上设法解决了这个问题

解决方案正是我怀疑的方式。现在让我们假设我的CustomPart形状也在其中呈现标题(因此实际的TitlePart被放置在其他位置并在Header区域中呈现) 所以有三种形状:

Parts_CustomContent
Fields_Common_Text 
Fields_Common_Text

现在,为了按照name文字字段,CustomContentPartemail文字字段的顺序将它们放入内容中,请将以下内容添加到placement.info文件中:

<Place Fields_Common_Text-name="Content:0"/>
<Place Parts_CustomContent="Content:1" />
<Place Fields_Common_Text-email="Content:"/>

注意:请记住nameemail是您分配给TextField的官方名称(通过gui或Migration)。当然,大写的NameEmail是更好的名字,我只是想与问题机构保持一致。

仅限特定的ContentType

我尝试使用内容类型签名以及字段名称,但它没有用。如果您只想将该展示位置应用于某些内容类型,则必须使用:

<Math ContentType='YourDesiredContentType'>
    <!-- Your Place tags -->
</Match>