如何在Orchard CMS中为页面组设置不同的二级菜单?

时间:2012-10-01 04:07:18

标签: orchardcms

我必须使用主菜单(简单)实现导航,但是每​​个菜单将导致一组页面具有另一个“子菜单”,我已将其作为菜单小部件实现在之前的内容区域中。 / p>

主导航是这样的:

主页|第一组|一些页面|另一页|第二组|又一页

当用户单击“主页”,“某个页面”,“另一个页面”时,它将直接转到该页面。

如果用户点击任何“组”,则将其带到该组的“默认页面”,并且在前内容区域中显示实现为菜单小部件的子菜单。第一组可以有5页

第1.1页|第1.2页|第1.3页|第1.4页|等

第二组将有另一组页面。

我天真地设置了子页面的路径属性,以便它们共享一条公共路径:

/组-1 /页-1-1 /组-1 /页-1-2 /组-2 /页-1-3 等

/组-2 /页-2-1 /组-2 /页-3-1 等

我原本希望使用匹配路径在一条路径或另一条路径下隐藏一个小部件菜单。但问题是我无法定位特定的菜单或窗口小部件,一般只有内容类型等。我不能做这样的事情:

<Match Path="/group-1/*" ContentType="Widget SOME WAY TO TARGET A SPECIFIC WIDGET!!!">
     <!-- SEND THE NEEDED PARTS TO OBLIVION SO THAT ONLY THE CORRECT MENU SHOWS HERE --!>
    <Place Parts_Common_Body="-" />
</Match>

我相信使用图层规则来定位特定路径要好得多,但我无法将图层规则与url(“/ group-1 / *”)匹配,所以这就是为什么我试图使用放置信息,这似乎是错误的工具。

有没有办法可以扩展图层规则以使用正则表达式?通过这种方式,我可以创建非常强大的图层,并在适当的图层上布置我的小部件。

总之,我想要的是为网站的不同部分设置不同的子菜单。我只是迷失在如何实现这一点,但层规则似乎是正确的工具,只有我能设法使用更强大的匹配语法。

1 个答案:

答案 0 :(得分:1)

我觉得我有点失明!!!

直接来自文档:

  

url("<url path>")
       如果当前URL与指定路径匹配,则为True。如果在路径末尾添加星号(*),则在子文件夹中找到所有页面   在该路径下将评估为true(例如,url("~/home*"))。

因此,添加此规则足以为网站的整个部分创建图层:

<强> URL( “〜/组-1 *”)

我几乎为自己感到羞耻......