Orchard CMS按字段名称放置

Orchard CMS Placement by field name

本文关键字:字段 CMS Orchard      更新时间:2023-09-26

当涉及到专业问题时,文档是如此无用。假设我有一个包含多个字段的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"/>

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

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

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

Parts_CustomContent
Fields_Common_Text 
Fields_Common_Text

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

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

注意:记住nameemail是您分配给TextField的正式名称(通过gui或迁移)。当然,大写的NameEmail是更好的名称,我只是想与问题正文保持一致。

只有特定的ContentType

我尝试使用内容类型签名和字段名,但没有成功。如果您只想将该位置应用于某些必须使用的内容类型:

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