【问题标题】:Orchard CMS: How to display a content-item field inside a separate widget?Orchard CMS:如何在单独的小部件中显示内容项字段?
【发布时间】:2015-08-03 05:43:36
【问题描述】:

我是 Orchard CMS 的新手,到目前为止,我大部分时间都在处理创建自定义主题。我遇到了一个问题,我什至不确定我是否知道我想做的正确概念......但这里是:

我想做以下事情:

  • 向“页面”内容类型添加一个名为“父标题”的自定义字段。
  • 在所有页面上,在“Before Main”小部件区域内显示父标题字段的内容。

因此,在 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>

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

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

【问题讨论】:

    标签: asp.net-mvc orchardcms


    【解决方案1】:

    您是否有任何理由要将其放置在单独的小部件中?您可以只使用placement.info 来实现此功能。

    假设您有一个附加到名为“ParentTitle”的页面内容类型的 TextField。您的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

    【讨论】:

    • 完美 - 这让我开始了解 Placement.info 并使用 Placement & Alternatives 来自定义 Orchard 的输出,而不是尝试使用一百万个小部件将它们全部破解。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    相关资源
    最近更新 更多