使用网络服务生成动态菜单

发布于 2024-11-04 07:31:27 字数 157 浏览 5 评论 0原文

我有一个网站,它根据用户访问级别生成导航菜单。该代码使用网络服务& xslt 获取数据并在浏览器中对其进行转换。

现在我想将此网站导出到免费的 CMS,任何人都可以推荐一个内置此功能的 CMS。我真的很喜欢果园,但无法让它发挥作用。

感谢大家的宝贵时间和建议。

I have a website which generates the navigation menus based on the user access levels. The code uses webservices & xslt to get the data and transform it in the browser.

Now I want to export this site to a freely available CMS, Can anyone suggest a CMS in which this functionality is built-in. I really liked Orchard but am Unable to get this to work.

Thank you all for your time and the suggestions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨落星ぅ辰 2024-11-11 07:31:27

我想您不会找到任何具有此类内置功能并且不涉及一些编码即可使其工作的 CMS。

不过,在 Orchard 中添加此类功能相当容易。您唯一需要做的两件事是:

  1. 创建一个 Orchard 模块(可以通过命令行自动生成 )
  2. 在模块项目中创建一个实现 INavigationProvider 接口的类。只有一个可重写的方法可返回菜单项集合(通过Parent <-> Items 属性正确分层)。所有自定义项目检索逻辑都应该发生在此处。还有一个要覆盖的 MenuName 属性 - 这应该返回生成的菜单的名称(几乎可以是任何名称)。

基本上这就是全部 - 编译解决方案并通过仪表板启用模块功能 ->模块->特点。

要显示菜单,您可以使用 高级菜单模块。安装并启用此功能后,您可以将 MenuWidget(或 StyledMenuWidget,如果您想要一个简单的预样式菜单)拖放到您想要的任何区域(您可以从仪表板 -> 小部件进行操作)。执行此操作时,系统会要求您提供要呈现的菜单的名称。 提供 INavigationProvider 的 MenuName 属性返回的名称。

HTH

I guess you won't find any CMS that would have something like this built-in and wouldn't involve some coding to make it work.

It would be fairly easy to add such functionality in Orchard, though. The only two things you'd have to do would be:

  1. Create an Orchard module (which can be autogenerated via command-line)
  2. Create a class in your module project that implements INavigationProvider interface. There is only a single method to override that returns the menu items collection (properly hierarchized via Parent <-> Items properties). All the custom item-retrieval logic should happen right here. There is also a MenuName property to override - this should return the name of a generated menu (can be pretty much anything).

And basically that is all - compile the solution and enable your module feature via Dashboard -> Modules -> Features.

To display the menu you could use the Advanced Menu module. After installing and enabling this feature you can drop the MenuWidget (or StyledMenuWidget if you want a simple, pre-styled menu) to any Zone you want (you can do it from Dashboard -> Widgets). When doing that you'd be asked for the name of the menu to render. Provide the name your INavigationProvider's MenuName property returns.

HTH

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文