将自定义模块放置在Orchard CMS中的特定区域中

时间:2013-08-04 20:04:38

标签: asp.net-mvc orchardcms orchardcms-1.6

我正在Orchard CMS v1.6.1中创建自定义简报订阅模块

我正处于尝试在特定区域中显示前端视图的阶段。

到目前为止,我所能看到的就是获取展示位置,将模块移动到Content区域内的不同位置。

也许有人可以帮助我指出正确的方向。

我的主题中的placement.info文件现在具有此功能,以覆盖我模块中的任何内容:

    <Match DisplayType="Detail">
        <Place Parts_SubscribersForm="Content:1"/>
    </Match>

我也试过“Footer:1”,并且为了测试,尝试了“Header:1” - 这些似乎都没有把它放在我想要的地方。

我的形状追踪如下 - “DisplayTemplate”是这个即将被控制的形状 - 我似乎也无法改变这个名字......另一个问题......

My shape-tracing showing DisplayTemplate (my custom module)

最终我想将此模块移动到区域[页脚]

在标准主题附带的layout.cshtml中添加了页脚(我为自己的主题复制了这个内容)

以下是添加页脚和页眉的位置:

    WorkContext.Layout.Header.Add(New.Branding(), "5"); // Site name and link to the home page
    WorkContext.Layout.Footer.Add(New.FooterContent(), "5"); // Footer Content
    WorkContext.Layout.Footer.Add(New.User(), "10"); // Login and dashboard links

如果有人可以帮助我,我将不胜感激......

提前致谢。

1 个答案:

答案 0 :(得分:3)

在Orchard中放置形状时有两种类型的区域 - 布局区域(在Layout.cshtml中定义)和本地区域(内容项本地区域,如由Content.cshtml定义的页眉,元数据,内容,页脚)。本地区域都在主要布局的“内容”区域内呈现。以下放置会将您的形状推到页脚局部区域:

<Match DisplayType="Detail">
    <Place Parts_SubscribersForm="Footer:1"/>
</Match>

这就是为什么你的表单似乎没有像你预期的那样进入页脚。它位于本地Footer区域,但仍在布局的Content区域内呈现。相反,您可以将形状移动到例如通过放置正斜杠来显示页脚布局区域:

<Match DisplayType="Detail">
    <Place Parts_SubscribersForm="/Footer:1"/>
</Match>