Orchard CMS:如何在单独的小部件中显示内容项字段?

时间:2015-08-03 05:43:37

标签: asp.net-mvc orchardcms

我是Orchard CMS的新手,到目前为止,我一直在处理创建自定义主题的问题。我遇到过一个问题而且我不确定我是否知道我想要做的正确概念......但是这里有:

我想做以下事情:

  • 将自定义字段添加到“网页”内容类型,称为“父标题。”
  • 在所有页面上,在“Before Main”小部件区域内显示Parent Title字段的内容。

因此,在CMS中创建新页面的作者将填写字段,例如:

  • 页面标题:“公司ABC正在招聘”
  • 家长:“公司ABC的职业”

Orchard的渲染标记看起来像这样(为简洁起见略微简化):

<div id="layout-before-main">
    <div class="zone zone-before-main">
        Careers at Company ABC
    </div>
</div>
...
<div id="content">
    <div class="zone zone-content">
        <article class="page content-item">
            <header><h1>Company ABC is Hiring</h1></header>

            <p>Some page content.</p>
        </article>
    </div>
</div>

我知道如何创建自定义字段;我 知道如何(或是否)可以在另一个区域内引用该字段的值。

感谢任何建议 - 我渴望学习!

1 个答案:

答案 0 :(得分:3)

你有什么理由想把它放在一个单独的小部件中吗?您可以使用placement.info来实现此功能。

假设您有一个TextField附加到名为“ParentTitle”的页面内容类型。您的placement.info将如下所示:

<Placement>
    <Match ContentType="Page">
        <Place Fields_Common_Text-ParentTitle="/BeforeMain:5" />
    </Match>
</Placement>

注意BeforeMain前面的斜杠。前面的斜杠意味着它以全局区域(布局区域)为目标。

如果您想掌握placement.info以及您应定位的字段/名称,请启用“形状跟踪”模块。这使您可以查看前端的字段并查看要定位的ID。

您可以阅读以下文章以了解发生了什么:

http://docs.orchardproject.net/Documentation/Customizing-Orchard-using-Designer-Helper-Tools

http://docs.orchardproject.net/Documentation/Understanding-placement-info