如何使用 Zend_Navigation 实现面包屑导航

发布于 2024-07-26 11:46:04 字数 89 浏览 6 评论 0原文

使用 Zend_Navigation 为 ZendFramework 应用程序实现面包屑的最佳实践/建议/技术是什么? 如何以及在哪里定义页面层次结构的最佳方法?

what are the best practices/suggestions/techniques to implement a breadcrumb for a ZendFramework application using Zend_Navigation? how and where is the best method to define the page hierarchy?

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

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

发布评论

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

评论(2

一腔孤↑勇 2024-08-02 11:46:04

获取面包屑非常简单:

  • 使用 Zend_Navigation 键在 Zend_Registry 中注册您在引导程序(或其他位置)中创建的 Zend_Navigation 对象。 这样,该对象将被所有导航视图助手捕获。
  • 如果您使用新的 Zend_Application 样式引导,您可以简单地使用 Zend_Application_Resource_Navigation 资源来设置导航。 只需在配置中设置 resources.navigation.storage.registry = true 即可。
  • 然后你就可以简单地

    echo $this->navigation()->breadcrumbs() 
      

    在您的视图或布局脚本中。

谈到如何定义页面层次结构,我想说,如果您有一个更小、更静态的站点,您可以简单地在配置中定义页面(当使用新的 Zend_Application-bootstrapping- 时)方法):

resources.navigation.pages.home.label       = "Home"
resources.navigation.pages.home.action      = "index"
resources.navigation.pages.home.controller  = "index"
resources.navigation.pages.login.label      = "Login"
resources.navigation.pages.login.action     = "login"
resources.navigation.pages.login.controller = "users"
resources.navigation.pages.users.label      = "Users"
resources.navigation.pages.users.action     = "list"
resources.navigation.pages.users.controller = "users"
resources.navigation.pages.users.pages.show.label      = "Show"
resources.navigation.pages.users.pages.show.action     = "show"
resources.navigation.pages.users.pages.show.controller = "users"
...

或者,您可以使用额外的配置文件,或者您可以在前端控制器插件或操作助手中构建页面层次结构,例如,如果您有一个相当大的站点结构并且不想在每个站点上实例化整个站点地图要求。 这样,您还可以插入动态页面,例如,其标签是根据请求参数动态创建的。

Getting breadcrumbs is quite easy:

  • register your Zend_Navigation object that you created in your bootstrap (or some other place) in the Zend_Registry with key Zend_Navigation. That way the object will be caught up by all navigation view-helpers.
  • if you're using the new Zend_Application-style bootstrapping you can simply use the Zend_Application_Resource_Navigation resource to setup navigation. Just set resources.navigation.storage.registry = true in your configuration.
  • you can then simply

    echo $this->navigation()->breadcrumbs()
    

    in your view or layout script.

Talking about how to define the page hierarchy, I'd say that if you have a somehow smaller and more static site, you can simply define the pages within your configuration (when using the new Zend_Application-bootstrapping-approach):

resources.navigation.pages.home.label       = "Home"
resources.navigation.pages.home.action      = "index"
resources.navigation.pages.home.controller  = "index"
resources.navigation.pages.login.label      = "Login"
resources.navigation.pages.login.action     = "login"
resources.navigation.pages.login.controller = "users"
resources.navigation.pages.users.label      = "Users"
resources.navigation.pages.users.action     = "list"
resources.navigation.pages.users.controller = "users"
resources.navigation.pages.users.pages.show.label      = "Show"
resources.navigation.pages.users.pages.show.action     = "show"
resources.navigation.pages.users.pages.show.controller = "users"
...

Alternatively you could use an extra configuration file or you could build your page hierarchy in a front-controller plugin or an action helper, e.g. if you have a fairly large site structure and don't want to instantiate the whole sitemap on each request. That way you can also insert dynamic pages whose labels for example are dynamically created based on the request parameters.

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