4

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

4

2 回答 2

7

获取面包屑很容易:

  • 在with key中注册您Zend_Navigation在引导程序(或其他地方)中创建的对象。这样该对象将被所有导航视图助手捕获。Zend_RegistryZend_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"
...

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

于 2009-07-11T09:12:06.490 回答
5

我在这方面发了 2 个帖子。

http://blog.ekini.net/2009/05/25/zend-framework-making-the-built-in-breadcrumb-helper-work/

http://blog.ekini.net/2009/06/10/zend-framework-navigation-and-breadcrumbs-with-an-xml-file-in-zf-18/

两者都来自现实世界的经验。对我来说,XML 文件更容易理解。

于 2009-07-14T02:03:37.050 回答