我需要改变的输出Zend_View_Helper_Navigation_Menu
。 我发现,我需要修改的两个功能,我知道该怎么做,我需要改变。 我不知道是如何使导航对象使用我的视图助手代替了Zend之一。
代码片断代表我的课堂延伸:
// file /library/My/View/Helper/Navigation/Menu.php
class My_View_Helper_Navigation_Menu extends Zend_View_Helper_Navigation_Menu
{
protected function _renderDeepestMenu(Zend_Navigation_Container $container,
$ulClass,
$indent,
$minDepth,
$maxDepth)
{
// modified code here
}
protected function _renderMenu(Zend_Navigation_Container $container,
$ulClass,
$indent,
$minDepth,
$maxDepth,
$onlyActive)
{
// modified code here
}
}
编辑要澄清
我想改变类的<li>
元件和除去EOL
和缩进。 有没有选择这样做与菜单视图脚本,这就是为什么我得把它扩大。
初始化我引导的导航对象:
$navTable = new Default_Model_Site_DbTable_Navigation();
$view = $this->getResource('view');
$view->navigation(new Zend_Navigation($navTable->getNavigation()));
渲染在我的布局菜单:
echo $this->navigation()->menu();
解
我把它重新命名的东西如下工作,但我不是,为什么我不能重载清晰/覆盖_Menu
类和menu()
函数。
- 更改类名
My_View_Helper_Navigation_MyMenu
- 添加
myMenu
功能的类(return parent::menu($container);
) - 呼叫
echo $this->navigation()->myMenu();
在布局
类线框:
// file /library/My/View/Helper/Navigation/MyMenu.php
class My_View_Helper_Navigation_MyMenu extends Zend_View_Helper_Navigation_Menu
{
public function myMenu(Zend_Navigation_Container $container = null)
{
return parent::menu($container);
}
protected function _renderDeepestMenu(Zend_Navigation_Container $container,
$ulClass,
$indent,
$minDepth,
$maxDepth)
{
// modified code here
}
protected function _renderMenu(Zend_Navigation_Container $container,
$ulClass,
$indent,
$minDepth,
$maxDepth,
$onlyActive)
{
// modified code here
}
}