我正在使用 Zend_Navigation(对框架的甜蜜补充,顺便说一句)来构建我的菜单,之后它应该在页面中呈现(不言而喻)。我首先将容器设置在控制器中的某处:
// $pages is the array containing all page information
$nav = new Zend_Navigation($pages);
$this->view->navigation($nav);
然后,在布局中,呈现如下:
echo $this->navigation()->menu();
效果很好。现在:我希望菜单的呈现方式有所不同。我正在构建的页面使用 jQuery Fisheye 插件来构建类似 Mac 的 Dock 菜单。但是,这个插件需要一个特定的标记......
实际上,它需要一个<a>
包含一个<img>
(用于图标)和一个<span>
(用于工具提示)的元素列表。标准的菜单视图助手将所有内容呈现在无序列表中(逻辑上),'label'
参数作为链接文本。
似乎传递给'label'
参数的内容在渲染之前被转义了,所以在那里插入 html 对我没有任何好处。此外,Fisheye 通常不会将其项目包含在<li>
标签中,而将整个项目都包裹在 中<ul></ul>
,而只是一个<a>
元素的一级列表。
我正在考虑为 Dock 编写一个自定义视图助手,它可以负责插入<img>
和<span>
,但是我很难将自定义视图助手附加到 Navigation 类。我只是不知道在哪里以及以什么方式放置它,即使我所有的其他自定义类(模型等)都由自动加载器精心照顾。对此有什么想法吗?
再说一次,即使我可以让这个视图助手工作,我仍然留下 HTML 无序列表 - 我知道我也可以使用自定义视图助手丢失那个,但我一直是包含 main 的粉丝为了语义,列表内的导航菜单。
如果有人可以帮助我一点,我将不胜感激。如果 Fisheye 不适合与<ul>
's 一起使用,那就太糟糕了……在这种情况下完全失去 Zend_Navigation 是否有充分的理由?