【问题标题】:how to implement breadcrumbs using Zend_Navigation如何使用 Zend_Navigation 实现面包屑
【发布时间】:2009-07-11 08:17:23
【问题描述】:

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

【问题讨论】:

    标签: php zend-framework navigation breadcrumbs


    【解决方案1】:

    获取面包屑很容易:

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

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

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

    谈到如何定义页面层次结构,我想说,如果你有一个更小、更静态的网站,你可以简单地在你的配置中定义页面(使用新的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"
    ...
    

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

    【讨论】:

    • 很好的答案。我们有一个控制器插件,它为整个站点生成导航容器,并为后续请求缓存它。绝对推荐小型网站的配置解决方案。
    【解决方案2】:

    【讨论】:

    • 我发现使用 Zend_Config_XML 和一个用于导航配置的 XML 文件是一种顺利的方法。谢谢。
    • 感谢法扎德。尽管 INI 编写起来更短(没有结束标记等),但我发现 XML 文件更易于理解和实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    相关资源
    最近更新 更多