2009-07-11 113 views

回答

5
+0

我发现使用Zend_Config_XML和一个XML文件进行导航配置是一个顺利的方式来做到这一点。谢谢。 – farzad 2009-07-15 03:47:50

7

获得面包屑是很容易的:

  • 与关键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" 
... 

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

+0

很棒的回答。 我们有一个控制器插件,用于为整个站点生成导航容器,并将其缓存以供后续请求使用。绝对推荐小型网站的配置解决方案。 – 2009-07-11 14:57:40