如何使用Zend_Navigation实现面包屑

时间:2009-07-11 08:17:23

标签: php zend-framework navigation breadcrumbs

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

2 个答案:

答案 0 :(得分:7)

获取面包屑非常简单:

  • 使用密钥Zend_NavigationZend_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"
...

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

答案 1 :(得分:5)