介绍
我的工作有每页两个导航菜单的一个非常大的网站时,显示的是孩子的路线导航的活动状态。第一个是全局导航,链接到网站的各个部分,第二个是全局导航菜单中所选项目的部分级导航。Zend框架2:使用多个导航
为了提高效率,我们决定始终加载Navigation
服务中的整个站点导航结构是不明智的。相反,我们选择始终加载全局导航结构,但随后使用基于加载部分生成的单独的Navigation
。
配置
全球Navigation
看起来是这样的:
array(
array(
'type' => 'mvc',
'label' => 'Section 1',
'route' => 'section1'
),
array(
'type' => 'mvc',
'label' => 'Section 2',
'route' => 'section2'
),
array(
'type' => 'mvc',
'label' => 'Section 3',
'route' => 'section3'
)
)
和动态加载的科级Navigation
看起来是这样的:
array(
array(
'type' => 'uri',
'label' => 'Group 1',
'pages' => array(
array(
'type' => 'mvc',
'label' => 'Page 1',
'route' => 'section1/page1'
),
array(
'type' => 'mvc',
'label' => 'Page 2',
'route' => 'section1/page2'
),
array(
'type' => 'mvc',
'label' => 'Page 3',
'route' => 'section1/page3'
),
)
)
// ... more groups
)
问题
的问题是即全球Navigation
只有在当前正在请求高层路线时才有活动项目(例如, section1
)。只要用户导航到该部分内的其他页面(例如section1/page1
),全局Navigation
就不再有活动项目。
什么受审
通过Menu
插件和Page
类的源读取后,它看起来像它仅支持按名称精确的路线匹配和设置controller
选项不起作用。
只是为了测试,我们添加了部分Navigation
全球Navigation
它将在标准配置来完成和所需的结果显示,其中全球产品总是在部分的所有路由有效。
有什么办法可以使这个工作与当前配置?如果不是,你会建议如何使结构能够工作?